Delivery model
- At-least-once delivery — design consumers to be idempotent
- No strict ordering guarantee across event types
- Retries with backoff on non-2xx responses
- Signature header so you can verify the payload came from RapidRoot
Example payload shape
Illustrative — not a live contract
{
"id": "evt_01H...",
"type": "message.received",
"created_at": "2026-07-28T09:14:22Z",
"workspace_id": "ws_01H...",
"data": {
"conversation_id": "cnv_01H...",
"contact": { "id": "ctc_01H...", "phone": "+9198XXXXXXXX" },
"message": { "id": "msg_01H...", "text": "Do you have availability today?" }
}
}Do not build against this yet
Treat the shape above as conceptual. Wait for the published contract before shipping production consumers.