Zendesk

Zendesk

Gate Zendesk AI Agent actions — cancellations, refunds, account changes — behind a human approval step before they execute. No SDK required.

Prerequisites

  • Zendesk Suite Professional or higher.
  • Advanced AI add-on with AI Agent enabled.
  • Cheqpoint Connection Key.

Steps

  1. Open the Zendesk Admin Center and go to Apps and integrations → Webhooks.
  2. Create a webhook for Cheqpoint pointing to https://cheqpoint.co/api/webhooks/inbound with the x-api-key header.
  3. In the Integration Builder, create a new integration that calls this webhook.
  4. Configure your AI Agent's answer flow to trigger the Cheqpoint integration before executing a “Make API Request” step.
  5. Set the flow to wait for the synchronous response from the webhook.
  6. Add a conditional branch in the flow: if status is approved, proceed; if rejected, have the AI Agent explain that the action requires manual human review.

Sample request payload

json
{
  "action": "cancel_subscription",
  "summary": "AI Agent requesting cancellation for 'Premium' plan",
  "details": {
    "ticket_id": "9921",
    "subscription_id": "sub_5521",
    "churn_reason": "Price too high"
  },
  "justification": "User explicitly asked to cancel after being offered a discount."
}

Sample Cheqpoint response

json
{
  "status": "rejected",
  "modifiedDetails": null,
  "decisionNote": "Customer is in a long-term contract; escalate to retention team."
}

Async behaviour

json
// If Cheqpoint returns status "pending", the approval is queued
// for a human reviewer. Branch on all three outcomes in your flow:
//
//   status == "approved"  → proceed with the action
//   status == "rejected"  → have the AI Agent explain it needs manual review
//   status == "pending"   → either:
//     a) poll GET /api/approvals/{approvalId} in a separate step, or
//     b) pass callbackUrl so Cheqpoint POSTs the decision to a
//        webhook that can resume your Zendesk Integration flow.

{
  "action": "cancel_subscription",
  "summary": "AI Agent requesting cancellation for 'Premium' plan",
  "details": { "ticket_id": "9921", "subscription_id": "sub_5521" },
  "callbackUrl": "https://your-backend.example.com/cheqpoint/callback"
}

Notes

You have full control over what data is passed into the details object to provide human reviewers with sufficient context.

Depending on how long your approvals take and how your tool handles webhook timeouts, you may need to start with low-latency test flows and later move to an async pattern (e.g. callback URL or separate resumer) for production.

Tips

Start by routing only high-risk or high-value actions to minimize friction while maintaining oversight.

Get your Connection Key at cheqpoint.co/signup.