Zendesk tickets to dashboard
Ticket volume, response time and the tail nobody looks at.
Export tickets from Zendesk and drop the CSV here. The dashboard leads with the median first reply time rather than the mean, because a handful of tickets that sat over a weekend will drag any average into fiction. Satisfaction Score is treated as the category it is, not averaged, and the ninetieth percentile is shown next to the median so the tail is visible.
Prefer the full explorer? Open the app, or start from the generic dashboard builder.
Averages are the wrong statistic for a support queue
Response time distributions are not bell curves. Most tickets get answered quickly and a small number sit for days because they arrived at 6pm on a Friday or needed engineering. Take the mean of that and you get a figure higher than almost every individual ticket, which nobody in the team recognizes and nobody can act on. Take the median and you describe the typical experience. Look at the ninetieth percentile and you describe the experience of the people most likely to complain. This page shows all three, with the median first.
The second issue is what the time columns actually measure. Zendesk lets you build a report on calendar hours or on business hours, and the choice is made when the report is defined rather than recorded in the file. A four hour first reply under business hours could be eighteen hours of wall clock time if it spanned an overnight. Neither is wrong, but comparing an old export against a new one where somebody changed that setting produces a graph that looks like a dramatic improvement and is not.
How to export from Zendesk
- Open Explore in Zendesk Explore is the reporting product, reached from the app launcher at the top left. Ticket exports from the Views screen are far more limited, so start in Explore.
- Build or open a ticket query Use the Support dataset and add the attributes you want as columns. Ticket ID, Created, Solved, Status, Priority, Channel, Group and Assignee are the minimum useful set.
- Decide on calendar or business hours The time metrics come in both flavors. Pick one deliberately and write it down, because the export gives no clue which you chose and a future comparison depends on it.
- Export the results as CSV The export menu offers CSV and Excel. Zendesk caps interactive exports at a row limit, so a busy quarter may need a scheduled export or a narrower filter.
- Drop the file here Channel, Group, Priority and Status become filter chips, and the response time percentiles appear rather than a single average.
Tickets can be reopened after being solved, which moves Solved At. An export taken today and one taken next week will not agree perfectly on the same period, and that is expected rather than a bug.
Try with sample Zendesk data (the same columns, 106 rows, no upload needed).
What the dashboard shows
Every panel below is built from a column that is actually in the export, named the way Zendesk names it.
- Ticket volume over time. Created At bucketed by day or week, with Channel stacked so a spike in one channel is immediately attributable.
- First reply time, median and p90. Two numbers, because they answer different questions and the gap between them is the story.
- Resolution time distribution. A histogram rather than a single figure, which is where the long tail becomes impossible to ignore.
- Satisfaction as counts. Good, Bad and Offered, with the response rate shown, because a 95 percent good score on a 4 percent response rate is not a 95 percent good score.
- Load by group and assignee. Ticket count and median resolution per person, which together show whether someone is slow or simply holding the hard queue.
- Tag frequency. The Tags column ranked, which is the closest thing a support export has to a list of what your product keeps getting wrong.
Ticket ID,Created At,Solved At,Subject,Status,Priority,Channel,Group,Assignee,Requester,Organization,Replies,First Reply Time (min),Full Resolution Time (min),Satisfaction Score,Tags
Six ways a Zendesk export misleads
- Business hours against calendar hours. Set when the report was built and invisible in the file. An export that mixes the two conventions across periods produces trends that are entirely artificial.
- Satisfaction Score is a category. Good, Bad, Offered and Unoffered. Mapping them to numbers and averaging produces a score that depends entirely on your arbitrary mapping.
- Solved At can move. A reopened ticket gets a new solved timestamp. Historical exports of the same week will drift, which matters if you are tracking a target.
- Unsolved tickets have blank time columns. Correct behaviour, but it means resolution time is computed over a biased subset: the ones that were solvable.
- The interactive export has a row cap. A busy quarter can exceed it silently, giving you a truncated file that looks complete. Check the row count against the ticket count in Explore.
- Satisfaction response rate is low. Typically a small minority of tickets get rated, and unhappy people rate more often than happy ones. The sample is not random.
Report medians, show the tail, count satisfaction rather than averaging it, and always know which clock your time columns are on. Those four habits are the difference between a support dashboard and a comfort blanket.
Frequently asked questions
Should I use mean or median response time?
Median, with the ninetieth percentile beside it. Support response times are heavily skewed by a small number of tickets that sat over a weekend or waited on engineering, and a mean is pulled up by those to a value nobody in the team recognizes. The median describes the typical ticket. The p90 describes the experience of the customers most likely to escalate.
Why do my time metrics look better than they feel?
Probably because the report was built on business hours. A ticket that arrives Friday evening and is answered Monday morning shows as a short first reply under business hours and as sixty hours under calendar hours. Both are legitimate measures of different things. The customer experienced the calendar version, which is worth remembering before celebrating a target.
Can I average the satisfaction score?
Not meaningfully. Zendesk records satisfaction as Good, Bad, Offered or Unoffered, which is categorical. Mapping Good to five and Bad to one and averaging gives you a number that depends entirely on the mapping you invented. Report the counts and the percentage rated Good out of those rated, and report the response rate alongside it so the sample size is visible.
Why is my resolution time missing for some tickets?
Because those tickets are not solved yet, so there is no Solved At to subtract from. That is correct, but it introduces a bias: your resolution time statistics are computed only over tickets that got resolved, which excludes the hardest ones still sitting open. Look at the age of the open queue as a separate panel to catch what the resolved-only view hides.
How do I know if my export was truncated?
Compare the row count reported by this page against the ticket count Explore showed before you exported. Interactive exports are capped, and Zendesk does not always make the truncation loud. If they disagree, either narrow the filter and export in slices, or set up a scheduled export which has a much higher ceiling, then merge the pieces.
Is customer data in this file protected?
It stays with you. The export carries requester email addresses, organization names and ticket subjects, which frequently include personal details customers typed in themselves. The file is parsed by JavaScript in your browser tab, nothing is transmitted, and there is no account. Closing the tab removes it from memory, which is the entire retention policy.
Related tools
See the tail, not just the average
106 tickets across a quarter, four channels, a realistic long tail on resolution time and a satisfaction response rate that is nowhere near everyone.
Open the sample Zendesk dashboard