Call webhooks: problems and fixes

Last updated: 9 October 2026 · 7 min read

Common situations with call webhooks, and what causes them.

Steps

  1. 1

    No call event arrives at all

    Check that the events under “Calls” are ticked on the webhook (“Edit”). The address must be HTTPS and reachable from the internet. If your server answers 4xx, the delivery is not retried: look at your server's logs. On 5xx or a timeout Clomni retries up to 5 attempts.

  2. 2

    The signature does not match

    Compute it over the raw body as it arrived, without re-serialising the JSON. The secret is in the webhook's edit window; another webhook's secret will not match. The signed string is <X-ChatX-Timestamp>.<body>.

  3. 3

    The same event arrives twice

    It is a retry: your server did not answer in time the first time. Do not process the same delivery_id twice, and answer within 5 seconds.

  4. 4

    call_ended arrived, call_answered did not

    The call was not answered, or call_answered is still on its way. The order of events is not guaranteed; order them by their time fields.

  5. 5

    duration_seconds is null

    The call was not answered. Or it was answered on the phone and the phone's call log did not arrive within 10 minutes: then duration_known is false. The log is only sent for numbers linked by QR after 22 September 2026; linking an older number by QR again helps.

  6. 6

    No call_recording_ready

    Only WhatsApp (QR) calls placed from the dashboard and the app, and WhatsApp Business API calls recorded in the browser, have a recording. A call answered on the phone and a Twilio call have none.

  7. 7

    summary is null or phone_number is empty

    A summary is made only for conversations longer than 10 seconds; if it cannot be made it is null, and the transcript still comes. If contact.phone_number is empty, the customer does not show their number on WhatsApp: identify them by contact.id.

Document