Call webhooks: events and when they arrive
Last updated: 9 October 2026 · 5 min read
A call webhook has four events. Each is sent once per call: a calling service repeating a status does not produce a second request.
Steps
-
1
The four events
call_started: an incoming call starts ringing. For an outgoing call, an agent places it.call_answered: the call is picked up in the dashboard, in the app, or in WhatsApp itself (on the phone).call_ended: the call is over, whatever the outcome: a conversation, no answer, declined, failed.call_recording_ready: the recording, the transcript and the summary are ready. Only for calls with a recording.
A call nobody answers has no
call_answered:call_startedis followed bycall_ended. -
2
Order
The order in which events reach you is not guaranteed:
call_endedcan arrive beforecall_answered. Order them bystarted_at,answered_atandended_at. Store the call byidand update it on each event. -
3
A WhatsApp (QR) call placed from the dashboard or the app
call_answeredarrives when the customer picks up andcall_endedas soon as the call is over. The length is counted from the answer. The recording, transcript and summary follow a few minutes later in a separatecall_recording_ready. -
4
A WhatsApp (QR) call answered on the phone
WhatsApp tells a linked device nothing when the call ends; only the phone's call log has it. The phone usually sends the log a few seconds after the call, with the call's length, so
call_endedwaits for it. If no log arrives within 10 minutes,call_endedcomes without a length:duration_seconds: null,duration_known: false,ended_at: null. The log is only sent for numbers linked by QR after 22 September 2026. -
5
A call made from the phone itself
Clomni learns of such a call only from the phone's call log, once it is over. All its events arrive together, after the call.