KendoAI
Kendo AI
All Docs
IntroductionRelease NotesCreating Your AccountDashboard OverviewNext Steps
Uploading CallsUnderstanding ScoresAI CoachingSharing Call Analytics
AI Roleplay TrainingProspect CreatorTraining GoalsPerformance ComparisonSharing AgentsTraining PathsAssign TrainingAI Context
Personal AnalyticsTeam AnalyticsCustom ScorecardsRevenue Tracking
Creating a TeamManaging MembersRoles & PermissionsTeam Settings
Fathom IntegrationZoom IntegrationFireflies IntegrationSlack IntegrationWebhooksPush APIHubSpot Push API IntegrationAloware Push API IntegrationZoom Push API Integration
Subscription PlansCredit SystemAuto-RechargeSeat Billing
TroubleshootingSettings GuideContact Support
Security OverviewTwo-Factor AuthenticationData Processing & PrivacyEnterprise Security
Documentation home

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

  1. Set up your webhook in a few minutes:
  2. 1. Go to Integrations > Webhooks
  3. 2. Click 'Add Webhook'
  4. 3. Enter your endpoint URL (HTTPS)
  5. 4. Select at least one event
  6. 5. Save the webhook
  7. 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

PreviousSlack Integration
NextPush API

Still need help?

Can't find what you're looking for? Our team is here to help.