1
Whitelist all three source IPs
Bolna delivers webhooks from
13.203.39.153, 13.126.9.249 and 13.202.133.53. If your firewall allows only one or two of them, deliveries look intermittent rather than broken.2
Confirm the endpoint is publicly reachable
The URL must accept HTTP
POST from the public internet. localhost, a VPN-only host, or an endpoint behind SSO will silently receive nothing. Test it from outside your network:3
Check the URL is saved on the right agent
The webhook URL lives in Push all execution data to webhook on the Extractions tab, and it is per agent. Setting it and not clicking Save agent is a common miss.
4
Check what you are waiting for
Bolna posts as the status changes. If your handler only acts on
completed, you will see nothing while a call sits in queued or in-progress, and nothing at all for a call that ended no-answer or busy. See Call statuses.5
Check your own response codes
A handler that returns a non-2xx status, redirects, or takes too long to respond looks like a failed delivery from Bolna’s side. Log the raw request before doing any processing.
”The webhook arrived but the fields were empty”
This is expected on the disconnect event. Atcall-disconnected the line has dropped but post-call processing has not finished, so conversation_duration, total_cost, recording_url and extracted_data are still empty. Act on completed, which arrives a few seconds later with those fields populated.
Fall back to polling
If you cannot expose a public endpoint at all, poll instead — the payload is the same object the webhook delivers.Still nothing
Collect theexecution_id, the exact webhook URL configured on the agent, and your server’s access log for that timestamp, then reach out through Get help.
