Best practices: Using automations to create service level targets Follow

Important: There is an updated version of SLAs for Professional and Enterprise. See Defining and using SLA policies . This article applies to the previous version of SLAs.

Customers expect a higher level of customer service now more than ever before. The key to a high customer satisfaction rating is not only providing an answer that solves your customers question, but providing it in a timely manner.

Businesses need to be able to monitor how long it takes for tickets to pass through different stages in the support lifecycle. This article will detail best practice recommendations for setting up your service level agreements in Zendesk Support using automations.

To help explain this concept, I’d like to introduce Melody, the customer service manager for FlyLo (a fictitious airline). As the customer service manager, Melody has specify targets for her support team to meet:

  • Assign a new ticket to an agent within two hours of it being created
  • Respond to tickets that are waiting for a reply within three hours

For Melody to monitor whether her customer service team is meeting these targets, we'll create automations. Automations allow actions to be performed according to a specified timeframe (from 1 hour to 28 days). If you’re not familiar with automations, this article is a great place to start.

Tip: If you have the Zendesk Support Professional or Enterprise plan, you should enable Business Hours . This option enables you to specify time conditions in business hours rather than calendar hours. This is useful if your Support team is not operating 24/7. When business hours are specified, your service level agreements only take into account the hours that you work. To enable this option, click the Manage icon in the sidebar, then click Account and select the Localization tab.

Business Hours

You should be proactive when it comes to SLAs rather than reactive. In this scenario, being proactive involves sending email notification to the Support team one hour before the SLA is breached, so the team knows that the clock is ticking but they still have time to meet the target. Being reactive involves sending an email notification only after the SLA target is breached.

It’s always better to be one step ahead. So we’ll create two automations to ensure new tickets are assigned to an agent within two hours of it being created. The first automation will notify the Support team by email when a ticket hasn’t been assigned for an hour, but it is still within the SLA. The second automation will notify the Support team when a ticket hasn’t been assigned more than two hours and also escalate the priority of the ticket to high.

Tip: When creating business rules (triggers or automations) in Zendesk Support, be sure to give them meaningful titles. This is really helps when it comes to maintaining your business rules, so you can easily identify what each one does. Avoid naming them Trigger 1, Automation 1, and so on.

Let’s now go create an automation to make sure the FlyLo Support team assigns a new ticket to an agent within two hours of it being created.

Automation 1 - SLA: Assign ticket warning after one hour

This is the proactive automation that warns agents that a ticket hasn’t been assigned but there is still time to act before the SLA is breached. The automation below will execute when the following conditions have been met. Let me explain the reason for each condition:

  • Status Less than Pending: When a ticket first arrives in the FlyLo Zendesk, it is unassigned and has a status of New. However, during the triage process, an agent might add additional information to a ticket or update ticket fields. If this occurs, the status changes from New to Open but the ticket is still unassigned. Because we want this automation to execute for tickets that are New or Open, the status condition is less than Pending.
  • Hours since created (business) Greater than 1: We want this automation to execute after one business hour. Notice that we are using business hours rather than calendar hours. This means the SLAs are only in effect during the hours FlyLo operates.
  • Assignee is - : We want this automation to execute only on tickets that are unassigned.
  • Contains none of the following ‘sla_assign_warning’: This is essential to ensure the automation is not executed in a loop. I will explain this in further detail shortly.

Automation: Assign ticket warning after 1 hour

Now that we know why those conditions have been chosen, let’s take a look at the actions this automation will perform:

  • Email group Support: An email notification will be sent to the group Support warning them that they need to assign a particular ticket but they still have an hour before the SLA is breached.
  • Add tags ‘sla_assign_warning’: This is a crucial action to ensure the automation is not executed in a loop. This is used in conjunction with the condition “Tags Contains none of the following ‘sla_assign_warning’.” This means that when this automation executes, a tag is applied to the ticket indicating it has been executed. The automation won’t execute in a loop because one of the conditions of the automation is that a ticket doesn’t already have the ‘sla_assign_warning’ tag. This is called nullifying an automation.

Tip: There are two key differences between the actions set tags and add tags . When you use set tags, it replaces all existing tags on a ticket with the tag that you specify. When you use add tags, it will simply add another tag to a ticket while preserving all the tags that already exist on the ticket.

There are other ways to nullify an automation rather than using tags. For example, you could use the ticket status. If a condition of an automation is that a ticket has a status of New, the action performed by the automation could change the status to Open. By doing this, there is always a clear difference between when an automation has been executed and when it hasn’t.

SLA warning actions

Tip: Instead of sending email notification, you could use Zendesk targets to send notifications to external destinations. For example, if the SLA of a ticket is breached, you could notify a Twilio target that sends an SMS to the Support team manager. To configure targets, click the Manage icon in the sidebar, then click Extensions and select the Targets tab.

Automation 2 - SLA: Assign ticket within two hours

Now let's set up a reactive automation that sends email notification to alert the Support team that the SLA has been breached. It only executes when the following conditions have been met. We’ve already talked about these conditions, the only difference is that the time condition is two hours rather than one.


Additionally, this automation escalates the priority of the ticket to High to get the attention of the Support team.


Now that you understand how an SLA automation is created, let’s look at another example.

Automation 3 - SLA: Update ticket within three hours

This automation executes when a customer is waiting for a reply (since the status will be either New or Open) and the last update from the assignee was greater than three business hours ago.



Tip: To check when your automations have executed, click Events in the upper-right of a ticket. Not only is this great for checking that your automations are working, but also for seeing a full audit trail of all the updates that have been made to a ticket.



Monitoring your SLA Performance

Throughout the automation examples in this article, tags were applied when automations executed. An example of these are sla_assignee_breached and sla_update_breached. You can use these tags in views and reports to monitor your SLA performance.

Views provide a simple way to gain insight into a collection of tickets based on conditions that you specify. Whenever you’re creating views in your Zendesk, make them meaningful to your business. You aren't limited to the default Views that are provided in your Zendesk. Customize or create views to suit your own business processes.

Let’s look at a view created to monitor FlyLo’s SLA performance.


This view lists tickets that have breached the update time SLA since it requires tickets to have the ‘sla_update_breached’ tag. What’s more, if you only want managers to see this view, you could restrict it to a group of users or individuals.




Using Advanced Analytics (on Professional and Enterprise plans), you can create a report that shows the percentage of tickets that breached SLAs by filtering tickets with the SLA tags that are applied by automations.

Have more questions? Submit a request


  • 0

    Love this, however I am getting an error that says the following

    • Automation must not run multiple times per ticket. It must have a time-based condition that is only true once (Hours since created is 24) or an action that nullified a condition ("Priority Is High" and an action setting it to "Priority Is Urgent").

    I've got Ticket: Priority is Urgent (our tickets come in unassigned and Urgent)

    I also have the Hours since open Greater than 1


    Any thoughts?

Please sign in to leave a comment.

Powered by Zendesk