Webhook events · sla
sla.breached/2
SLA breached. An SLA clock went past its due time.
Payload
We POST this JSON to your endpoint. Answer any 2xx within 30 seconds. The same id arrives again on a retry — skip ones you have handled.
| Field | Type | What it is |
|---|---|---|
| idrequired | string | Event id. The same on every retry: use it to skip duplicates.pattern ^evt_[0-9A-HJKMNP-TV-Z]{26}$ |
| typerequired | string | Event type.always sla.breached |
| versionrequired | string | Payload version.always 2 |
| api_versionrequired | string | The endpoint's API version. |
| occurred_atrequired | string | When it happened.date-time |
| company_idrequired | integer | Your workspace id. |
| datarequired | object | |
| breach_id | integer or null | Breach id. |
| conversation_idrequired | integer | Conversation id. |
| company_idrequired | integer | Workspace id. |
| metricrequired | string | Which clock.one of: first_response, next_response, resolution |
| due_atrequired | string | When it was due. |
| owner | object or null | Who owed the clock. |
| idrequired | integer | Id. |
| namerequired | string or null | Name. |
| contact | object or null | The contact. |
| idrequired | integer | Id. |
| namerequired | string or null | Name. |
| breached_atrequired | string | ISO 8601. |
| late_seconds | integer or null | How late, in seconds. |
Example
{
"id": "evt_01J8Z7BZQ4F6G8J2K5N7Q9S1VC",
"type": "sla.breached",
"version": "2",
"api_version": "2026-10-01",
"occurred_at": "2026-09-24T09:20:00Z",
"company_id": 1001,
"data": {
"breach_id": 551,
"conversation_id": 77410,
"company_id": 1001,
"metric": "first_response",
"due_at": "2026-09-24T09:26:40Z",
"owner": {
"id": 1203,
"name": "Priya Nair"
},
"contact": {
"id": 48213,
"name": "Jane Doe"
},
"breached_at": "2026-09-24T09:26:41Z",
"late_seconds": 0
}
}Headers
Webhook-Signature:t=…,v1=…— how to check itWebhook-Id(alsoWebhook-Event-Id): the event id, the same on every retry — skip ones you have handledWebhook-Delivery-Id: this delivery attempt, new on every try