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.Analysis model and prompt
- LLM model — choose the provider and model used for analysis (OpenAI, Azure OpenAI, or Claude). This is independent of the model the agent uses live on the call.
- 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.
Data extraction
Define the fields you want pulled out of every conversation. For each field you set:| Property | Description |
|---|---|
| Name | The key it appears under in results (e.g. email, preferred_slot). |
| Type | text, number, boolean, or date. |
| Hint | A description telling the model what to look for. |
| Required | Whether the field must be filled for the extraction to count as complete. |
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. anappointment object only when one was booked). The result is delivered as structured_output in webhooks.
Call tags
Define tags (e.g.interested, wrong-number, escalation) and the analysis pass applies the matching ones to each call. Tags show up as a filter in Conversations, so they’re the fastest way to slice call outcomes without reading transcripts.
Callbacks
Enable callback detection and the analysis pass watches for moments where the caller asked to be called back (“call me after 6pm”). You tune the detection prompt; when a callback is detected, OSVI schedules the follow-up call accordingly.Do Not Disturb
Maintain a per-agent DND list of numbers that must not be called. Numbers on the list are skipped automatically by campaigns, and you can review the list from this tab. Callers who opt out during a conversation can be added so they’re never dialled again.Integrations — getting results out
Webhooks
Send analysis results to any HTTP endpoint you control. Each agent can have multiple webhook integrations; each fires independently after every analysed call. You control the method, URL (with{{placeholder}} support), headers, and body — either auto mode (toggle data sections on/off) or a fully custom JSON template.
The complete payload contract, template expression reference, and delivery semantics are documented in the post-call webhook reference.
