Skip to main content
After a call ends, Osvi can run the transcript through an LLM and turn the conversation into structured results: a summary, the specific data points you asked for, tags, and callback detection — then deliver all of it to your webhook or a Google Sheet. Everything here is configured per agent on the Call Analysis tab.
Analysis runs only for calls that were answered and produced a transcript (call_status: picked), and only when post-call analysis is enabled on the agent.
Turn Post-Call Analysis on at the top of the tab, then work through its sections: LLM Model, Callback, Analysis Prompt, Data Extraction, Integrations, Call Tags, and Do Not Disturb.

Analysis model and prompt

The Call Analysis tab with the LLM Model section selectedThe Call Analysis tab with the LLM Model section selected
  • LLM Model — the provider and model used for analysis, independent of the model the agent uses live on the call. Enable reasoning lets the model think before answering: better results on complex calls, but slower and more expensive.
  • Analysis Prompt — instructions for the analysis pass: what the summary should focus on, what counts as a successful call, anything domain-specific the model should pay attention to.
The Analysis Prompt sectionThe Analysis Prompt section

Data extraction

Data Extraction with field names, types, and descriptionsData Extraction with field names, types, and descriptions
Define the fields you want pulled out of every conversation. For each field you set: Extracted values appear on each call’s Analysis tab in Conversations, in webhook payloads under data_capture, and in CSV exports.

Output schema

Beyond flat fields, you can define a custom output schema — a JSON shape the analysis must produce. Use simple mode for a fixed structure, or conditional mode when the shape depends on how the call went (e.g. an appointment object only when one was booked). The result is delivered as structured_output in webhooks.

Call tags

Call Tags with coloured tags and the rule for applying each oneCall Tags with coloured tags and the rule for applying each one
Add Tag gives each tag a name, a colour, and a description telling the model when it applies — “Apply when the caller successfully verified their identity…”. The analysis pass then tags each call. Tags show up as a filter in Conversations, so they’re the fastest way to slice call outcomes without reading transcripts.

Callbacks

Callback with retries and the callback promptCallback with retries and the callback prompt
Turn on Enable Callback and the analysis pass watches for moments where the caller asked to be called back (“call me after 6pm”), then schedules the follow-up.
  • Incomplete Call Retries — how many times to call back when a call ends incomplete, from 0 to 10. Counted separately from campaign retries; 0 turns them off.
  • Callback Prompt — how the agent should decide the callback time. It returns a delay in seconds, so the prompt is where you set the rules: how long to wait after an incomplete call, how to read “in ten minutes” against a specific time of day, and what to do outside working hours.

Do Not Disturb

Do Not Disturb with DND detection and the list of numbersDo Not Disturb with DND detection and the list of numbers
Turn on Enable DND Detection and numbers are added automatically when a caller asks not to be contacted again. Campaigns skip every number on the list, and you can search it from this tab.

Integrations — getting results out

Integrations with a webhook, its data sections, and the Webhooks and Logs tabsIntegrations with a webhook, its data sections, and the Webhooks and Logs tabs

Webhooks

Send analysis results to any HTTP endpoint you control. Add Integration creates one; each agent can have several, and each fires independently after every analysed call. You control the method, URL (with {{placeholder}} support), headers, and body — either auto mode, where the chips on each row show which data sections are included (call info, call summary, data capture, call trigger data, structured output), or a fully custom JSON template. Each row has a switch to turn the webhook off without deleting it, and a send button that posts a sample payload so you can check your endpoint before going live. The complete payload contract, template expression reference, and delivery semantics are documented in the post-call webhook reference.

Google Sheets

Append a row to a spreadsheet after every analysed call — connect your Google account, pick the spreadsheet and sheet, and map analysis fields to columns. Useful when the destination is a human reviewing outcomes rather than a system.

Integration logs

Every delivery attempt — payload, response status, response body — is recorded under the Logs tab next to Webhooks. Failed deliveries can be retried from here, individually or in bulk.
Start with the webhook in auto mode and log what arrives. Once you’ve seen a few real payloads, tighten it to a custom template with exactly the fields your system needs.