Conversation Intelligence
Conversation Intelligence answers one question: how are your customers’ conversations trending, and where is sentiment drifting? Open Insights → Conversations in the Orbit console to see every conversation your AI agents and human teams handle across SMS, WhatsApp, email, and voice rolled up into one panel — sentiment distribution, channel mix, recent threads, and a per-agent leaderboard. It is the aggregate counterpart to the per-thread views: read it first, then drill into it. Three adjacent surfaces answer different questions — the Picking the right surface section below settles which one to reach for.What the panel computes
The panel reads one analytics payload —GET /api/v1/stats/conversation-intelligence — and renders six sections from it:
- KPI strip. Total conversations, average messages per conversation, resolution rate, solution rate, average duration, and quality score (with a period-over-period delta when the backend has a scored prior window). Read resolution and solution side by side: resolution counts conversations marked complete (gameable — an agent that auto-closes threads drives it to 100%); solution counts only threads where the customer confirmed resolution or the workflow closed with positive sentiment. When they diverge, trust solution.
- Conversation volume area chart. Daily conversation count over the selected window — pick 24h for incident triage, 7d/30d (default)/90d/12m for trend work, or a custom calendar range.
- Sentiment distribution donut. The
sentiment_distributionaggregate — how many conversations in the window the AI analyzer classified as positive, neutral, or negative. Coverage notes below. - Channel breakdown bar chart. The
channelBreakdownaggregate — how many conversations each channel (SMS, WhatsApp, email, voice) contributed to the window. - Recent conversations table. The
recent_conversationslist — the latest threads across all agents and channels, each carrying the agent name, channel, status, and (when the analyzer has classified it) sentiment. Default-capped to the most recent 25 with a View all expander. - Agent leaderboard. Agents ranked by conversation volume, resolution rate, average handle time, CSAT proxy, and average token spend — the drill-in for “which agent is generating this sentiment.”
Reading the sentiment donut
The donut splits the window’s sentiment distribution into three segments: Positive (green), Neutral (slate), and Negative (red). Each legend entry pairs its color swatch with a non-colour glyph — triangle-up for positive, square for neutral, triangle-down for negative — because a color-only legend collapses Positive and Negative into the same shape for red/green colour-blind readers on your team. If you only export the summary CSV, the same three counts land in theSentiment distribution section of the file so a screen-reader workflow loses nothing.
Hover a segment to see its exact count (formatted compact — 1.2K, 4.5M) rather than the donut percentage; count is the number that survives an export.
Channel breakdown
The channel chart next to the donut shows what fraction of the window’s conversations came in over SMS, WhatsApp, email, and voice. Use it as the mix check before you act on the sentiment donut: if WhatsApp is 80% of your volume, a sentiment dip is a WhatsApp problem, not a portfolio problem. Consecutive bars share the chart palette, so the chart is categorical — read it as “how much each channel contributes,” not “how good each channel is.” The single-channel bar labels capitalize (the chart’s Y-axis formatter uppercases the first letter), sosms renders as Sms in narrow panels — channel names come from the same casing the API returns.
Recent conversations — back to the per-thread view
Aggregate widgets answer the where; the Recent Conversations table answers the which thread. Each row carries the agent name, its channel badge, the conversation status pill, and a sentiment badge when the AI analyzer has classified the thread — newest first. Use it to jump from “negative sentiment spiked this week” to the actual conversations driving it. From a row you can continue into the per-turn debug view or the unified interaction list, but for most operators the next step is simply opening the agent whose rows keep showing up. View all conversations expands past the default 25-row cap; the same cap applies to the agent leaderboard above it.Worked example: the week-over-week sentiment dip
You are a support lead. Monday’s roll-up shows a Negative ▼ slice that doubled, from 4% to 9% of the 7d window.- Check the channel mix. The channel bar shows WhatsApp still dominates; nothing about the mix changed — so the dip is not a channel migration.
- Scan the agent leaderboard. One agent — Order Status Bot — moved from 92% to 61% resolution. That is where the negative rows concentrate.
- Open Recent Conversations and filter visually. The rows tagged Order Status Bot carry red Negative badges; expanding to all rows confirms the cluster is on this one agent, not spread across the fleet.
- Drill into the agent. Click the agent name in the leaderboard to open its detail page; the agent conversation debug guide walks the per-turn view from there.
- Export a snapshot if you need an offline record. The Export CSV button emits a self-describing file (range header, summary KPIs, sentiment counts, per-channel counts) so the delta you found survives attaching to a ticket.
Picking the right surface
Three surfaces cover adjacent ground; the pick-order is:- Conversation Intelligence (this page). Aggregate sentiment, channel mix, and agent ranking across every channel — “how are conversations trending, and which agent is driving the trend.”
- Interaction Search. A filterable, recency-ordered list over every message conversation and every voice call — “find and audit individual threads.” Reach for it when you need a specific thread, not a trend.
- Topic Intelligence. Aggregated contact reasons — “what customers contact us about and is it rising.” Reach for it when sentiment is fine but the inbound mix is shifting.
API contract
GET /api/v1/stats/conversation-intelligence returns the payload the page renders. Accepts the trailing-window query param ?days= (integer, 1–365, default 30). The response is the standard { data, meta } envelope with data carrying aggregates, sentiment_distribution, channel_breakdown, agent_leaderboard, time_series (volume), and recent_conversations. A fresh tenant receives a handled 200 with zeroed aggregates, so the read is safe to poll. Both Clerk sessions (dashboard) and API keys with analytics:read reach it — use the key form when you wire the read into a warehouse.
See also
- Topic Intelligence — aggregated contact reasons across channels.
- Interaction Search — the unified per-thread list across messaging and voice.
- Agent conversation debug — per-turn agent behavior once a leaderboard row is implicated.
- Insights dashboards — the catalog of every other Insights surface.
- Sentiment portfolio — the how-customers-feel counterpart when sentiment itself is the question.