Talkr AI
Your Dashboard

Reports

Call volume, outcomes, response latency, cold-start cost, conversation flow, and tool usage across any date range — with CSV export.

The Reports page (/reports) answers two questions about your agents: what happened on your calls, and how well the assistant actually performed on them.

Choosing a date range

Pick any single day or range of dates, interpreted in your organization's configured timezone. Presets cover Today, Last 7 days, and Last 30 days, or select an arbitrary range on the calendar (future dates are disabled). Ranges can span up to 92 days.

When you select more than one day, a call volume trend chart appears showing calls per day across the range, including days with no calls, so gaps are visible rather than skipped.

Filtering by agent

Use the workflow dropdown to scope the whole page — every card, chart and table — to a single agent, or leave it on All Workflows to see activity across your organization.

Call activity

CardWhat it shows
Total Workflow RunsCalls processed in the selected range
Transfer DispositionsCalls whose disposition indicates a transfer
  • Disposition Distribution — call outcomes, with the top 5 dispositions by volume and everything else rolled into "Other". Hover a bar for the exact count and percentage.
  • Call Duration Distribution — how long calls lasted, bucketed into 0-10s, 10-30s, 30-60s, 60-120s, 120-180s, and >180s.

Disposition codes

Every call ends with a disposition code — a short label for how it turned out. Talkr maps the standard outcomes to a fixed set, so these mean the same thing across reports, the run filter, and your webhooks:

CodeWhen you'll see it
XFERThe call was transferred
QUALIFIEDThe agent qualified the caller
DISQUALIFIEDThe agent disqualified the caller
COMPLETEDThe conversation ran to its end, including a normal caller hang-up
TIMEOUTThe call hit its maximum duration, or the caller went idle too long
VOICEMAILVoicemail was detected
CANCELLEDThe call was cancelled before it finished
FAILEDThe call couldn't complete — a connection or system error
UNKNOWNThe outcome couldn't be determined

Your own outcomes still come through. If your agent sets its own disposition — say interested_call_back_tuesday — that value is passed through exactly as written rather than forced into the table above. Use the standard codes when you want consistent reporting, and your own when you need detail the standard set can't express. See End Call for setting them.

The Disposition Distribution chart shows the top 5 by volume and rolls the rest into "Other", so a long tail of custom outcomes won't crowd out the standard ones.

Responsiveness

This is the section that tells you whether your assistant feels fast. It measures the wait a caller actually experiences: from the moment they finish speaking to the moment the assistant starts replying.

Four cards report the median, 90th percentile, 95th percentile, and slowest reply time, each graded against what a caller perceives on a phone line:

Reply timeReads as
Under 800 msExcellent — lands inside a natural conversational pause
800 ms – 1.2 sGood
1.2 – 2 sFair
2 – 3 sSlow — callers start talking over the assistant
Over 3 sVery slow — callers assume the line dropped

The reply time distribution chart shows the full shape of those waits, not just the headline numbers — useful for spotting an assistant that is usually fast but occasionally stalls, which an average would hide.

Where the time goes breaks that same reply time into its four stages, in the order the caller experiences them:

StageWhat it covers
Turn detectionDeciding the caller has actually finished — silence detection, transcript finalization, and the turn analyzer if one is configured
Speech to textTranscribing what they said
ModelThe assistant deciding what to say
Text to speechProducing the audio of the reply

Each stage median is measured independently, so they won't add up exactly to the reply time above — use them to see which stage dominates, not as a strict decomposition.

Every figure states the number of turns it was measured across. Reply time is a per-turn measurement, not a per-call one, so a single conversation contributes many samples — these numbers are meaningful well before you have high call volume. Stages that an agent doesn't use read "not used by this pipeline" rather than showing a misleading zero: a realtime (speech-to-speech) model has no separate speech-to-text or text-to-speech stage, and turn detection is only measured when a turn analyzer is configured.

Slowest turns

The individual turns callers waited longest on, with the stage that dominated each one, the node the conversation was in, and what the caller had just said. Each row links straight to that call's detail page, so a slow number leads directly to the conversation that produced it.

Correlating with infrastructure

Infrastructure in Grafana, at the top of the page, opens your monitoring dashboards with the time range already set to match the report you're looking at — so "were we slow because the box was loaded?" is one click rather than a manual date entry. The button appears only when a Grafana instance is configured for your deployment.

Path through the flow

For each node in your agent's graph: how many calls reached it, and how many ended there.

"Ended here" is simply the last node a call reached. That includes calls that finished perfectly normally, so treat it as where conversations stop, not where they fail. A goodbye node with a high ended-here count is working as designed; an unexpected node with a high count is worth investigating.

Conversation length

Median turns per call, the shortest-to-longest spread, and the share of calls that ended after a single turn. A high single-turn share usually means callers are hanging up on the greeting — a different problem from a call that runs long and goes nowhere, which call duration alone can't distinguish.

Tool usage

Per tool: how many times it ran, how many calls it ran on, and its median and slowest durations. A tool with a slow median is a direct contributor to the response latency above.

Invocations with no recorded duration are ones where the call ended before the tool returned. They still count under "times run", so the invocation count stays accurate even when timing data is incomplete.

On the call detail page, each tool call also shows a second number — to speech — the time from the tool's result landing to the assistant actually starting to speak next. Duration tells you how long the tool itself took; to-speech tells you how much of that delay the caller actually sat through in silence, which are not always the same thing if your agent does anything else (like composing a reply) before speaking.

Cold start

Every call's first exchange is naturally slower than the ones after it — connections warm up, models load context, caches are cold. Averaged across a whole report, that one-time cost quietly inflates every latency number above without you being able to see it.

Cold start isolates it: for each stage (speech-to-text, model, text-to-speech), it compares the median of every call's first turn against the median of that same call's later turns, and reports the difference.

ColumnWhat it means
First turn (p50)Median time for that stage, first turn only
Later turns (p50)Median time for that stage, every turn after the first
DeltaHow much slower the first turn is
SampleNumber of calls with more than one turn — calls with only a single turn have nothing to compare against, so they're excluded rather than counted as zero

A large, consistent delta on one stage is worth investigating on its own — it points at connection or model warm-up cost specifically, separate from whatever your steady-state responsiveness numbers already say. The same comparison appears on each call's own detail page, next to its turn timeline, scoped to just that call.

Downloading a CSV

Once the range has at least one run, Download CSV exports its calls (respecting the workflow filter) with phone number, disposition, duration in seconds, and a link to each call's run detail page.

On this page