Chart your export here
Drop a CSV here. xmetric reads every row in this browser and draws a first chart you can regroup or change the measure of. Nothing is uploaded.
No file loaded yet. You can also drop a CSV on this box.
How to export Zendesk ticket metrics to CSV
Zendesk provides two ways to export ticket-level duration metrics to CSV: a full account ticket CSV export from Admin Center, or an Explore dataset export from the Support - Tickets dataset.
- From Zendesk Admin Center (Full CSV export): Go to Admin Center > Account > Tools > Reports, locate the Full CSV export option (available on Support Professional, Enterprise, and Suite plans when enabled, as of October 2026), and download the ticket CSV.
- From Zendesk Explore: Open a table report in the Support: Tickets [default] dataset containing ticket ID, timestamps, and duration metrics, then click Export > CSV.
- Drop the downloaded
.csvfile into xmetric (the app also imports.xlsx).
| Zendesk CSV Export Column Name | Data Type | Role in Support SLA Audit |
|---|---|---|
Id (or Ticket ID) | Integer | Unique ticket identifier |
Status & Priority | String | Ticket state (New, Open, Pending, Solved, Closed) and priority (Urgent, High, Normal, Low) |
Via (or Ticket channel) | String | Submission channel (Web form, Mail, Chat, Messaging, API) |
Group & Assignee | String | Support tier (Tier 1, Billing, Escalations) and assigned agent |
Created at & Solved at | Timestamp | Ticket creation and final solve timestamps |
First reply time in minutes within business hours | Integer | Business-hours elapsed minutes until the first public agent reply |
Full resolution time in minutes | Integer | Total minutes from creation to the final solve |
Reopens & Replies | Integer | Counts how many times a solved ticket was reopened and total public replies |
Satisfaction Score | String | Customer rating (Good, Bad, Offered, Unoffered) |
Three support SLA and resolution formulas and SQL equivalents
1. SLA Breach Rate by Priority Tier
Even if a ticket was created before an official SLA policy was attached in Zendesk, you can test every historical ticket against your target response thresholds (for example: Urgent <= 60 business minutes, High <= 240 minutes, Normal <= 480 minutes).
xmetric / Tableau formula ([First Reply SLA Status]):
IF [Priority] = 'Urgent' AND [First reply time in minutes within business hours] > 60 THEN 'Breached'
ELSEIF [Priority] = 'High' AND [First reply time in minutes within business hours] > 240 THEN 'Breached'
ELSEIF [Priority] = 'Normal' AND [First reply time in minutes within business hours] > 480 THEN 'Breached'
ELSE 'Met SLA'
ENDSQL equivalent:
SELECT
"Priority" AS priority,
"Group" AS support_group,
COUNT(*) AS total_tickets,
ROUND(MEDIAN("First reply time in minutes within business hours"), 1) AS p50_first_reply_mins,
ROUND(QUANTILE_CONT("First reply time in minutes within business hours", 0.90), 1) AS p90_first_reply_mins,
ROUND(MEDIAN("Full resolution time in minutes" / 60.0), 1) AS p50_full_resolution_hours,
ROUND(
COUNT(*) FILTER (
WHERE ("Priority" = 'Urgent' AND "First reply time in minutes within business hours" > 60)
OR ("Priority" = 'High' AND "First reply time in minutes within business hours" > 240)
OR ("Priority" = 'Normal' AND "First reply time in minutes within business hours" > 480)
) * 100.0 / NULLIF(COUNT(*), 0),
1
) AS sla_breach_rate_pct
FROM zendesk_tickets
WHERE "First reply time in minutes within business hours" IS NOT NULL
GROUP BY 1, 2
ORDER BY total_tickets DESC;2. One-Touch Ticket Rate vs. Reopen Rate
Agents who rush to mark tickets Solved on the first reply to beat resolution targets often suffer high Reopens. Plotting One-Touch Rate (Replies = 1 AND Reopens = 0) next to Reopen Rate (Reopens >= 1) keeps speed incentives honest.
xmetric / Tableau formula ([One-Touch Resolution Rate]):
SUM(IF [Replies] = 1 AND [Reopens] = 0 AND [Status] IN ('Solved', 'Closed') THEN 1 ELSE 0 END)
/
NULLIF(SUM(IF [Status] IN ('Solved', 'Closed') THEN 1 ELSE 0 END), 0)3. Ticket Creation Heatmap by Hour of Day and Day of Week (FIXED LOD)
Staff your support schedule where ticket volume and SLA breaches actually spike by comparing each (Day of Week, Hour) slot against your weekly average hourly intake.
xmetric / Tableau formula:
COUNTD([Id]) / MIN({ FIXED DATEPART('weekday', [Created at]) : COUNTD([Id]) })Limits of Zendesk CSV exports
- First Resolution vs. Full Resolution: In Zendesk,
First resolution time in minutesstops the clock the first time an agent marks the ticketSolved, whereasFull resolution time in minutesincludes time after the customer replies and reopens the ticket. Always checkFull resolution time in minuteswhen customers complain about slow outcomes. - Auto-closed system tickets: Automated webhook notifications or spam tickets closed without a public agent reply have a blank
First reply time in minutes. Filter out tickets whereVia = API(or tag containsauto_close) so system noise does not distort your human support metrics.
Questions people ask
Should I use calendar hours or business hours for First Reply Time?
Zendesk exports both First reply time in minutes (calendar hours) and First reply time in minutes within business hours. Use business hours to evaluate agent performance against your published support schedule, and calendar hours to understand what customers experience over weekends.
How do I measure CSAT score alongside resolution time?
Filter to rows where Satisfaction Score IN ('Good', 'Bad') and compute SUM(IF [Satisfaction Score] = 'Good' THEN 1 ELSE 0 END) / COUNT([Id]). Group by Full resolution time buckets to see the exact hour threshold where customer satisfaction drops.
Does xmetric upload customer support tickets or PII to a server?
No. Your Zendesk CSV export is read in your browser, and customer emails and ticket fields are not uploaded unless you sign in and save a workbook online. The app also imports Excel (.xlsx) exports.
Drop your Zendesk tickets.csv export above for a first chart, then build P50/P90 response times, SLA breaches and reopen rates in the xmetric app.