Configuring webhooks
Pick the events
Check the boxes for the events you want:
contacts_actions— create / update / deletestatus_actions— create / update / deletesource_actions— create / update / delete
Payload
Every webhook POST has this shape:| Field | Meaning |
|---|---|
event | One of "created", "updated", "deleted". |
model | Fully qualified model class — use this to tell contact/status/source apart. |
data.id | Primary key of the record. |
data.attributes | Full attribute set of the record at the time of the event. |
data.relations | Reserved for eager-loaded relations (usually empty). |
original | Usually null. |
timestamp | ISO-8601 time the event was dispatched. |
Delivery guarantees
| Property | Value |
|---|---|
| Delivery | HTTP POST, JSON body |
| Attempts | Up to 3 total |
| Backoff | 0s, 2s, 4s (exponential) |
| Execution | Synchronous — not queued |
| Timeout | 30 seconds per attempt |
| Logging | Every attempt is written to the internal webhook_logs table, purged after 30 days |
Because webhooks are executed synchronously, your endpoint latency directly affects Xobito dashboard responsiveness. Return
2xx quickly (ideally under 1 second) and do the heavy work asynchronously on your side.Verifying requests
Every webhook request carries an HMAC-SHA256 signature in theX-Webhook-Signature header. See Webhook Security for how to verify.
Testing
There is no “Send test event” button in the current version. To test your endpoint, trigger a real event — for example, create a contact in the dashboard and watch your server for thecreated POST.
Incoming (Meta → Xobito) webhooks
Separate from outbound webhooks above, Xobito also receives inbound events from the Meta Cloud API (incoming messages, delivery receipts, template status changes). These are not customer configurable — they are set up automatically when you connect your Meta Business account. Do not confuse the two systems.Next steps
Webhook Events
The 9 events Xobito actually sends, with example payloads.
Webhook Security
HMAC signature verification.