Send events from your project’s calls and sessions to your webhook.
Webhooks allow you to receive real-time event notifications when calls and sessions start and end in Voiceflow, enabling seamless integration with your systems. This helps automate workflows, log call and session data, and trigger actions based on lifecycle events for both Twilio and web voice interactions.Add your webhook URL under Settings / Webhooks
Phone calls will receive both the runtime.call.* events and the corresponding runtime.session.* events. Use type to differentiate which event you’re handling.
Voiceflow will send POST requests to your webhook URL on the following events.
web widget voice call is made (including during testing on creator.voiceflow.com)
{ "type": "runtime.call.start", "data": { "userID": string, "projectID": string, "environmentID": string, // alias of the environment the call ran against "startTime": number, // unix timestamp MS "platform": "twilio" | "web-voice", "metadata": object // depends on "platform" } "time": number // unix timestamp MS, event time "resource": string // project-{projectID}}
"platform": "twilio","metadata": { "callSid": string // twilio call sid, can be used to check twilio logs "callType": "inbound" | "outbound" | "prototype-outbound", "userNumber": string // phone number of the user "agentNumber": string // phone number of the agent / bot}
The to and from number depends on the type of call.For example, for an "inbound" call, from is the userNumber and to is the agentNumber, while it is the inverse for "outbound".
Check type when evaluating response. There may be additional types of events in the future with a different shaped request body, as well as new properties and metadata.
Check data.platform before evaluating data.metadata, for example it’s possible that data.metadata.callSid doesn’t exist because it’s a "web-voice" call.
You can check data.projectID if you want to share the same endpoint between different projects.