Webhook delivery
When subscribed events occur, Weav sends an HTTPS POST request to your configured webhook URL.
When subscribed events occur, Weav sends an HTTPS POST request to your configured webhook URL.
Verification headers
X-Weav-Event: event typeX-Weav-Signature: HMAC SHA-256 of the raw JSON body using your webhook secretContent-Type:application/json
Delivery behavior
- Any
2xxresponse is treated as success 410 Gonedeactivates the webhook immediately- Other non-2xx responses are retried up to 10 attempts with exponential backoff (1m, 2m, 4m, ...)
- Webhooks are auto-deactivated after repeated permanent failures
Payload
The JSON request body contains:
eventstringrequiredEvent type. Values: conversation.created, conversation.deleted, conversation.assigned.updated, conversation.status.updated, conversation.priority.updated, conversation.tags.updated, conversation.customer.message.created, conversation.user.message.created, customer.created, customer.updated, customer.deleted, agent.created, agent.updated, agent.deleted, training.created, training.updated, training.deleted, training.agent.assigned.
idstringrequiredUnique webhook delivery identifier. UUID.
organization_idstringrequiredOrganization UUID that emitted the event. UUID.
dataobjectrequiredEvent-specific payload. Shape depends on event type.
Example payload
{
"event": "conversation.created",
"id": "550e8400-e29b-41d4-a716-446655440000",
"organization_id": "123e4567-e89b-12d3-a456-426614174000",
"data": {
"id": "019a5a3c-f1ce-7066-86ae-1ed35540a7ce",
"title": "Help with my account",
"status": "open",
"priority": "normal",
"channel": "email",
"assignee_id": null,
"assignee_type": null,
"customer_id": "0197d061-63a9-73c5-b574-e49d8b7964fb",
"created_at": "2025-11-06T17:35:34+00:00",
"updated_at": "2025-11-06T17:35:34+00:00"
}
}
