Webhooks
Send call, chat, nudge, WhatsApp and other events to your own HTTPS endpoint - set up endpoints, secrets, test events and the delivery log.
Webhooks send events to your own system the moment they happen - a call ended, a transcript is ready, a nudge finished, a contact opted out - so your CRM or backend hears about it without polling.
Go to Developer → Webhooks in the sidebar (also under Settings → Webhooks).
Who can do this? Only workspace owners and admins can see and manage webhooks.
Developers: the full event list, payloads and how to verify signatures are in the Webhooks API reference. The Events & signatures button on the page links there too.
Add an endpoint
Each endpoint is a URL that receives a signed POST for the events it subscribes to.
- Click Add endpoint.
- Fill in:
- Endpoint URL - a public HTTPS address that answers with a
2xxstatus. - Description (optional) - for example “CRM sync”.
- Events - tick the events you want. Leave everything unticked for All events (except WhatsApp message.*).
- Agents - tick the agents whose events you want. Leave everything unticked for All agents.
- Endpoint URL - a public HTTPS address that answers with a
- Click Add endpoint.
The signing secret appears once, right after you add the endpoint. Copy it now - you won’t see it again. Keep it on your server, in a secrets manager: anyone with it can forge events.
Events
You can subscribe to call events (call.started, call.completed, call.failed, call.transferred), transcript.ready, recording.ready, outcome.captured, contact.opted_out, campaign.finished, wallet.low, stream.record_rejected, nudge events (nudge.scheduled, nudge.dialing, nudge.attempt_ended, nudge.finished), chat events, WhatsApp message events, and WhatsApp number and template changes. Each event in the list has a one-line description.
The per-message WhatsApp events (message.received, message.sent, message.delivered, message.read, message.failed) and chat.evaluated are only sent when you tick them - “all events” doesn’t include them.
Your endpoints
Each endpoint in the list shows its URL, description, what it receives and which agents. On each one you can:
- On / Off - pause and resume deliveries with the switch.
- Deliveries - open the delivery log (see below).
- Edit - change the URL, description, events or agents.
- Rotate secret - issue a new signing secret. It’s shown once; update your server with it.
- Delete - remove the endpoint.
Test events and the delivery log
Click Deliveries on an endpoint to open its log.
- Send test event sends a signed
webhook.testevent to the URL. The endpoint must be On. - Each delivery shows the event, its status - Delivered, Failed, Retrying or Pending - when it was sent, how many attempts it took, the HTTP code your server returned and any error. Expand a row to see the exact JSON body that was sent.
- Resend sends a delivery again.
Failed deliveries are retried automatically for 24 hours.
You can also see and replay the deliveries for one nudge from its detail panel on the Nudges page.
Good practice
- Verify the
X-Oyehello-Signatureheader on every request with your signing secret. - Use the event
idto ignore duplicates: an event can arrive more than once. - Use a separate endpoint (and agent filter) for each system, so you can turn one off without affecting the others.
Related: Webhooks API reference · API keys · Nudges