Creating a Webhook
Subscribe to calling events by creating a webhook for your application. Via Dashboard- Navigate to your application’s Webhooks page
- Click “Create Webhook”
- Enter your webhook URL
- Select the calling events you want to receive
- (Optional) Add custom headers for authentication
- Save the webhook
POST /v1/webhooks endpoint with calling event types:
Create Calling Webhook
Webhook Payload Structure
Every calling webhook includes these top-level fields:Call Data
Thedata.call object is present in all calling webhooks and includes:
Call Lifecycle Events
These events track the progress of a call from initiation to completion.calls.initiated
Fired when a call is created (outbound) or an incoming call is received (inbound).
calls.initiated payload
calls.ringing
Fired when an outbound call is ringing at the destination.
calls.ringing payload
calls.answered
Fired when the call is answered. Includes answeredAt and answeredBy fields.
calls.answered payload
calls.completed
Fired when a call ends normally. Includes duration, endReason, and endedAt fields.
calls.completed payload
calls.failed
Fired when a call fails. Includes an error object with details about the failure.
calls.failed payload
calls.no_answer
Fired when no one answers the call.
calls.no_answer payload
Participant Events
These events track participants joining and leaving a call.calls.participant_joined
Fired when a participant joins the call.
calls.participant_joined payload
calls.participant_left
Fired when a participant leaves the call. Includes the participant’s duration and leftAt timestamp.
calls.participant_left payload
Recording and Voicemail Events
calls.recording.completed
Fired when a call recording has finished processing and is available for download.
calls.recording.completed payload
calls.voicemail.received
Fired when a voicemail is left. Includes the voicemail audio URL and transcription (when available).
calls.voicemail.received payload
The
transcription field may be null if transcription is not enabled or still processing. You can retrieve the transcription later using the voicemail API endpoints.The
url fields in recording and voicemail webhook payloads are time-limited signed URLs. If you need to access the file later, use the Recordings API to generate a fresh URL.Event Summary
Handling Calling Webhooks
Here is an example of how to handle calling webhooks in your application:Handle Calling Webhooks