In Zendesk, the default First Reply Time metric measures the time between ticket creation and the first public comment reply by an agent. It is calculated by Zendesk, then stored as a ticket property.
There are a couple benefits to the default metric:
- First reply time in calendar or business hours.
- No extra steps in Insights.
There is a downside, though. As it is now, the first reply time is just a number. There is no data about the first reply as a ticket event. The differences between the default and Event metric are relevant for some specific use cases, like the following:
If there is a sharp spike in your first reply graph, it is probably due to few outliers.
- The default metric requires time-consuming guesswork to narrow down to the most likely tickets.
- The Event metric will list all tickets that received their first reply on the day of the spike, so you can review the highest results.
If your tickets are frequently reassigned between teams, and you want to give credit to the agents who made the first reply, not the current assignee.
- This is not possible with the default metric.
- The Event metric can report on first reply times by the agents who submit them.
To create a report on the first reply as an event, you need to recreate the first reply from scratch using a set of complex custom metrics. If you don’t need this type of report, I highly recommend using the prebuilt first reply time metrics instead. That will be much easier.
Skill level: Expert
Time required: 1-2 hours
Ingredient list: 3 custom metrics, 1 numeric range filter.
Building your report
First reply time by Event
This first metric will find the first reply time of any first reply event. This metric is based on the Ticket updated (minutes) and Ticket created at (minutes) facts.
These facts find event timestamps in epoch minutes (the number of minutes since a standardized starting point). Epoch timestamps don’t mean much on their own, but they are great for finding durations.
This metric finds the earliest timestamp of a public comment by an agent that occurred after a ticket was created. Then, it calculates the difference between that comment timestamp and the creation timestamp. Finally, it converts the average of those values from minutes to hours.
Here is the metric:
Please note: you can’t just copy and paste in the metric editor. The color-coded items need to be selected from the Elements picklist on the right:
- Ticket updated (minutes) and Ticket created at (minutes) are both under Facts
- Updater Role and Public Comment are both under Attributes > Ticket Updates
- Ticket Id is under Attributes > Tickets
- Agent and Admin are under Attribute Values > Ticket Updates > Updater Role
- true is under Attribute Values > Ticket Updates > Public Comment
Overall first reply by ticket
The first metric does not necessarily return the very first reply on a ticket. For example, if you slice your report by the date, the metric will show you the first reply submitted on each day in the reporting period. If you slice by the updater, it will show you the first reply time for each agent who responded to the ticket.
This next metric locks the first reply time to the ticket ID:
BY Ticket Id ALL OTHER finds the first reply time for each ticket and ignores anything else you include in your report.
In the Elements picklist, First Reply Time by Event (hrs) [Avg] will appear under Metrics.
Comparing the metrics
You have now created two metrics. The first finds the first reply time for any first reply event. The second finds the overall first reply time for each ticket. To see the difference, here is an example with the metrics side by side:
- The First Reply Time by Event metric shows the time for each agent’s first reply each day.
- The First Reply Time by Ticket metric shows the same overall first reply time on every line.
Your third metric will compare the above two metrics to find where the first reply event is the same. This metric will return a 0 for the very first reply submitted on a ticket. All other replies will be greater than 0.
In your report, you will only want to include events where the comparison metric returns a 0. You can display only these events with a numeric range filter.
Numeric range filter
- Click the Done button, then go to the Filter section
- Select Numeric Range Filter
- Under the Select Attribute list, select Ticket Id
- Click Add Another Attribute (Optional) button, then add the Date (Event) and Updater attributes
- Under Select metric, choose First Reply Event Comparison
- Set the range to is equal to 0
The filter should look like this:
This filter limits your report to update events (by date and updater) that exactly match the overall first reply time on each ticket.
You can add more filters to your report, but this filter must stay at the top of the list.
Finish your report
Now that you have created these tools, you have a lot of flexibility for the report itself. Click the What button to edit your report.
You will need these three basics:
- Under What, choose First Reply Time by Event (hrs) [Avg]
- Under How, use Updater and (Event) dates. Do not use Ticket Assignee or Ticket dates
- Under Filter, put the special Numeric Range Filter at the top of your list
Here are a couple examples to give you some ideas:
Line graph of the average first reply time for each day in a 8-week span.
Bar chart showing the agents with the highest first reply times:
Any report can be skewed by odd edge cases. These are the three situations most likely to affect this report:
- Two (or more) agents post replies in the same minute. These metrics are based on whole minutes, so they can’t pick out which agent was first. In an event like this, all agents will get equal credit for the first reply.
- The first reply occurs in the same minute that the ticket was created. The metric described here is based on whole minutes, and it is looking for the first comment after ticket creation. It will not count any reply made in the first minute.
- You can capture those replies by changing the first metric to “greater than or equal to” (>=)
- Ticket updated (minutes) >= (SELECT Ticket created at (mintues) BY Ticket Id)….
- This will include replies submitted in the same minute as ticket creation. However, it will always return a 0-minute reply time for agent-created tickets.
- An agent is demoted to an end-user. These metrics use the Updater Role attribute, which looks at a user’s current role. If an agent is later demoted to an end-user, all their comments, including comments on past tickets, will no longer count for this metric. That might lead to unusually high numbers on the former agent’s tickets, since the metric will count the next agent comment instead.