A Service Level Agreement, or SLA, is an agreed upon measure of the response and resolution times that your support team delivers to your customers. Providing support based on service levels ensures that you're delivering measured and predictable service. It also provides greater visibility when problems arise.
You can define SLA service targets in Zendesk Support so that you and your agents can monitor your service level performance and meet your service level goals. Zendesk Support highlights tickets that fail to meet service level targets so that you can promptly identify and address problems.
- A set of conditions that a ticket must satisfy in order for the SLA policy to be applied
- The target time for each desired metric and priority value
- One or more metrics that you choose to measure
- Whether targets will be measured in business or calendar hours by priority value
For more information about viewing SLAs as an agent, see Viewing and understanding SLA policies.
To learn about setting up multiple versions of policies, see Versioning your SLA policies.
Fine tuning: Learn how you can make the most out of your SLAs with Sam Chandler's Fine tuning: succeeding with SLAs--why, when, and how!
Understanding how SLA policies are applied to tickets
When a ticket is created or updated, it runs through all of your normal triggers you’ve already set up in your Zendesk Support instance. After the triggers have been applied, we run that ticket through the SLA system.
Starting at the top of your list of policies and moving down, we compare the conditions on that policy to the ticket. The first policy we find whose conditions are satisfied by the ticket is applied to the ticket. For details about how policies are ordered, see Ordering SLA policies. To review which policies have been applied to a ticket and in what order, see Viewing which SLA policies have been applied to a ticket
In most cases when a ticket is updated, the ticket will match the exact same policy that’s already applied and nothing will change. If your ticket has changed in priority but you haven’t modified your SLA policies since that ticket was last updated, the targets on the ticket will be updated to reflect the priority.
There are, of course, some exceptions. If you’ve created a new, more restrictive policy since that ticket was last updated, it’s possible that the ticket will receive that new policy that didn’t exist before. Or, alternatively, you may have updated the targets for the policy that’s already been applied. In both of those cases, the ticket will receive the new information.
When you merge an older ticket with an SLA into a new ticket, the older ticket’s SLA state is frozen, whether achieved or missed. The newer ticket proceeds with its own SLA. The merge action appears as an internal update on the newer ticket, which doesn’t meet or change any SLAs
Tickets set to Solved immediately fulfill all active SLA targets.
Understanding what metrics you can measure
You can define SLA service targets for five different metrics: first reply time, next reply time, periodic update time, requester wait time, and agent work time. The first three metrics measure reply time, while the second two measure resolution time.
Reply time metrics
The following metrics measure reply time:
- First reply time is the time between ticket creation and the first public comment from an agent, displayed in minutes. Some qualifications include:
Requester Ticket comment Result The requester is an end user. The ticket is created with a public end-user comment. The SLA first reply time target starts at their comment and runs through the next public agent comment. This is the most common workflow and typical behavior. The ticket is created with a public agent comment. The SLA first reply time target is immediately satisfied. It does not activate or record an achievement. The ticket is created with a private comment. See Creating a private ticket for an end-user. The SLA first reply time target starts at the first public comment by an end-user after the ticket is made public. This means the first reply can start after a public agent comment. It still runs until the next public agent comment after the end-user. The requester is a light agent. The ticket is created with a public agent comment. The SLA first reply time target is immediately satisfied. It does not activate or record an achievement. The ticket is created with a private comment by the agent requester. The SLA first reply time target starts at ticket creation. It still must be fulfilled with a public agent comment after that. The ticket is created with a private comment by a different agent: The SLA first reply time target does not activate. - Next reply time is the time between the oldest unanswered customer comment and the next public comment from an agent, displayed in minutes.
- Periodic update time is the time between each public comment from agents, displayed in minutes. The SLA is still active on Pending. If a user reopens a ticket, the periodic update time will not start until an agent makes another comment.
- Pausable update is the time between each public comment from agents when the tickets is in the New, Open, and On-hold statuses, pausing when the ticket is put into Pending.
The First reply time and Next reply time metrics typically use an end-user comment as starting point, and a public agent response as an end point. The following graphic shows how these metrics fit in with the lifecycle of a ticket.
The Periodic update time uses the agent's public comment as a starting point and resets after each published comment. For example if you have a periodic update time of 30 minutes, your agent will need to add a new public comment every 30 minutes.
The Pausable update metric uses the agent's public comment on a new or existing ticket as a starting point, only if that ticket is not in the pending status. If a ticket is contains a public comment and is marked as pending in the same event, the metric will not be applied to the ticket until the ticket is first submitted in an open status and set back to pending. Once a comment is present, the metric pauses in the pending status and resumes in a non-pending status with either no comment or a private comment from an agent.
Resolution time metrics
The following metrics measure resolution time:
- Requester wait time is the combined total time spent in the New, Open, and On-hold statuses. The SLA will pause on Pending.
- Agent work time is the combined total time spent in the New and Open statuses. The SLA will pause on Pending and On-hold.
Note that you should only choose one resolution time metric.
Resolution metrics always use the status of the ticket for starting, pausing, and stopping, as opposed to comments. The following graphic shows how the resolution time metrics fit in with the lifecycle of a ticket.
Reopening tickets
- First Reply Time, Next Reply Time: If a ticket is reopened with an end user comment and all conditions are met, the relevant Reply Time metric is restarted.
- Periodic Update, Pausable Update: If a ticket is reopened with an end user comment, nothing will happen. If a ticket is reopened with an agent comment, the relevant Update metric is restarted.
- Agent Work Time, Requester Wait Time: There metrics activate only with the appropriate ticket status, including if the ticket is reopened.
Setting up SLA policies
To set up SLA policies, you combine the metrics described above with conditions and targets.
Conditions for SLA policies are similar to the conditions you use to set up triggers. Like conditions for triggers, they have both All and Any conditions, and the conditions can be based on ticket fields, user fields, or organization fields. However, there are fewer options than in triggers. For example, you can't create a condition based on the ticket’s status or priority, because those pieces of information are already built into the SLA policy model. For more information about using custom ticket fields, see Using custom ticket fields in business rules and views.
A target is the goal within which a particular time-based metric should fall. If, for example, you want all urgent tickets in a given policy to have a first reply time that is less than or equal to 15 minutes, you would set a target of 15 minutes. You can define individual targets for each combination of metric and priority per policy. You can also set hours of operation, whether in Business or Calendar hours, for each priority and policy.
To set up an SLA policy
- Click the Admin icon (
) in the sidebar, then select Business Rules > Service Level Agreements.
- Click Add policy.
- Enter a name in the Policy Name field.
- Optionally, enter a description in the Description field.
- In the Conditions section, select the conditions for this policy. Start typing the condition to autocomplete or select an option from the drop-down menu.
- In the Targets section, enter a time target for each metric and ticket priority. You can enter hours, minutes, or both. Remember that you should use only one of the two resolution time metrics.
- For each priority, select either Calendar hours or Business hours for Hours of operation.
- Click Save.
Community tip! Mat Cropper shows how to set up SLAs so the correct policy is always applied in Running triggers, automations, and reporting based on ticket SLAs. And Mark Powell shows how to set up SLAs for time zones in Using SLAs with different time zones, contracts, and business hours.
- Click the Admin icon (
) in the sidebar, then select Business Rules > Service Level Agreements.
- Click on the SLA policy you want to edit.
- Edit the policy as necessary and click Save.
Ordering SLA policies
It's possible to create logically overlapping policies, but at any given time a single ticket can only have one policy applied to it. When you have multiple policies that match a ticket, we’ll use the order of the policies to break any ties. For details about how the order of policies affects tickets, see Understanding how SLA policies are applied to tickets. To review which policies have been applied to a ticket and in what order, see Viewing which SLA policies have been applied to a ticket
To make your policies most effective, you should roughly order your policies with the most restrictive policies at the top, and your least restrictive policies at the bottom.
To order your SLA policies
- Click the Admin icon (
) in the sidebar, then selecting Business Rules > Service Level Agreements.
- Hover your mouse over the left of the SLA policy name you want to reorder until the grabber is highlighted.
- Click and drag the policy to the new position.
Adding SLAs to views
Similar to ticket statuses, SLA targets have different statuses on a ticket. Agents can see these statuses in tickets or in views in the Next SLA breach column. The Next SLA breach column displays the calendar time left before the next target on any given ticket will be breached.
For details about the different SLA statuses, see Understanding SLA target statuses. For details about understanding how target status appears in this column, see Seeing SLA statuses in views.
Currently, there's no way to send notifications to agents based on SLA breaches.
To add SLAs to a view
- Click the Views icon (
) in the sidebar, then select a view.
- Click the View options menu in the upper right.
- Click Edit.
- Scroll down to the Formatting options section.
- Under Columns not included in table, click Next SLA breach.
- Drag Next SLA breach into the Columns included in table column.
- To make sure the tickets whose targets are most breached or are closest to breaching will get attention first, select Order by > Next SLA breach in Ascending order.
- Click Submit.
Using SLA breaches in automations
You can set up automations based on SLA breach status using two conditions, Hours since last SLA breach and Hours until next SLA breach. For information about creating automations, see Streamlining workflows with time-based events and automations.
Currently, you can't create triggers based on SLA breach status.
Reporting on SLAs
You can now view how well you are meeting your SLA policies with the SLA reporting dashboard. This dashboard gives you relevant information for each SLA metric you measure. The reports enable you to pinpoint areas where you might need to increase efficiency or staffing based on weekly and hourly information.
You can either build new custom SLA reports (see the Insights object reference and Insights metrics reference), or use the pre-built reporting dashboard (see SLA reporting dashboard overview).
It is important to note that the pre-built reports are based on a per instance basis rather than a per ticket basis. Most of your SLA metrics (First Reply Time, Requester Wait Time, Agent Work Time) are measured once per ticket. However, the metrics Next Reply Time and Periodic Update Time are used to measure the amount of time between comments. So, these metric could potentially be calculated multiple times.
For example, suppose you answered your customers' comments within the target time once, but breached the target three times after. Each of those achievements and breaches are calculated as separate instances.
Now how would this work if you are trying to calculate your Next Reply Time achieved percentage?
- Ticket A: 1 breach, 3 achievements (4 instances)
- Ticket B: 1 breach, 5 achievements (6 instances)
- Ticket C: 0 breaches, 3 achievements (3 instances)
- Ticket D: 3 breaches, 1 achievement (4 instances)
- Ticket E: 0 breaches, 3 achievements (3 instances)
Overall, there are 20 instances of Next Reply Time measured across five tickets. Your % Achieved is calculated by taking the number of achieved instances over the total number of instances. In this case your achieved percentage would be 75%.
% Achievement=15 achieved instances/20 measured instances=75%
The SLA metric instance attribute is also important when you build your own custom reports. If you want to view individual instances, you need to slice your report by this attribute. You can find this attribute underneath How>Ticket SLAs.
Deleting SLA policies
You can delete an SLA policy if it is no longer needed.
To delete an SLA policy
- Click the Admin icon (
) in the sidebar, then select Business Rules > Service Level Agreements.
- Locate the SLA policy you want to delete.
- Click the options menu (
) beside the SLA policy title.
- Select Delete, then confirm the selection.
190 Comments
Hey James, How would you set-up an SLA on a voicemail message that came in via Zendesk Talk? It appears that it's not well possible since the metrics only measure against tickets that have a public comment, which in the case of private comment and voicemail is not possible.
Hey Kay -
I checked in with our SLA expert and he said that it's true that voicemails don't play well with SLAs. He suggested using a Requester Wait Time. Are you familiar with that?
I have question about quote: "Currently, you can't create triggers based on SLA breach status."
Are there any plans to make this available in triggers (e.g when SLA breach status changes to whatever value)?
The automations seem pretty limited as far as SLA's are concerned with only number of hours and not being targets specific (e.g first reply breach vs next reply breach etc).
Hey George!
We use automations with SLAs because they're time-based rather than update-based; Triggers only fire when a ticket has been submitted but automations run every hour or so. Would you be able to give more information about why you'd want to use Triggers with your SLAs?
@Jessie:
The automations in regards to SLAs are quite limited for the following reasons:
*Run once per hour which is not good enough if our SLA targets are like 15 or 30 mins
*Conditions are based on number of hours before or since SLA breach. But it is just about any breach, you can't specify specific targets in those conditions.
In general we have certain SLA targets for first reply time that are in minutes not hours and also for our use case it would be nice to have Triggers to do something with the tickets (move them to different queue, email management list, etc) once a specific SLA target is breached (say first reply time for example).
Hi George! Sorry for the delayed response.
I can definitely see where the current automation functionality isn't helpful for your situation. That said, I don't think that Triggers would be the solution in any case. Since they only fire when a ticket is updated, it wouldn't be an effective way to get timely reminders sent for an upcoming SLA breach.
Now, since SLAs are based on ticket priority, you could conceivably set up triggers to send an email notification when a ticket is received or updated with a certain status, informing recipients that "An urgent ticket has be received and requires an update within 10 minutes" or something to that effect. It's not a perfect solution, but it might help.
I may be in a bit of a unique spot, but I really need an SLA in the Reply Time Metrics group which pauses on both Pending and On Hold statuses. We expect agents to update tickets periodically, but only if they are in New or Open statuses.
We're currently using the Pausable Update SLA with a trigger that adds a tag so the SLA doesn't apply when a ticket is On Hold. The problem is that this doesn't pause the SLA, so when the ticket opens up again, it may be breached or close to it, not giving the agent enough time to respond before a breach.
Is there a possibility of getting something like this?
Jordan,
Could you use Next Reply Time and ensure that agents always have the "last word" in the thread? The timer should then only keep running when the customer adds a comment (i.e. moves it from Pending OR On-hold into Open)
@Jordan, I have the exact same requirement.
What I'm going to do (after consulting with Zendesk's support people) is to apply a specific tag to on-hold tickets when they go into that state and remove it as they go out, so they are tagged as long as they're in that status.
This would be done using a couple of triggers.
Then modify the SLA policies to ignore tickets with that tag.
I haven't had the chance to implement it yet but it should do the trick.
Good luck!
@James,
Thanks for the suggestion! This won't work for me because I need my agents to update our Open tickets every two days, regardless of if there is a customer update.
@Yoav,
Thanks! The workflow you describe is exactly what I've set up and tested. This seemed like it would work, but the issue we've discovered is that when the SLA is reapplied to the ticket (after it's removed from hold and the tag is removed), the SLA timer is still running as though the ticket was never on hold.
I suspect this is because the timer doesn't pause on hold status and is still based on the last agent update. In our case, a ticket might be on hold for a few days while a higher priority ticket is being completed, so if we require an agent update every two business days, it will automatically breach the SLA when removed from hold.
Any other ideas out there?
@Jordan
Hmm maybe I'm not understanding correctly. My suggestion would ensure that a ticket is only Open (and therefore subject to your two day periodic update) if there is a customer update. Your agents would always set to Pending or On-Hold.
Perhaps it's just me, but I never want a ticket to remain Open after I've made the last comment; it should always be Pending, On-Hold, or Solved if I've made the last comment.
Hi let me give the question that, if we reply email ZD submit as hold or pending, it will be increase the amount of SLA or not? anyone can answer my question will be pleased. thanks
@Jordan - that's a bummer ;(
Sounds like your explanation is correct, I'll give a test on my end as well and update if I manage to get it working though I'm not hopeful now ;(
I don't have any other solution in mind, lets see if the Zendesk people have any other suggestion.
@Eko - I'm not sure exactly what you, so it would help if you elaborated on your question.
In general, if you reply via email to a ticket you can't control its status really. If the requester replies, it will Open the ticket, but if you reply via email, it won't go to Pending.
I am using the given SLA Reporting in Reporting Insights and in the SLA Reporting header the SLA Policy List of Values does not match the list of SLA Policies I currently have in place. How do I modify the list of values so it is accurate?
Kristine
Hey Kristine!
If there are SLA policies missing from your Insights report, the most likely scenario is that there haven't been any tickets using that policy so there's no data to send over to Insights. Once there's data available, it should get sent over.
If this scenario doesn't seem to fit what your experiencing, let me know and we'll see what else we can figure out!
Hi
The SLA's function doesn't seem to work if the requester is an agent.
Is there a way around this so that all tickets regardless of the role of the requester can use the SLA feature.
Hi Amy -
What SLA are you trying to apply? SLAs should work regardless of role, with the exception of First Reply Time. If you're not using FRT and you're having trouble getting it to apply, then we should do some troubleshooting.
Hi
I was having a go at testing this in sandbox before implementing in live and it didn't seem to apply the SLA on tickets where agents are the requester, when it did on non-agent requested tickets.
I was using, first reply time.
Why is this the exception?
Hi Amy,
The First Reply metric does not apply on tickets created by agents because the description, being a public comment, is considered to be the first reply.
You can find more info on this in the article "Troubleshooting common issues with SLAs."
We're on the Team plan and I'd like to simply create an automation to send out an email if none of our agents have replied to new tickets after 22 hours. Is this possible? If so, please let me know how.
Nate
Create an automation with conditions:
ALL
Perform these actions:
Because the ticket status is NEW, there is no agent assigned to the ticket. So you have to select a specific group of agents to notify or nominate a specific agent to notify.
There are more details on automations here.
Apologies if this is covered elsewhere, but I'm trying to find a way to report on the amount of time a ticket spends in New and Open status. The "Agent Work Time" SLA looks to be the correct measure, but this does not appear to be an option in GoodData. There is a metric for "Requester Wait Time" which indicates it measures the amount of time a ticket is New or Open status, but the report seems to be returning the total resolution time instead. Any thoughts?
Hey Max!
SLAs wouldn't be the best way to approach this measurement. I would recommend building a report in GoodData based on our guide Insights recipe: Reporting on duration of a text field. The Measuring Average Time in Solved section will be most applicable to what you're trying to review.
Hi Experienced,
I'm new in SLAs metric, could you share about technical how to define the SLA for the service?
Thanks & Best Regards
So I read through this section and saw the following:
"The first reply time metric is not applied to tickets created by agents, unless the ticket is created through a private comment"
I was a little confused here. If the ticket is a private ticket, why would FRT be applied?
@James
You said SLA's would not be a good place to approach the measurement of the amount of time a ticket is in the New and Open status.
If that is the case then why has Zendesk created the metric just for that? As Max pointed out the Agent Work Time seems to fit the bill exactly. As as this Zendesk article points out it is the "combined total of time spent in the New and Open status" for a ticket.
Can you elaborate further why you do not think SLA's are a good place for this approach?
Thank you
Jerry
Hey Jerry!
"Can you elaborate further why you do not think SLA's are a good place for this approach?"
Definitely! An SLA will only show you whether the SLA was met or breached While this can definitely be useful, there is more nuance to how an individual request is handled by an Agent. If you are looking for actionable data points for your team to improve upon, I believe it is much more beneficial to have actual time values.
As an example, let's say your entire team has met all Agent Work Time SLAs. That's definitely great as it shows that you are meeting the requirements laid out by the business for how much time they can spend on tickets if you wish to handle your volume or contractual obligations to customers. If you were to look at the actual time spent on those tickets however, you may see that some of your Agents are spending more time on those customer tickets, possibly nearing the point of breaching the SLA, but as a result are providing customers with more in depth answers and solutions and with a higher rate of customer satisfaction than another Agent who is resolving their tickets in a much shorter timeframe but without the same level of quality as the rest of the team.
My recommendation is to use SLAs as a means to ensure your teams are meeting the requirements set out by the business as a whole. If you are looking at individual Agent performance however, there is far more that can be gleaned from actual time spent values, and this is especially true when including other metrics that gauge Agent performance within those same reports.
Thank you for the quick response James.
Let me follow up then. So what exactly is the Agent Work Time metric actually keeping track of?
Max said he wanted to see how long a ticket stayed in the New and Open status. Sounds like he is not looking at it from an agent level but from a ticket level.
Is this metric not measured per ticket? Meaning can I not drill down to see what the AWT is for a specific ticket number? And is that value not given in a time measurement?
I am asking because I am also evaluating currently some new features and capabilities we currently do not have, and this was of interest to me.
Hey Jerry!
The SLA Metrics will generally be keeping track of whether the SLA Target was met or breached rather than tracking a time value. Service Level Agreement (SLA) metrics
With that said, as outlined by some of the linked metrics including time durations, there may be cases where you could technically use these to show the time value you are looking for. Due to the way that data connects and the complexities of reporting functions, my suggestions to use metrics, facts, or objects that are not part of the SLA metric set will generally ensure that you are only seeing the data that you're expecting. Additionally, most of these non-SLA metrics will "play nicely" with similar ticket performance / agent performance metrics that you may not see the same results with if you build your report using the SLA metrics instead.
To address the original question once more, with newly added perspective from discussing this with my peers; Yes, you could use the SLA Metric Value metric to report on some of these time durations. As a general rule of thumb however, based on the types of reporting that we see customers looking for, we would recommend using the other methods of obtaining that data which I have tried to outline here.
James again thank you for your feedback.
I would imagine that Zendesk put in a time tracking SLA because it is common to create internal SLA for ticket lifecycle. And it is a very useful SLA to measure and better understand the performance of your team.
Perhaps you have thoughts on my first question, the article from Zendesk stated the following.
"The first reply time metric is not applied to tickets created by agents, unless the ticket is created through a private comment"
I was a little confused here. If the ticket is a private ticket, why would FRT be applied?
Please sign in to leave a comment.