Create a webhook subscription
call.completed fires for every finished call, failed ones included. call.completed.<slug> fires for one disposition (Booked Callback becomes booked_callback). lead.status_changed and the campaign.* events are accepted but never fire.
Authorizations
Use Authorization: Bearer tc_live_xxxxx
Headers
Makes a retry safe. A 2xx response is stored for 24 hours per account, and a retry with the same key gets it back with Idempotent-Replay: true instead of running again. Errors aren't stored, so a retry after one runs fresh. The key isn't tied to a path or body: use a new key for every different request. A malformed key gets 400.
8 - 255^[A-Za-z0-9_-]+$"a1b2c3d4-e5f6-7890-abcd-ef0123456789"
Body
^call\.completed(?:\.[a-z0-9_]+)?$|^lead\.status_changed$|^campaign\.(?:activated|paused)$"call.completed.booked_callback"
"https://hooks.your-app.com/topcalls"
Every key must match the top-level payload field of that name. Arrays match any listed string, strings with % are SQL LIKE patterns, anything else must be equal.