Embedding
Webhooks
Webhooks let Keep'em notify your systems when events occur. Instead of polling the API for updates, you receive HTTP POST requests at a URL you configure.
Available Events
| Event | Description |
|---|---|
viewer.registered | A viewer registered for an event |
viewer.session_started | A viewer began a viewing session |
viewer.completed | A viewer reached the completion threshold |
chat.escalated | A question was escalated to human support |
Configuration
Configure webhook endpoints in your project settings. Provide a URL and select which events you want to receive.
Payload Format
All webhook payloads follow the same structure:
{
"event": "viewer.completed",
"timestamp": "2025-01-15T14:30:00Z",
"data": {
"eventId": "evt_abc123",
"registrationId": "reg_def456",
"externalId": "your_internal_user_id",
"email": "viewer@example.com"
}
}The externalId field contains whatever identifier you provided when registering the viewer, making it easy to match webhook events to users in your system.
Retry Policy
If your endpoint returns a non-2xx status code, Keep'em retries the delivery with exponential backoff. After multiple failed attempts, the webhook is marked as failed and visible in your dashboard.