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
nullsafely.
Instruction templates (copy/paste)
-
Boolean — lead conversion
Set to
trueonly 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_INTERESTif the customer is no longer interested in the product. - Choose
PREVIOUSLY_CONTACTEDif the customer already been contacted about this topic - Choose
TOO_EXPENSIVEif 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
nullwhen the transcript doesn’t clearly support a value.