Freshdesk Freddy AI
Gate Freddy AI actions — refunds, ticket escalations, account changes — behind a human approval step before they execute. No SDK required.
Prerequisites
- Freshdesk Suite account with Freddy AI or Freddy Copilot enabled.
- Admin access to Freshdesk Automation settings.
- Cheqpoint Connection Key.
Steps
- In Freshdesk, go to Admin → Automation → Ticket Automations and create or edit the automation that precedes a Freddy-initiated action.
- Add a Trigger Webhook action pointing to
https://cheqpoint.co/api/webhooks/inbound. - Set the
x-api-keyheader with your Cheqpoint Connection Key and configure the JSON body. - Map ticket variables (ticket ID, requester, subject) to the Cheqpoint request schema.
- Add a conditional check in the automation: if the webhook response
statusisapproved, proceed with the Freddy action. - If
rejected, have Freddy inform the customer that the action requires manual review by a support agent.
Sample request payload
json
{
"action": "issue_full_refund",
"summary": "Freddy AI requesting a full refund for ticket #88421",
"details": {
"ticket_id": "88421",
"order_id": "ORD-55129",
"refund_amount_cents": 7900,
"customer_email": "customer@example.com"
},
"justification": "Customer reported product arrived defective. SLA breach risk if not resolved today."
}Sample Cheqpoint response
json
{
"status": "approved",
"modifiedDetails": null,
"decisionNote": "Refund approved. Apply store credit instead of cash refund per policy."
}Async behaviour
json
// If Cheqpoint returns status "pending", the approval is queued
// for a human reviewer. Branch on all three outcomes in your Freddy flow:
//
// status == "approved" → proceed with the Freddy action
// status == "rejected" → tell the customer it needs manual review
// status == "pending" → either:
// a) poll GET /api/approvals/{approvalId} in a later step, or
// b) pass callbackUrl so Cheqpoint POSTs the decision to a
// webhook that can resume your Freshdesk Automation.
{
"action": "issue_full_refund",
"summary": "Freddy AI requesting a full refund for ticket #88421",
"details": { "ticket_id": "88421", "order_id": "ORD-55129", "refund_amount_cents": 7900 },
"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.
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.