How webhooks work
When a call event occurs, OneInbox sends an HTTP POST to your server with the event payload. Your server must respond with2xx within a few seconds — if it doesn’t, OneInbox retries delivery.
Setting up a webhook means you don’t need to poll GET /v1/calls/<id> repeatedly. OneInbox pushes the data to you the moment the event fires.
Create a webhook
Set up a webhook by providing a URL on your server and the events you want to receive. OneInbox will send a POST request to that URL every time one of those events fires.id — you’ll need it to update or delete the webhook.
Supported events
| Event | When it fires |
|---|---|
call.started | Call connects and the agent begins the session |
call.ended | Call ends — agent or caller hung up |
call.analyzed | AI analysis (summary, outcome) is ready after the call |
call.failed | Call failed to connect |
call.recording.available | Call recording is ready and accessible |
transcript.partial | Partial transcript update during an active call |
transcript.final | Full transcript is ready (fires after call.ended) |
Event payloads
call.started
Fires when a call connects and the agent starts the session. Use this to log call start times or trigger “call in progress” updates in your CRM.
call.ended
Fires when a call ends. This payload includes the AI-generated outcome and summary — the most commonly used event for CRM updates, lead routing, and reporting.
call.analyzed
Fires after the call ends once the AI has finished generating the summary and outcome. Use this to trigger CRM updates or lead routing based on the call result.
call.failed
Fires when a call fails to connect. Use this to log failures, trigger retries, or alert your team.
call.recording.available
Fires when the call recording has been processed and is ready to access. Use this to store or share recordings after a call.
transcript.partial
Fires during an active call with a partial transcript update. Use this for real-time monitoring or live agent assist — note that partial transcripts may change as the call continues.
transcript.final
Fires after call.ended once the full transcript is ready. Use this when you need the complete message-by-message conversation log — for example, to log it in your database or send it to a CRM.
Test a webhook
Send a test delivery to confirm your server is receiving events correctly before going live:2xx.
Per-call webhook override
You can send events for a specific call to a different URL without changing your global webhook config. This is useful when you’re routing different campaigns or batches to separate downstream systems — for example, one URL for inbound calls and another for outbound. Passwebhook_url when creating the call:
webhook_url instead of (or in addition to) any global webhooks you have configured.
Manage webhooks
List all webhooks
Retrieve all webhooks in your account. Use this to find a webhook’sid when you need to update or delete it.
Update a webhook
Change the URL, name, events, or status of a webhook.| Field | What it does |
|---|---|
name | Rename the webhook |
url | Change the delivery endpoint |
events | Replace the full list of subscribed events |
status | "active" or "inactive" — pause delivery without deleting the webhook |
Delete a webhook
Remove a webhook permanently. OneInbox will stop sending events to that URL immediately.View delivery history
Retrieve the delivery-attempt log for a webhook — useful for verifying that a specific event reached your server or diagnosing failures. Returns most-recent attempt first; each row includesresponse_status, response_body, and error.