Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.wittify.ai/llms.txt

Use this file to discover all available pages before exploring further.

Agents is the page that ranks every agent in your contact center against the calls they handled in the active filter window. Today the page renders preview data scoped to your active filter, the real roster ships when agent ingestion lands.

Page anatomy

RegionWhat you see
Filter barDate and hour controls, see Overview.
Mock-data noticeAn amber strip pinned above the KPI strip with the message Preview data scoped to your active filter. Real roster ships when agent ingestion lands.
Aggregate KPI stripFour summary cards specific to this page.
Tab barAgents and Teams pills. Agents is the default.
Agents tableA 9-column table with a toolbar, sort dropdown, search, and CSV export.
Teams tabAn empty state until ingestion gains a team identifier.

Aggregate KPI strip

Four cards, all reactive to the active filter window.
KPISubtitle
Agents in rangeActive in the selected window
Total calls handledSum across all agents
Avg Sentiment ΔMean change per call
Top PerformerHighest positive share in range

Agents tab

The default tab. A 9-column table with a toolbar at the top.

Toolbar

ElementNotes
Search boxPlaceholder Search agents by name or id.
Sort by dropdownOne of Calls (high to low), Handle time (low to high), Sentiment change (high to low), Escalation (low to high), Name (A to Z). The default is Calls (high to low).
Export CSV buttonExports the table for the active filter and search.

Table columns

ColumnWhat it shows
AgentAvatar circle with the agent’s initials plus name.
CallsTotal calls handled in scope. Sortable.
Avg Handle TimeMean call length. Lower is better. Sortable.
Sentiment ΔCustomer sentiment change from the opening to the closing of each call, averaged across the agent’s calls. Positive values mean the agent moved customers up the sentiment scale. Sortable.
FCRFirst Contact Resolution. Renders with a small help tooltip Shipped when Customer Journey (plan #32) lands.
EscalationShare of the agent’s calls that were handed off or flagged. Lower is better. Sortable.
Sentiment mixA stacked bar inside the cell showing positive / neutral / negative shares for the agent. The bar’s accessible label reads Sentiment distribution for this agent.
Top intentsUp to three small chips of the agent’s most-frequent intent labels.
Trend (30d)A 30-day call-volume sparkline inside the cell. The sparkline’s accessible label reads 30-day call volume trend.

Row interactions

InteractionWhat happens
Hover rowThe row highlights and a small hint Row click drills into this agents calls appears.
Click rowDrills into the agent’s calls. The destination route is wired once per-call agent attribution lands.

Empty states

StateMessage
Search returns nothingNo agents match your search.
Filter window has no agent dataCould not load agent scorecards.
A small Showing of line appears below the table when not all rows fit on screen. The render cap is 100 rows.

Teams tab

The Teams tab shows an empty state today.
ElementWhat it says
TitleTeam scorecards coming soon
BodyOnce agents are grouped into teams on ingest, this view rolls up call volume, sentiment shift, and escalation by team, with a per agent breakdown.
HintBlocked on the team id column in Part A.

CSV export

The Export CSV button downloads the table for the active filter and search. Rows are limited to the same 100-row render cap as the table.
ColumnNotes
agentAgent name.
callsTotal calls.
avg_handle_timeIn seconds.
sentiment_deltaMean change.
fcrEmpty until Customer Journey ships.
escalationShare, 0 to 1.
positive_share, neutral_share, negative_shareThe three components of the sentiment mix bar.
top_intentsComma-separated list of the agent’s top intents.
The CSV uses a UTF-8 BOM and CRLF line endings. Every cell goes through formula-injection defence so Excel renders Arabic content correctly and never executes formula-like content.

Common questions

The FCR (First Contact Resolution) calculation depends on cross-call attribution, which is part of an upcoming Customer Journey feature. Until that ships, the column carries the placeholder dash with a tooltip explaining why. Once available, the column fills automatically with no UI change required.
The numbers reflect the active filter window’s calls, but the agent identifiers and roster are preview data while we wait for per-call agent attribution to be added on the ingestion side. When agent attribution lands, the same view shows your real roster.
Two possibilities. The agent has zero calls in the active filter window (widen the date range to confirm), or the filter window is narrower than the agent’s last call (set the date range to Last 90 days and check again).
By design, until ingestion gains a team identifier. The empty state explains exactly that.
Each sort key is supported. If you do not see the data move when changing the sort, the active filter window has no agents with that signal, the order looks the same because every row is tied.
The destination is wired the moment per-call agent attribution lands. Until then, the hint Row click drills into this agents calls appears but the click is a no-op.
The render cap is 100 rows for client-side performance. Larger exports require server-side pagination, which ships with the dedicated CSV endpoint. Use the search to scope down to the agents you need, or wait for the dedicated endpoint.

Where to go next

Compliance

Per-agent script adherence breakdown.

Sentiment Analysis

Project-wide view of the same metric.

Goals

Set targets and track progress as rings.

Alerts

Watch a metric and route notifications.