Find it at Optimize → Call Analytics, or select the Voice card in the overview on Home. It isn’t in the default sidebar for account users, so add it with Customize sidebar at the foot of the sidebar, or press Cmd/Ctrl+K and search for Call Analytics. See Navigating Studio.
Filters and time range
The controls at the top of the page apply to every metric and chart on it.- Agent menu — reads All agents until you pick some, then shows how many you chose, for example 2 agents. See Advanced Filtering.
- Time range menu — shows the period in use, which is Last 7 Days when the page opens. Choose another period from the menu.
- Refresh — reloads the figures for your current agents and time range. The button reads Refreshing… while it loads.
To use a custom range, select Custom Range, set the Start Time and End Time (each has a date and a time), then select Apply. The start must be before the end.
Days and times follow your browser’s time zone. To see them in UTC instead, switch on Use UTC under Time zone in the same menu. The caption on the Call volume by day chart (All times in …) shows which zone is in use.
Calls are counted by when they ended, so a call that starts just before midnight and ends just after it counts on the later day.
Headline metrics
Total
Absolute number of calls handled by the workspace.
Unique callers
Count of distinct phone numbers that reached your agent.
Avg duration
Average conversation length expressed in minutes and seconds.
Resolution rate
Percentage of calls counted as resolved out of all calls in the selected period. See Resolution Rate below for how a call qualifies as resolved.
User satisfaction
Percentage of calls marked Satisfied by the AI-inferred evaluation. See Customer Satisfaction (CSAT) below for how this score is determined.
Charts
Three charts sit below the metrics: Call outcomes and Transfer dispositions side by side, and Call volume by day across the bottom.Call volume by day
A stacked bar chart with one bar for every calendar day in the selected period. Each bar is split by outcome (Error, Insufficient-Balance, Contained, Transferred and Caller-Hungup), with a legend beneath the chart. Hover over a bar to see the date, the Total calls for that day, and the count for each outcome that day. The caption All times in … shows the time zone used to assign calls to days.
Call outcomes
A donut chart that breaks down the final outcome of each call:
- Contained – the AI agent ended the call, or the caller hung up after the agent had helped them. Transfer dispositions you have marked as contained also show here.
- Transferred – call was handed to a human agent. Calls that end any other way and aren’t marked as contained also show here, for example outbound campaign outcomes such as Voicemail, Wrong Number, Callback Requested and DNC Request, or a call with no disposition recorded.
- Caller-Hungup – caller hung up before the agent completed the flow
- Insufficient-Balance – call was rejected before it started because the account balance couldn’t cover it, or ended mid-call because the balance couldn’t cover the next minute. These calls are never counted as resolved.
- Error – call ended due to a system or bot error
Transfer dispositions
A donut chart that breaks down the dispositions recorded on every call except hang-ups, Insufficient-Balance and Error. For calls handed to a human agent, the disposition is the reason the AI agent gave for the transfer. Outbound campaign outcomes such as Voicemail appear here too, and a call with a blank disposition shows as Unknown Disposition. Under the chart, each disposition shows its share and call count, with a plus or minus button beside it that adds it to or removes it from your containment list. Hover over a slice to see its disposition and call count, or select it to open the matching calls. Use Manage containment to change which dispositions count as contained.
Open the matching calls
Select a slice of Call outcomes to open Call History filtered to that outcome. Select a slice of Transfer dispositions to open it filtered to that disposition. Call History opens on Last 30 Days, whatever period you were viewing here, and lists calls by when they started. The list may therefore not match the slice’s count exactly.Manage containment
A call counts as Contained when the AI agent ended it or the caller hung up after being helped. A transfer normally shows as Transferred. If one of your transfer dispositions means the AI agent dealt with the call, mark it as contained so those calls show as Contained instead.1
In the Transfer dispositions chart, select Manage containment. The Manage contained dispositions drawer opens.
2
Type the disposition name in the box that reads Add disposition (e.g. TRNFR_TO_PAYMENT), then select Add or press Enter. Type the name exactly as it appears in the chart, because matching is exact.
3
To stop counting a disposition as contained, select Remove beside it. Once the list has more than five entries, a Filter dispositions box helps you find one.
Manage containment only changes whether those calls are labelled Contained or Transferred in the charts. It doesn’t change your Resolution Rate, because every transfer already counts as resolved.The list belongs to the workspace, so everyone using Call Analytics in it sees the same list, and a change re-labels past calls as well as new ones. It applies to voice calls only; Chat Analytics and Email Analytics keep their own lists. Hangup and Caller-Hungup can’t be added. Each change is recorded in Audit Logs.
Resolution Rate
Resolution Rate is the percentage of calls that count as resolved out of all calls in the selected time window. A call is counted as resolved if it meets any one of the following criteria:- AI-contained — the AI agent resolved the caller’s query and closed the session without escalation.
- Caller hung up after resolution — the caller ended the call after receiving the answer they were looking for. The AI judge evaluates the conversation transcript to determine whether the hang-up followed a successful resolution.
- Transferred — the call was handed to a human agent. Every transfer counts as resolved, whichever transfer disposition it has.
Put another way, Resolution Rate leaves out only calls that ended as Caller-Hungup, Insufficient-Balance or Error. Every other call counts as resolved, including outbound campaign outcomes such as Voicemail. Manage containment moves calls between the Contained and Transferred slices of the charts, but it doesn’t change this figure.If a caller hangs up immediately after the AI provides an answer, the AI judge evaluates the transcript and can mark that call as resolved — so abrupt hang-ups after a correct response do not automatically hurt your resolution rate.A call that ends because your balance couldn’t cover it (Insufficient-Balance) is never counted as resolved, even when it is cut off during a transfer to a person, and it doesn’t count as transferred.
Customer Satisfaction (CSAT)
Every completed call automatically receives a Satisfied or Dissatisfied label — no post-call survey is required. The score is inferred by AI the moment the conversation ends and is visible on the call record immediately. You see it in Call History: a thumbs-up or thumbs-down beside the Caller ID, a Satisfied or Dissatisfied label when you open the call, and a User dissatisfied switch in Filters that lists only the dissatisfied calls. On this page, the User satisfaction card shows the percentage of calls in the period that were marked Satisfied. Chats and emails get the same label, and the rules below apply to all three. Their User satisfaction cards are on Chat Analytics and Email Analytics.Evaluation criteria
The satisfaction score measures whether the bot handled the interaction correctly, not whether the caller was happy with the business outcome. This is an important distinction. Two rules apply alongside the criteria below. They are designed to stop two kinds of conversation from pulling down your User satisfaction figure unfairly: those with no real exchange, and those where the caller asked for a handoff and got one.- No real exchange. If the agent only greeted and the caller said nothing that counts, there is nothing to judge, so the conversation is designed to be marked Satisfied. Silence, background noise, an unintelligible fragment, a voicemail beep and a bare “hello”, “okay” or “thanks” don’t count. A caller who asks for something, even briefly, such as “put me through to an agent”, has said something that counts.
- A handoff the caller asked for. When a caller asks for a person, a supervisor, a transfer or a callback, even in their first words after the greeting, and the agent transfers, tries to transfer or explains how to reach someone, that is the right outcome and it is designed to be marked Satisfied. The agent isn’t expected to solve the request itself first.
Marked as Satisfied (true)
Marked as Satisfied (true)
The bot is marked Satisfied when any of the following are true:
- Protocol Accuracy — The bot delivered correct information or enforced a policy (even a restrictive one) clearly and accurately.
- Procedural Completion — The bot reached a definitive state, provided a valid justification for a refusal, or offered the next available step.
- Successful Handoff — The bot correctly identified the need for a human agent and transitioned the caller without error.
- Escalation on Request — The caller asked for a person, a supervisor, a transfer or a callback, at any point and even straight after the greeting, and the bot transferred, tried to transfer or explained how to reach someone. The bot isn’t expected to solve the request itself first.
- Technical Competence — The bot addressed the specific intent of the user without circular logic or irrelevant tangents.
- Passive Success — The caller ended the call after receiving a correct (even if unwanted) answer, or there was no further user input following a correct final response.
Marked as Dissatisfied (false)
Marked as Dissatisfied (false)
The bot is marked Dissatisfied only when one of the following occurred:
- Functional Failure — The bot provided incorrect information, hallucinated a policy, or failed to perform a requested action it is capable of.
- Logic Loops — The bot repeated scripts or failed to progress the conversation despite user clarity.
- Navigation Error — The bot refused a request without providing a reason, or its response actively prevented the user from reaching a resolution.
- Incoherence — The bot’s response was non-sequitur or failed to recognize the user’s primary intent.
Outcome Independence — If a caller is upset because they were denied a request (e.g. a refund or credit), but the bot’s denial was based on correct policy, the call is still marked Satisfied. The system distinguishes between an upset human (due to the situation) and a failed interaction (due to the bot). High caller frustration does not equal a bot failure when the bot was clear, correct, and professional.
Data source & refresh cadence
The analytics are computed from your stored call records. Only voice calls are counted here. Chat and email have their own pages: Chat Analytics and Email Analytics.Live updates
While the selected period includes the present (Today, Last 7 Days, Last 30 Days, or a custom range that hasn’t ended), the page updates by itself as calls finish. A green Live badge appears above the metrics with a Pause live button.- Pause live freezes the figures so they don’t change while you read. The badge changes to Live updates paused. Select Resume live to load the latest figures and start updating again.
- If the period you chose has already ended, for example a custom range in the past, the page shows Viewing historical range instead and doesn’t update. Select Resume live to go back to Last 7 Days with live updates.
- Select Refresh in the header at any time to reload the figures from your stored call records.
- If the browser tab stays in the background for more than about 10 seconds, live updates stop, and the figures reload when you return to the tab.
Advanced Filtering
To help you perform more granular analysis, use the agents menu at the top of the page. It reads All agents until you pick some, and the Search assistants box inside it helps you find an agent by name. This allows you to:- Analyze Single Agents: View performance metrics for a specific AI agent.
- Compare Agent Groups: Select multiple AI agents to see aggregated data across a specific set of assistants.
- Identify Trends: Quickly isolate results to understand which agents are driving your key metrics.
Where to go next
Call History
Drill into individual calls, listen to recordings and read transcripts.
Chat Analytics
View headline chat metrics, volume trends and outcome distribution for your chat channel.
Email Analytics
Track email volume, resolution rate, satisfaction and outcomes for your email channel.