IntegrationsยทUpdated Mar 5, 2026
Webhooks
Set up custom webhooks to integrate KendoAI with your own systems.
What Are Webhooks?
Webhooks are automatic messages Kendo sends to your app when something happens.
Think of it like this: instead of polling Kendo for updates, Kendo pushes updates to you.
Common use cases:
Send call results into your CRM
Start automation in Zapier or Make
Update an internal dashboard
Trigger alerts for managers
Quick Setup
- Set up your webhook in a few minutes:
- 1. Go to Integrations > Webhooks
- 2. Click 'Add Webhook'
- 3. Enter your endpoint URL (HTTPS)
- 4. Select at least one event
- 5. Save the webhook
- 6. Send a test delivery to confirm it works
Available Events
Events you can subscribe to:
call.uploaded - Sent when a call analysis is available
ai.training.completed - Sent when an AI training session is completed
Test deliveries:
The 'Send Test' action uses the test event header
Test payloads include _isTest: true in data
What Kendo Sends
Each webhook is an HTTP POST request with a JSON body.
Headers included on every delivery:
- Content-Type: application/json
- X-Kendo-Signature (HMAC SHA-256 signature)
- X-Kendo-Event (event name)
- X-Kendo-Delivery-Id (unique delivery ID)
Body shape:
- id: unique event ID
- event: event name
- created_at: ISO timestamp
- data: event-specific details
Example Payloads
Example (call.uploaded):
{ "id": "evt_123", "event": "call.uploaded", "created_at": "2026-03-05T12:00:00Z", "data": { "callId": "abc", "agentId": "agent_1", "agentName": "Sales Agent", "userId": "user_1", "teamMemberUserId": "member_1", "duration": 245.5, "aiScore": "87", "timestamp": "2026-03-05T12:00:00Z" } }
Example (ai.training.completed):
{ "id": "evt_456", "event": "ai.training.completed", "created_at": "2026-03-05T12:02:00Z", "data": { "trainingId": "abc", "agentId": "agent_1", "agentName": "Sales Agent", "userId": "user_1", "teamMemberUserId": "member_1", "duration": 300, "aiScore": "90", "timestamp": "2026-03-05T12:02:00Z" } }
Verify Signatures
Always verify X-Kendo-Signature before processing.
The signature is generated from the raw JSON body using your webhook secret and HMAC SHA-256.
If signature verification fails, return a non-2xx response and do not trust the payload.
Delivery and Retries
Kendo expects a 2xx response code for success.
If your endpoint times out or returns non-2xx, Kendo retries up to 3 attempts total.
Retry backoff is exponential (about 1s, 2s, 4s).
Each request has a timeout of about 10 seconds, so respond quickly.
Best Practices
Recommended endpoint behavior:
- Return 200 as soon as you enqueue/process safely
- Handle duplicate deliveries using id or X-Kendo-Delivery-Id
- Process in the background for reliability
- Store delivery logs for debugging
- Keep your webhook secret private and rotate if exposed
Troubleshooting Checklist
If webhooks are not arriving:
Confirm your endpoint is publicly reachable
Confirm your endpoint supports HTTPS
Verify event subscription includes the event you expect
Check your server returns a 2xx status
Verify signature validation uses the raw body
Review delivery logs in Integrations > Webhooks