AI dashboard for contact center metrics monitoring: AHT, FCR, CSAT, NPS

A manager only sees a quality drop at the end of the month, when it is already too late to fix it. We develop a turnkey AI dashboard for a contact center: we collect telephony and CRM data into a single stream and turn it into clear AHT, FCR, CSAT, and NPS metrics. Reaction time to deviations is reduced severalfold, and reporting stops diverging from reality.

AI Development Areas

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1365
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

AI contact center dashboard: where reporting breaks

Contact center metrics almost never live in one place. Telephony knows about calls and the queue, CRM knows about requests, statuses, and repeat contacts, while quality lives in conversation recordings and post-dialog ratings.

Contact center operational reporting is assembled manually: an analyst exports files, reconciles them by time and customer ID, and fills in the gaps in a spreadsheet.

This is exactly at the junction that discrepancies appear. A request closed in CRM may remain missed in telephony, a transfer between lines is counted either as one or two calls, while AHT and FCR are recalculated according to different rules in each report.

Manual report reconciliation takes more time than the actual analysis of the numbers and ends with the version "let's meet in the middle."

Data delay for requests adds a second layer of the problem.

Yesterday's summary appears by the middle of the next day, so a load spike, an FCR drop, or a fall in CSAT and NPS is noticed after the fact — when the shift is already over, and the causes have to be reconstructed from memory.

An AI contact center dashboard removes both pain points: contact center metric monitoring runs continuously, telephony and CRM data reconcile according to rules, and a drop in load or quality is visible at the moment when it can still be influenced. Let's break down how this works.

What continuous contact center monitoring provides

Continuous monitoring turns contact center metrics from reporting into a management signal. The dashboard calculates indicators for each channel and topic and compares them with the baseline of previous periods.

A metric drop is visible within the shift, not at the weekly meeting, when the cause can no longer be reconstructed from logs.

Reaction speed and first-contact resolution rate

Average handle time reacts to changes first: a new topic in the flow, a routing failure, a shortage of people on the line. The dashboard keeps it broken down by channels and topics, so growth is visible where it started, not averaged across the entire queue.

The first-contact resolution rate is directly related to this: if the indicator has dropped, you can see which topics are going into repeat contacts.

Fixing the knowledge base or routing rules returns the rate to its previous level, and the shift supervisor reacts to a signal, not to month-end results.

Satisfaction and loyalty over time

Customer satisfaction and customer loyalty change more slowly, and a shift can easily be missed in a weekly report. On the chart, they sit next to handle time: you can see that response time moved first, and a few days later the rating dropped.

Platforms like Zendesk provide such data through standard exports, so ratings are collected across all channels and brought to a single scale.

The loyalty trend takes pressure off managers: instead of analyzing complaints after the fact, they work with the point where the metric began to decline.

Options for collecting and visualizing metrics: comparison

A contact center metric can be collected in four different ways, and the choice here determines not only the update delay but also who will have to maintain the data model. Let's break down the options by when they are truly appropriate and where they break.

Ready-made templates and their ceiling

A template dashboard is deployed in a matter of days: an export from telephony and the request system is connected, and the metrics AHT, FCR, CSAT, and NPS land on ready-made panels.

The ceiling begins where a non-standard attribute is needed — request topic, channel, queue, operator level: extending the dictionary has to go through the vendor.

Option When it fits Limitations
Ready-made analytics template You need an overview slice by AHT, FCR, CSAT, NPS without your own platform Fixed set of dimensions, storage depth set by the vendor, custom attributes are added slowly
Build on the customer's analytics platform You already have licenses and a team, and you need arbitrary slices and integration with other sources Scheduled updates, delay in minutes or hours; the data model is maintained by the customer
Streaming data mart The metric affects shift management directly during the day More expensive to maintain, requires discipline around the event schema and handling late records
Scheduled exports A report for management, no access to databases File versions diverge, reconciliation is manual, there is no change history

Streaming pipeline with a data mart

Here request events pass through a queue, are enriched with reference data, and land in a data mart, from which the dashboard reads already aggregated data.

The panel updates within seconds, and recalculating a metric for the previous day does not require re-exporting from sources — this is the main argument for this collection mode.

