Call webhooks: WhatsApp QR, WhatsApp Business API and Twilio differences
Last updated: 9 October 2026 · 3 min read
Call events carry the same fields on all three services, but each service does not know some things. A field that is not known is null.
Steps
-
1
WhatsApp (QR)
- Outgoing calls are placed from the dashboard and the app. A call made from the phone itself has its events arrive together, after the call.
- Incoming calls are answered on the phone:
answered_on: phone,agent: null. - The length is counted from the answer. For a call answered on the phone it comes from the phone's call log; if the log does not arrive within 10 minutes,
duration_known: false. ended_by:agentwhen the agent hangs up in the dashboard or the app, or declines an incoming call on the phone.nullotherwise.- Recording, transcript and summary for calls placed from the dashboard and the app. Each side is transcribed separately.
busyis not reported.
-
2
WhatsApp Business API
- Outgoing calls and answering incoming ones in the dashboard.
- The length comes from WhatsApp.
ended_by:agent,contactorsystem.agent: on incoming calls, the agent who answered.- A recording exists for calls recorded in the browser. The transcript comes from one recording, so its lines have
speaker: mixed. busyis reported.
-
3
Twilio
- Outgoing calls and answering incoming ones in the dashboard.
- The length comes from Twilio.
ended_by: the first side to leave the conference,agentorcontact.- On incoming calls,
agent: null. - No recording, transcript or summary;
call_recording_readydoes not come. - A busy line comes as
no_answer.