Intelligent Monitoring
Each call is automatically distilled into structured fields. Define your own Custom Call Outcomes in the app, and we’ll populate them from the call transcript—reliably and in a strict schema. It turns messy call transcripts into simple fields you can trust, so you can search, filter, and act on calls without rereading them.At a glance
- Add fields per agent under Post-processing → Custom call outcomes
- Choose a type (Boolean, Text, Number, Category)
- Select Reason to add an optional explanation for each value
- View results in Call History and receive them via webhook

call_analysis
and call_outcome
keys.
How it works
A dedicated extraction model analyzes the conversation transcript and fills your fields:- Schema-strict: output always matches the field type you selected.
- No guessing: if a value isn’t clearly supported by the transcript, it’s
null
. - Robust to STT: built for speech-to-text imperfections and everyday phrasing.
Create a field
- Go to Agents → [agent] → Post-processing → Custom call outcomes → Add.
- Name the field (use
snake_case
, e.g.,lead_conversion
). - Pick a Field type.
- Write clear Instructions (see templates).
- Save. New calls will be analyzed for this field.

- Boolean (True/False): yes/no or binary states
- Text: short free-form text
- Number: integer or decimal
- Category: one option from a list you define (use labels your team understands)
Plan before you add fields
- What decision will this field drive? (reporting, routing, QA, follow-ups)
- Which type is simplest for that decision?
- For Category, define a small, clear option set.
- Keep the Instructions unambiguous and focused on what to extract.
- Confirm downstream systems handle new fields and
null
safely.
Instruction templates (copy/paste)
-
Boolean — lead conversion
Set to
true
only if the customer clearly agreed to be contacted again (explicitly or by accepting next steps). Otherwise set tofalse
. -
Category — lost reason
Select the single best explanation for why the customer is not proceeding.
- Choose
NO_INTEREST
if the customer is no longer interested in the product. - Choose
PREVIOUSLY_CONTACTED
if the customer already been contacted about this topic - Choose
TOO_EXPENSIVE
if the customer expresses reluctance about the price of the product
- Choose
-
Text — follow-up timing
Return the agreed follow-up time concisely (e.g.,
Thursday 09:00
). - Number — quantity requested Return the total number of units requested.
-
Text — insurance provider (string example)
Return the exact insurance provider the customer says they are a member of (e.g.,
Insurance A
,Insurance B
,Insurance C
).
- One decision per field.
- Prefer Category over Text when you’ll filter or chart results.
- Include brief examples in the instructions if edge cases exist.
- Remember that the analysis is solely based on the call transcript.
Data you’ll receive
Each analysis field follows a consistent data structure:- Reason appears only if enabled for that field.
- Fields may be
null
when the transcript doesn’t clearly support a value.