Event-Driven AI Calling Triggered via HTTP Webhooks
Connect any website, app, Zapier workflow, or custom backend. Send an HTTP POST request to initiate an immediate outbound AI phone call.
Updated
Real-Time Event Webhooks
Receive webhooks on Call Started, Call Ended, Lead Qualified, or Call Failed.
Bidirectional by Design
Inbound webhooks start calls; outbound webhooks deliver progress and results, so your system never has to poll.
Context Variables in the Payload
Anything you send is available to the script, so the agent opens with the specific order, amount or appointment.
Works With Zapier, Make and n8n
Bridges tools that have no native integration without any code at all.
Webhooks are the lowest-common-denominator integration, and that is exactly why they matter. Every system worth integrating with can send an HTTP request and receive one — which means a legacy ERP, an internal admin panel, a custom booking system or a no-code automation tool can all trigger phone calls without anyone building a connector.
The model is deliberately simple in both directions. You post to start a call; we post back as it progresses and when it ends. Everything else — carrier routing, speech, reasoning, retries — sits behind that boundary.
Building a Reliable Webhook Handler
The receiving side is where integrations most often go wrong, and the failures are subtle rather than obvious. These practices prevent the ones that actually occur.
- Acknowledge fast, process later — Return a 200 immediately and do the work asynchronously. A slow handler triggers retries and duplicate processing.
- Make processing idempotent — The same event may arrive more than once. Key on the call ID so a repeat delivery does not create a duplicate record.
- Handle events out of order — Network timing means completion can theoretically arrive before an intermediate event. Do not assume strict sequence.
- Verify the request — Check the signature or shared secret rather than trusting anything that posts to your endpoint.
- Log the raw payload — When something looks wrong three weeks later, the raw body is the only thing that settles it.
- Use an idempotency key outbound — So a timeout on your side does not result in the customer being dialled twice.
What Each Event Is Actually Useful For
Subscribing to everything and acting on nothing is common. Each event has a distinct practical use.
| Event | Use it for | Notes |
|---|---|---|
| Call queued | Confirming the trigger worked | Useful during integration, noisy in production |
| Ringing | Live campaign monitoring | Rarely needs business logic |
| Answered | Real-time dashboards | Marks the start of billable talk time |
| Completed | Writing results to your system | The main event; carries the full payload |
| Failed | Retry and diagnostics | Distinguish no-answer from invalid number |
| Qualified | Immediate sales alerting | Fire the hot-lead notification here |
| Transfer attempted | Measuring handoff speed | Track when nobody picks up |
Handle Completed and Failed properly first. Everything else is monitoring, and most integrations work correctly with just those two plus Qualified for alerting.