Calls
Call Insights
Insights turn raw transcripts into numbers you can act on: how the caller felt, which topics came up, whether the agent did its job, and what to fix next.
What gets computed
Sentiment
Per-turn and overall polarity for the caller, plus the trajectory across the call.
Keyword spotting
Tracked terms โ competitors, pricing, cancellation โ flagged with timestamps.
Call score
A 0โ100 rubric score covering objective completion, compliance, and conversation quality.
Structured summary
Outcome, next step, and extracted fields pushed to your CRM.
Sentiment
Each caller turn is scored from -1 to +1 and rolled into an overall label of positive, neutral, or negative. The trajectory matters more than the average: a call that starts negative and ends positive is a recovery, and those are the calls worth studying.
| Field | Type | Description |
|---|---|---|
| sentiment.overall | string | positive | neutral | negative |
| sentiment.score | number | -1.0 to 1.0, averaged across caller turns. |
| sentiment.trajectory | string | improving | flat | declining |
| sentiment.turns[] | array | Per-turn scores with timestamps. |
Keyword spotting
Define tracked terms per workspace under Data โ Dashboard โ Insights. Matching is case-insensitive and includes configurable synonyms, so "cancel", "cancellation", and "close my account" can share one bucket.
{
"keyword_groups": [
{ "label": "pricing", "terms": ["price", "cost", "how much", "quote"] },
{ "label": "churn_risk", "terms": ["cancel", "close my account", "refund"] },
{ "label": "competitor", "terms": ["other provider", "switching from"] }
]
}Call scoring
Scores come from a rubric you control. Each criterion is judged against the transcript and weighted into the final number, so the score reflects your definition of a good call rather than a generic one.
| Criterion | Default weight | Passes when |
|---|---|---|
| Objective completed | 40% | The agent achieved the stated goal (booked, qualified, resolved). |
| Accuracy | 25% | No claims contradicting the knowledge base. |
| Compliance | 20% | Required disclosures spoken; restricted topics avoided. |
| Conversation quality | 15% | Few interruptions, natural pacing, clear next step. |
Reading insights on a call
{
"call_id": "cl_889",
"sentiment": { "overall": "positive", "score": 0.42, "trajectory": "improving" },
"keywords": [{ "label": "pricing", "count": 3, "first_at": 48.2 }],
"score": { "total": 86, "objective_completed": true, "compliance": true },
"summary": "Caller booked a cleaning for Tuesday 10am. Asked about pricing twice.",
"next_step": "Confirmation SMS sent"
}Turning insights into changes
- Low objective completion โ The prompt is not driving to a close. Add an explicit goal and a fallback ask.
- Declining sentiment mid-call โ Find the turn where it flips โ usually a tool timeout or a repeated question.
- Spiking churn_risk keywords โ Route those calls to a Team with a retention agent via Handoff Rules.
- Compliance misses โ Move the disclosure out of the prompt body and into a required first-turn line.
