Skip to main content
Every interaction between a caller and an agent in Verbeo goes through a well-defined lifecycle. Whether the call originates from an inbound dial, an outbound API request, or a web-based session, Verbeo tracks it from the moment it is created to the point where analysis is complete. Understanding this lifecycle helps you build reliable integrations, debug issues quickly, and extract maximum value from every conversation.

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 a dynamic_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.
If your system prompt contains 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 (when postCallAnalysis 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.
Each of these events is delivered to the webhookUrl you configure on the agent. See Webhooks for the full event payload schemas.

Example call record

The following is a representative response from the Get Call API for a completed outbound call with post-call analysis enabled.
Use analysis_data to feed call outcomes back into your CRM or trigger downstream workflows — for example, automatically creating a follow-up task when follow_up_required is true.