call_analyzed event, ready to push into your CRM, trigger workflows, or feed a dashboard.
How it works
Every call goes through three lifecycle stages, each of which fires a webhook event:call_analyzed is the event that carries your extracted data. Verbeo sends it once the summary and analysis are ready — usually within seconds of the call ending. If generating them fails, Verbeo keeps retrying and the event can take up to 3 hours; it is still sent only once (see Timing). call_analyzed is sent for every completed call: if post-call analysis is turned off, or the AI cannot fill any field, the event still arrives with analysis_data set to null.
Configure extraction fields
Open your agent in the dashboard, scroll to Post-Call Analysis, and toggle it on. Then click Add Field for each piece of data you want extracted. Each field has five settings:Example field configuration
Here is a configuration for a customer support agent that tracks issue resolution and caller sentiment:The call_analyzed webhook event
When analysis completes, Verbeo sends a POST to your webhookUrl with the following shape. The analysis_data object contains exactly the fields you configured, keyed by the names you chose.
Key fields in payload.data
The payload also carries identifiers (
id, workspace_id, agent_id, call_sid, recording_sid) and timestamps (started_at, ended_at, created_at, updated_at). Parse permissively and ignore any keys you don’t use — Verbeo may add fields over time.
The three webhook events
You receive three events per call, all delivered to the samewebhookUrl:
call_started
Fires within seconds of the call being answered. Use it to initialize a live dashboard entry or pre-warm a CRM record.
call_ended
Fires within seconds of disconnect. Contains duration and disconnection reason but not yet the transcript or extracted data.
call_analyzed
Fires once the summary and analysis are ready — usually within seconds of the call ending, or up to 3 hours if generating them fails. This is the primary event for downstream automation — it contains everything.
Set your webhookUrl in the agent’s settings. All three events are delivered to the same URL; dispatch in your handler on the event field. You can inspect, debug, and replay every delivery from the dashboard — see Monitor and retry deliveries.
Set the webhook URL via API
fields is a list and is replaced whole: send every field you want extracted, not only a new one.
Handling missing values
If the AI cannot find a confident value for a field, it returnsnull — never an empty string, never a fabricated value. A required field returning null means the data genuinely was not in the transcript.
If you see null frequently on a field you expect to be populated, tighten the description. Specify what counts as a value, what format it should be in, and what to return when the caller is vague.
What to build with analysis_data
- CRM sync — push extracted fields directly into a contact record after every call.
- Follow-up triggers — if
callback_requested === true, create a task for a human agent. - Lead scoring — combine
sentiment,issue_resolved, and custom fields to rank leads automatically. - Compliance archiving — store the transcript, summary, and recording URL for every call.
- Real-time dashboards — listen to all three events to show live call status and fill in outcomes when analysis arrives.