xmetric / Use cases

Audit Zendesk Ticket SLA Breaches and Resolution Time from CSV

You can audit Zendesk ticket SLA breaches, first reply time, and full resolution percentiles without Zendesk Explore Enterprise by exporting your Zendesk tickets to CSV and opening the file in xmetric. Compute P50 and P90 business-hours response times, reopen rates and agent workload with calculated fields in the free xmetric app (/app/); the file stays in your browser.

Chart your own CSV

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.

  1. 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.
  2. From Zendesk Explore: Open a table report in the Support: Tickets [default] dataset containing ticket ID, timestamps, and duration metrics, then click Export > CSV.
  3. Drop the downloaded .csv file into xmetric (the app also imports .xlsx).
Zendesk CSV Export Column NameData TypeRole in Support SLA Audit
Id (or Ticket ID)IntegerUnique ticket identifier
Status & PriorityStringTicket state (New, Open, Pending, Solved, Closed) and priority (Urgent, High, Normal, Low)
Via (or Ticket channel)StringSubmission channel (Web form, Mail, Chat, Messaging, API)
Group & AssigneeStringSupport tier (Tier 1, Billing, Escalations) and assigned agent
Created at & Solved atTimestampTicket creation and final solve timestamps
First reply time in minutes within business hoursIntegerBusiness-hours elapsed minutes until the first public agent reply
Full resolution time in minutesIntegerTotal minutes from creation to the final solve
Reopens & RepliesIntegerCounts how many times a solved ticket was reopened and total public replies
Satisfaction ScoreStringCustomer 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'
END

SQL 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

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.