Call types
Verbeo handles three types of calls.Inbound
A person dials one of your provisioned phone numbers. Verbeo routes the call to the assigned agent automatically.
Outbound
Your code triggers a call via the Calls API. You specify the destination number, the agent, and the
from_number.Web
A call initiated from a browser-based interface. Captured and logged alongside phone calls.
Call states
A call moves through the following states from creation to completion.
When you initiate an outbound call, the API response returns a
status of queued. You can poll the Get Call API or listen to webhook events to track state transitions in real time.
Dynamic variables
For outbound calls, you can personalize the agent’s behavior by passing adynamic_variables object in the call request. Verbeo substitutes {{variable_name}} placeholders in the agent’s system prompt with the values you provide before the call begins.
Hello {{customer_name}}, I'm calling about order {{order_id}}, the agent will open with Hello Jane Smith, I'm calling about order ORD-98765.
Dynamic variables are stored on the call record and returned in the Get Call response under dynamic_variables.
Data captured per call
After a call ends, Verbeo stores a structured record with the following fields.
You can retrieve all of this data via the Get Call API or receive it through webhook events.
Post-call analysis flow
After every call ends, Verbeo runs its post-call pipeline — transcription, summary, and (whenpostCallAnalysis is enabled) structured field extraction. The full event sequence is:
1
call_started
Fired when the call moves to
in-progress. Contains basic call metadata: call ID, agent ID, phone numbers, and start time.2
call_ended
Fired when the call disconnects. Contains the duration, cost, and disconnection reason. The transcript, summary, and analysis are not yet available — they arrive with
call_analyzed.3
call_analyzed
Fired once, after post-call analysis completes — usually within seconds of the call ending, or up to 3 hours if generating the summary and analysis fails. Contains the structured
analysis_data object with all configured fields extracted from the transcript.call_analyzed is sent for every completed call. When postCallAnalysis is disabled (or no field could be extracted), the event still arrives — its analysis_data is simply null.webhookUrl you configure on the agent. See Webhooks for the full event payload schemas.