Set up
Create a webhook from Settings → Developers → Webhooks (or via the API with awebhooks:manage key). You provide:
- a URL to receive
POSTrequests - the events to subscribe to
- a generated signing secret
Payload
Every delivery is aPOST with this body:
Available events
| Event | Fires when |
|---|---|
conversation.started | A new conversation begins |
conversation.ended | A conversation is closed |
conversation.assigned | A conversation is assigned |
message.received | An inbound message arrives |
message.sent | An outbound message is sent |
ticket.created / ticket.updated / ticket.closed | Ticket lifecycle |
broadcast.sent / broadcast.failed | Broadcast outcome |
user.created | A workspace user is created |
lead.created | A new lead is captured |
Fetch the live, authoritative list any time from
GET /api/v1/webhooks/events.Verify signatures
Each request is signed with HMAC-SHA256 using your webhook secret. Recompute the signature over the raw request body and compare it to the signature header before trusting a payload. Reject anything that doesn’t match.Retries
Failed deliveries are retried with exponential backoff. Inspect delivery history and responses underGET /api/v1/webhooks/{id}/logs.