Implementation stages: from source audit to handover

A dashboard is built not around charts, but around an agreed calculation scheme: until it is defined how AHT, FCR, CSAT, and NPS are calculated, the panel shows beautiful but disputable numbers.

That is why the stages proceed sequentially, and the result of each is documented — so that later it is clear why a metric changed.

  1. Data source audit: where the primary records live — telephony, conversation archive, request queue, surveys, accounting system; data arrival delays, duplicates, gaps.
  2. Metric calculation scheme: for each one — formula, aggregation window, exclusion rules (short calls, transfers, non-working hours), and the moment when the indicator is final.
  3. Integration connection: regular data ingestion, handling gaps and repeated loads, storing historical snapshots so that any period can be recalculated.
  4. Visualization and alerts: panels by role — the shift supervisor sees deviations in real time, the analyst sees dynamics and slices; threshold notifications when boundaries are exceeded.
  5. Validation on historical data: running the scheme on accumulated records and comparing it with what was already calculated manually.
  6. Pilot operation and handover: the dashboard runs in parallel with current reporting, then access, documentation, and training for the customer's team.

How we validate the calculation scheme on history

We take a period with ready-made manual reports and run the same data through the scheme. If the discrepancy exceeds the agreed tolerance, we look for the cause: time zone, shift boundaries, duplicate requests, different interpretation of a repeat contact.

The scheme is corrected until it matches — otherwise the dashboard argues with reporting instead of replacing it.

Pilot operation and reconciliation with manual reports

For the first period, both numbers are calculated in parallel and compared for each day; discrepancies are investigated down to the cause, not smoothed over.

After convergence, manual calculation is switched off, and the team keeps a recalculation procedure in case sources or rules change.

Delivery package: calculation schemes, rules, procedures

A dashboard lives longer than the task it was assembled for. That is why we hand over not only panels but the entire layer responsible for the correctness of the numbers: from data sources to shift actions when a metric drops.

Calculation rules and metric dictionary

  • Data flow map: which queues, conversation recordings, surveys, and exports from the accounting system feed the data mart, how often they are updated, and where requests are lost.
  • Formula and calculation window for each metric: what goes into AHT, how repeat requests are accounted for when calculating FCR, which channels and samples form CSAT and NPS.
  • Discrepancy dictionary: why an indicator on the panel differs from the telephony report and which source is considered the reference in disputed situations.
  • Exclusion rules — short calls, transfers between groups, test numbers — so they do not skew average values.

Access control and roles

  • Access policies: roles of shift supervisor, supervisor, and analyst, anonymized slices for a wider circle of employees.
  • Configured alerts: metric thresholds, recipients, signal delivery channel, and the procedure for clearing a false alert.
  • Response procedure: who resolves a metric drop and within what time, where the conclusion and decision are recorded.
  • Shift instructions: how to read the panel, what to do when data is missing, where to escalate an incident.

The package is updated along with processes: changes to calculation rules go through the same dictionary and are versioned, rather than getting buried in chat.

Case study: reduced response time to metric drops

A contact center with four channels — telephony, chat, email, and messengers — lived on manual reporting: exports from telephony and CRM were reconciled in spreadsheets, and indicators were analyzed at the morning stand-up based on yesterday's data. A drop was noticed after a day, when calls had already turned into repeat ones.

We built a unified data layer and a dashboard on Grafana: AHT, FCR, CSAT, and NPS are calculated for each channel separately and together, and a deviation from the norm raises an alert in the shift chat.

Initial situation and bottlenecks

The first bottleneck was source discrepancy: telephony, the ticketing system, and surveys calculated the same requests according to different rules, which made manual and automated reports diverge by 8–14%, and time went into debating the numbers rather than the cause.

The second was delay: the nightly export showed an FCR drop only by morning, and some customers managed to call back. The third was averaging: the aggregate center-wide indicator hid the fact that one line or one shift was dragging down AHT and the repeat request rate.

Results in numbers before and after

Calculation rules were moved into a unified layer, channels were brought to a common request key, and alert thresholds were set by a rolling window and for each line separately.

