110,041
Desk tickets in the dataset the dashboard reads
How a digital marketing agency's first-response-time dashboard was wrong from the first formula, and how we rebuilt it from raw Zoho Desk threads and proved it row by row.
A digital marketing agency runs client support through Zoho Desk and wanted one view of first response time per agent against a 24-hour target, across four SLA policies. The Zoho Desk connector exports no first-response timestamp, three lookalike columns were traps, and duplicate tickets inflated volume. We rebuilt the logic from the raw reply threads and proved it against the source.
Desk tickets
110,041
in the dashboard dataset
Row mismatches
0
105,704 rows · 7 columns
Reply threads captured
99.84%
12,591 of 12,611
SLA policies
4
24h first-response target
Go-ahead to validated
17 days
assembled dashboard
Median First Response by Agent
24h targetMedian FRT — Weekly Trend
hoursDashed line: internal 12h goal
By SLA Policy
4 policiesUnanswered Tickets
the trapBefore
No reply = "0 hrs", counted inside SLA
After
Built from raw reply threads; no reply flagged
Row-Level Validation
105,704 rowsDuplicate Tickets
channel fix7
personal mailboxes acting as inbound channels
110,041
Desk tickets in the dataset the dashboard reads
0
row-level mismatches across 7 value columns (105,704 rows)
99.84%
of agent reply threads captured in the export (12,591 of 12,611)
17 days
client go-ahead to a validated, assembled dashboard
The brief sounded simple: show first response time by agent, by week, by SLA. The data said otherwise. Every metric on the existing columns looked plausible, which is what made it dangerous.
We built the first-response logic ourselves, inside the client's existing Zoho workspace, and did not trust the number until it matched the raw threads, ticket by ticket.
| Check | Result |
|---|---|
| Live query table vs temp-table recomputation | 0 mismatches across 105,704 rows and 7 value columns |
| Agent reply threads in the export vs Desk's own counters | 12,591 of 12,611 (99.84%), no history cliff across 2024 to 2026 |
| Agreement with Desk's own first-response metric | 86% (3,128 of 3,650 responded tickets); every divergence traced to stale Desk data |
| Re-check against raw Desk data 5 weeks later | Total 110,041, responded 3,781, within SLA 2,216, awaiting 113: exact match |
| First response sent by someone other than the assignee | 12.6% of answered tickets (459 of 3,650), surfaced as a definition decision for the client |
| Awaiting-response backlog between the July and August checks | 209 to 113 (data drift, not a bug) |
The dashboard was assembled and validated: headline counts on the assembled dashboard matched a recomputation from the raw Desk tables exactly, and the top five agents' ticket counts and averages matched too.
This was not a marketing problem. It was a trust problem: a metric built on a default field that quietly means something else. It appears in any team that reports SLAs from a helpdesk, CRM or ticketing export.
Discuss a similar Marketing Agency project
Lets Viz runs a paid discovery audit ($500–1,000, credited toward the project) to scope your requirements, data model, and architecture before writing a line of code.
From Lets Viz
Experience superior data analysis with our custom dashboards. Specialising in all tools and technologies, we turn data into visually compelling, actionable insights.
NDA-safe · No obligation · Clear next steps