Payload shape
POST /your/endpoint
content-type: application/json
x-praatbox-signature: sha256=...
x-praatbox-event: conversation.handoff
{
"event": "conversation.handoff",
"id": "evt_4f9c2a",
"occurred_at": "2026-04-12T14:32:08Z",
"data": {
"conversation_id": "c_9a3f",
"reason": "low_confidence",
"transcript_url": "https://api.praatbox.com/v1/..."
}
}Events
conversation.created— visitor opened the widgetconversation.message— any new message in either directionconversation.handoff— visitor asked for a human, flagged for your teamconversation.resolved— thread closedconversation.csat— visitor rated the conversationknowledge.indexed— an uploaded source finished indexing
Verifying signatures
Compute HMAC-SHA256 over the raw request body using your endpoint's signing secret. Compare in constant time against the x-praatbox-signature header.
Retries (planned)
The plan: retry on any 5xx or timeout — five attempts with exponential backoff up to 24 hours. After that the event is dead-lettered, with one-click replay from the dashboard.
Want this?
If outbound webhooks would unblock an integration for you, tell us — it helps us prioritize.