Overview
Webhooks let you receive real-time HTTP notifications when events occur on your agents — chat messages, voice calls, campaign steps, and more. Register an HTTPS endpoint, choose which events to subscribe to, and ThinnestAI will POST signed JSON payloads to your URL.How It Works
- Register an endpoint with a URL and event types
- Receive a signing secret (shown once — save it)
- Events fire as your agents operate
- ThinnestAI POSTs signed JSON to your URL
- Verify the signature to confirm authenticity
- Respond with 2xx to acknowledge receipt
Event Types
| Event | Description |
|---|---|
agent.created | New agent created |
agent.updated | Agent configuration changed |
agent.deleted | Agent deleted |
chat.message.completed | Agent finished responding to a chat message |
chat.session.ended | Chat session ended |
voice.call.started | Voice call connected |
voice.call.ended | Voice call ended |
campaign.step.completed | Campaign step executed |
campaign.completed | Campaign finished |
webhook.test | Test event (sent via API) |
Payload Format
Every webhook POST has this JSON structure:Headers
Every webhook request includes these headers:| Header | Description |
|---|---|
X-Webhook-Signature | sha256=<hmac_hex> — HMAC-SHA256 of {timestamp}.{body} |
X-Webhook-Timestamp | Unix timestamp (seconds) |
X-Webhook-Event | Event type (e.g., chat.message.completed) |
X-Webhook-Delivery-Id | Unique delivery ID for deduplication |
Content-Type | application/json |
User-Agent | ThinnestAI-Webhooks/1.0 |
Limits
- Maximum 20 endpoints per account
- Webhook URLs must use HTTPS
- Delivery timeout: 5 seconds (configurable up to 30s)
- Maximum 3 retries (configurable 0–5)
- Retry delays: 10s → 60s → 300s (exponential backoff)
Quick Start
secret — save it to verify incoming webhooks.

