Intercom Fin
Gate Fin actions — refunds, cancellations, account changes — behind a human approval step before they execute. No SDK required.
Prerequisites
- Intercom workspace with Fin enabled.
- Custom Actions permission in Intercom.
- Cheqpoint Connection Key.
Steps
- In Intercom, navigate to Custom Actions and create a new action named Cheqpoint Approval.
- Set the action type to POST and the URL to
https://cheqpoint.co/api/webhooks/inbound. - Add a header:
x-api-keywith your Cheqpoint Connection Key. - Define the request body using the standard Cheqpoint schema, mapping Fin's workflow variables to the
detailsobject. - In your Fin Orchestration flow, insert this Custom Action immediately before any high-stakes tool execution (e.g., “Issue Refund”).
- Use an Intercom logic branch to check the
statusreturned by Cheqpoint. Only proceed with the action if the status isapproved.
Sample request payload
json
{
"action": "issue_refund",
"summary": "Fin requested a refund for Order #1234",
"details": {
"order_id": "1234",
"amount_cents": 4500,
"customer_id": "user_882"
},
"justification": "Customer reported item arrived damaged and provided photo evidence."
}Sample Cheqpoint response
json
{
"status": "approved",
"modifiedDetails": null,
"decisionNote": "Refund within agent limits and evidence verified."
}Async behaviour
json
// If Cheqpoint returns status "pending", the approval is queued
// for a human reviewer. Branch on all three outcomes in your Fin flow:
//
// status == "approved" → proceed with the 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 Fin Orchestration flow.
{
"action": "issue_refund",
"summary": "Fin requested a refund for Order #1234",
"details": { "order_id": "1234", "amount_cents": 4500, "customer_id": "user_882" },
"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.