Skip to main content

Overview

Webhooks let you receive real-time notifications when events happen on the Kejue platform. When an event occurs, Kejue sends an HTTP POST request to your configured URL with a JSON payload describing the event.

Event Types

Use the wildcard * when creating a subscription to receive all event types.

Payload Format

All webhook payloads follow the same envelope structure:

Call Events

call.started

Fired when a call is answered and connected.

call.ended

Fired when a call ends. Includes timing, status, transcript, and recording URL.
This event fires before post-call analysis. Use call.analyzed if you need summary, score, and outcome fields.

call.analyzed

Fired after post-call analysis completes. Contains summary, outcome, score, structured data, and tool execution results.

Campaign Events

campaign.ended

Fired when a campaign finishes. Includes full statistics and performance metrics.

Webhook Signing & Verification

Kejue signs webhook payloads so you can verify they’re authentic.

Verification Examples

Always use constant-time comparison functions to prevent timing attacks.

Delivery & Retries

Only 5xx server errors and timeouts trigger retries. 4xx responses are treated as permanent failures and are not retried.

Inline Webhooks

You can pass webhooks inline when creating a call. Inline webhooks override subscription-based webhooks for that specific call.