Automations are similar to triggers because both define conditions and actions that modify ticket properties and optionally send email notifications to customers and agents. Where they differ is that automations execute when a time event occurs after a ticket property was set or updated, rather than immediately after a ticket is created or updated.
All automations run once every hour on all non-closed tickets. They execute, or fire, on all tickets where conditions are met.
For information about creating and managing automations, see Creating and managing automations for time-based events. For a list of default automations, The Support default automations.
Essential facts for automations
- Automations are time-based; they take action when a time-event occurs, not immediately after a ticket is created or updated
- Automations run every hour, but not necessarily top-of-the-hour; they will start at some point during the hour.
- Automations do not run or fire on closed tickets.
- An automation must contain a condition that is true only once or an action that nullifies at least one of the conditions.
- Automations, like all business rules, must be smaller than 65kb.
- All active automations must be unique. They can have some overlapping conditions, but they can't be identical.
- You can have a maximum of 500 active automations at a time.
About automations
Automations help you manage your workflow and, potentially, improve performance and customer satisfaction by alerting you to tickets that remain unresolved and need to be escalated (for example).
- Notifying agents when an assigned ticket remains unresolved for x number of hours
- Notifying agent groups when a new ticket remains unassigned for x number of hours
- Notifying the assigned agent after x number of hours when a pending ticket has been updated by the requester
- Closing tickets x number of days after they have been set to solved
- Finding "abandoned" tickets that haven't been updated for a certain number of days
- Sending an SMS text message when an urgent ticket has been unattended for more than 48 hours (using a target with an automation; see Using targets in automations and triggers)
Zendesk provides an automation that demonstrates one of these common uses:
This automation closes tickets 96 hours after they have been solved (96 hours is a support best practice for the minimum amount of time a ticket should remain in the solved state before it is closed). When the automation runs, any tickets that meet these criteria are closed. The close action looks like this:
Once a ticket is closed, it can't be modified anymore and automations no longer affect it.
This example also illustrates an important rule of automations: an automation must contain an action that cancels a condition. The ‘Status equals Solved’ condition is canceled by the ‘Status equals Closed’ action. If there were no canceling action, the automation would continue to fire in an endless loop because the status would remain solved (not closed) and continue to meet the condition criteria.
Ensuring your automation only runs once
Automations check every hour to see if their conditions are met. So an automation must include one of the following:
- an action that nullifies at least one of the conditions, or
- a condition than can be true only once
If there is no nullifying action or true-only-once condition, the unmodified conditions will continue to be met and the automation will continue to fire in an endless loop.
An example of a condition that is commonly nullified is a "ticket priority" condition. A ticket priority condition is usually paired with a "hours since created" condition. For example, if the ticket priority is Normal (Ticket: Priority > Is > Normal), the condition is nullified by including an action that changes the priority to High (Ticket: Priority > High) or some other priority.
An example of a condition that can only be true once is the "hours since open is" condition. This condition doesn't require a nullifying action. For example, if the hours since the ticket is open is 4 hours (Ticket: Hours since created > Is > 4), then the condition will only be true on one check. On the next check, the hours since open will be 5, and the condition will be false.
However, it’s important to be thoughtful when using an “hours since...is” condition. Because of the slight variation of run times for automations in any given hour, it's unlikely but possible for an “is” condition to never evaluate to true. This situation is more likely for larger accounts, or accounts with many automations. For details, see Using the “Hours since” condition in automations.
An easy way to cancel a condition is to add a tag. The automation would check for a tag and, if not present, the automation would add the tag to the ticket and perform any actions (such as, sending a notification). If the tag is present on the ticket, the automation will not perform the action again.
Understanding when automations run
Your automations run every hour, but that does not necessarily mean top-of-the-hour. Your automations will start running at some point during the hour, maybe five minutes after the hour or thirty-eight minutes after the hour, for example.
The entire time it takes your automations to run and execute depends on how many automations and tickets there are to process. Automations run again at some point during the subsequent hour.
Each automation can act on a maximum of 1,000 tickets each hour. If there are more than 1,000 tickets where conditions are met for an automation, 1,000 tickets will be processed in that hour, and the remaining tickets will be processed during the next hour, if conditions are still met, or the hour after that, until all tickets are checked. On jobs that are very large it may take many hours to work through all of the tickets that meet the conditions of that automation.
An extended automation cycle increases the chances for agents to be making routine ticket updates at the same time as automations are running. To prevent ticket update collisions, Zendesk automations double-check the state of the ticket at the time of the update, instead of just acting based on the state of the ticket when the automation cycle started.
To prevent unnecessary activity, automations do not run on accounts that haven't had anyone sign in within the last 14 days.
Understanding when automations fire
Automations run in order every hour and fire on tickets where conditions are met. Each automation fires—that is, takes action on a ticket—when the automation runs and conditions are met. That means the ticket is being updated each time an automation fires during the cycle, so not all automations see the ticket in the same state. The actions of one automation can affect another automation in the same hour.
- Automation #1: If status is Pending greater than 48 hours, notify Assignee.
- Automation #2: If status is Pending greater than 48 hours, change priority to High.
- Automation #3: If priority is High, notify Escalation group.
Automations run and fire (if conditions are met) in order. So, if you have a ticket that has been pending for 48 hours, when automations run in the 49th hour, Automation #1 runs and fires, then #2 runs and fires. After Automation #2 fires, the ticket is updated to High priority. This means that when Automation #3 runs, the condition is met, so Automation #3 will fire.
- Let's consider an example where the action will happen when the automation runs. Suppose a ticket update at 10:15am satisfies the conditions for an automation to send an email notification. If your automations run at 11:10, then the notification will not be sent until 55 minutes after the conditions are met. If your automations, however, run at 10:20, then the notification will be sent 5 minutes after the conditions are met.
- Let's look at example with a time-based "Hours since" condition. Time-based conditions have to be satisfied within a window of time or after a minimum amount of time has passed. The first time an automation runs after an event occurs counts as "zero" hours since that event happened (because it's less than one whole hour). Suppose you have an automation that performs an action two hours after a ticket is solved and a ticket is solved at 9:15am. Here's what will happen:
- If your automations run at 10:10am, the ticket has been solved for only 55 minutes and the automation will not fire.
- Automations run again at 11:10am, the ticket has been solved 1 hour and 55 minutes, which the automation counts as one hour (because it is less than two hours).
- Automations run again at 12:10pm, the ticket has been solved 2 hours and 55 minutes, which the automation counts as two hours. This means the condition is met and the automation will fire and update the ticket.
38 Comments
Robert Houston,
That is so strange!! Can you pull like 3 tickets in pending status that stage 1 should have fired off on and look at all the tags on them? I am wondering if this ran before on those tickets and you might need to reset the workflow by clearing the related tags.
Hey Robert Houston -
I'm going to have the Zendesk Support team look at this more closely for you. I feel like we're really close, but they will be better equipped to handle your request. Keep us posted!
Brandon
Heather Rommel Brandon Tidd (729)
Like magic some have actually run. I have no idea why except that I tried changing hours since pending away from business and to calendar. This shouldn't be the reason its fixed because we need the system to respond via business days and technically if business hours is 72 that would actually equate to 9 days. However, the problem with regular calendar hours is, or should be obvious, weekends and holidays will conflict with the pending automation or require an additional step to ensure those events are accounted for. Something that I can only assumed is also assumed for when using business hours instead of calendar hours since we can actually put in a business hours schedule.
I hope this helps you figure out how to best help me. I wouldn't also mind a better tag system. If I look at my tags its a cloud. Its not user friendly or really all that helpful. I want to be able to manage them but that is going to be my next area that I deep dive. Thanks again and I hope we can resolve my issue soon.
We want to add an automation that triggers an email to be sent to a specific inbox when a new ticket is received. I need that email to not include any ticket details except the placeholders I select (ticket ID and ticket link). When I created this automation, the email I received included ticket details like the requester, Ccs, and the ticket attachments. Is it possible to not include this information?
Hey Amanda Graham -
I think what you'll want here instead is to utilize External Targets.
This should allow for a more customized notification experience.
Hope this helps!
Brandon
That's exactly what I was looking for. Thank you, Brandon Tidd (729)!
Brandon Tidd (729) excellent feedback so far. My question relates to schedules so I can use business hours in my automations.
Let's say I have 2+ schedules for my company, how do I know which schedule is being used by the automation to calculate business hours?
If you are on an Enterprise plan and have multiple schedules, triggers, SLA policies, views, and automations based on business hours will use the schedule applied to the ticket. When you create multiple schedules, the first schedule that you create, and the one that appears first in your list of schedules, is always your default schedule. Your default schedule is used for all tickets, unless you set up a trigger to apply a specific schedule to specific tickets.
I hope that helps clarify!
Please sign in to leave a comment.