Metric Before After
Detection of AHT or FCR drop morning review, about a day 15–20 minutes
Discrepancy between manual and automated reports 8–14% less than 1%
Requests with a repeat call within three days 11% 6%
Channels in one metrics window 2 of 4 4 of 4

The alert reaches the supervisor indicating the line, shift, and metric that went beyond the threshold, so the investigation starts immediately, not the next day. The repeat request rate dropped by almost half, and report discrepancy stopped being a separate topic of discussion.

What to do if telephony and CRM data don't match

A discrepancy between telephony and CRM is not a failure but the norm: the systems record different events in different windows. Telephony counts conversation segments, CRM counts requests and their statuses. Until it is fixed who is the leader for each metric, reports diverge by tens of percent.

The primary source is determined by metric, not by the system as a whole. We calculate AHT and the lost call rate from telephony: it has segment-level markup of the conversation. We take CSAT and NPS from CRM, where the rating is tied to the request. For FCR, the fact of a repeat call is determined by CRM, and the repeat window by telephony.

Duplicate requests and lost events are handled separately. Matching is done by call ID, and where there is none — by number and time with a tolerance of a few minutes. Requests from one customer on one topic within the window are merged into one. Calls that lost their ID during transfer between sites are pulled from Bitrix24 records.

The discrepancy log is a working tool, not an archive. Each unmatched record gets a type (duplicate, lost event, duration difference), a winning source, and a resolution status.

The log shows the share of unmatched rows and which types are growing — usually this is the first sign of a routing failure.

Reconciliation runs on a schedule, separately from building the dashboard itself.

The deviation threshold at which a row goes into the log and raises an alert is configured for the process: in some cases it is a minute of difference in duration, in others — the mere fact of a request status mismatch.

Questions about metric calculation and data quality

Contact center metrics are calculated at the junction of several sources: telephony, chats, email, and post-contact surveys provide events of varying completeness and with different timestamps.

During task analysis, engineers most often raise four questions: how the indicator is calculated across channels, who sees conversation recordings, what happens under peak load, and where our responsibility ends. We answer each briefly.

How accurate are the metrics if channels calculate differently?

The event is brought to a unified scheme, duplicates are merged by request ID, and the aggregation window is fixed — otherwise handle time and repeat requests across chats and calls diverge.

The residual discrepancy with the telephone exchange data remains within a few percent, and we show it directly in the dashboard.

Who gets access to conversation recordings?

Listening is separated from viewing metrics: the right to a recording is granted by a separate role and limited to a division or team. Recordings do not go into exports — only request numbers, by which an authorized employee opens the recording in the interface.

What happens to data collection when the line is overloaded?

At peak, events are buffered and catch up with the stream without losses: in the dashboard this appears as data mart lag, not as a drop in the chart. If the source is unavailable, the scheme continues writing to the queue and rebuilds the data mart after connectivity returns.

What is included in support after implementation?

We hand over the calculation procedure, the data flow scheme, and instructions for the duty shift. New metrics and changes to calculation rules are covered by support, and incidents are handled within an agreed response time, not on a best-effort basis.

Let's discuss the task and come back with an estimate and plan

To come back with an estimate and stage plan, we need your current contour: which channels are already connected, where request events come from, and which managers make shift decisions.

Describe the task in free form — we will clarify the rest ourselves and immediately say where there is not enough data for an honest metric calculation.

What we clarify before the estimate:

  • Sources: telephony, messengers, email, CRM, and the request system — what provides events directly, and what will have to be calculated additionally.
  • Metric definitions: how you calculate AHT (with or without hold time), FCR (by repeat requests over what period), CSAT and NPS — from which samples and at what point they are collected.
  • Breakdowns: shift, operator, queue, request topic, channel — what the shift supervisor needs to see in the moment, and what is enough in a period report.
  • Users and access: who works with the dashboard, which roles, whether exports and alerts are needed when a metric goes beyond the threshold.
  • Infrastructure: where we host the solution, what limitations exist on history storage depth and anonymization of personal data.
  • Boundaries of changes and rollback: how we return to the previous reporting order if needed.

Based on this list, we come back with the scope of work, stage plan, and timelines for each step — without general wording.