This article describes the different conditions and actions available when creating automations. For information on creating new automations, see Creating and managing automations for time-based events.
This article contains the following sections:
Building automation condition statements
As with triggers, the condition statements you create for automations contain conditions, operators, and values. These include conditions you’d expect such as priority, status, assignee and so on. Because automations are based on the hours that have elapsed since a ticket update was made, Zendesk provides the following time-based conditions:
- Hours since created
- Hours since open
- Hours since pending
- Hours since on-hold
- Hours since solved
Note: When you activate custom ticket statuses, existing automations that use an hours since [system ticket status name] condition are updated to the corresponding hours since status category [category name] condition.
- Hours since status category [category name]
- Hours since assigned (to an agent)
- Hours since update
- Hours since requester update (for updates made by the requester)
- Hours since assignee update (for updates made by the assignee)
- Hours since due date (for tickets with the type set to Task)
- Hours until due date (for tickets with the type set to Task)
- Hours since last SLA breach
- Hours until next SLA breach
- (Enterprise only) Hours since last Group SLA breach
- (Enterprise only) Hours until next Group SLA breach
- Hours since [system or custom ticket status name]
Note the following restrictions when using time-based conditions:
- Time-based conditions aren't available from Meet any of these conditions section of the automation creator (see Creating and managing automations for time-based events). Automations require a nullifying condition to ensure that they aren't running continuously.
- Due date refers to 12 PM in your account's timezone on the date specified.
- Only whole numbers can be used as the value for these conditions. For example, Hours since created = (calendar) is = 1, is valid. Decimals aren't supported. If you set the hours since variable to 1.5, it will be interpreted as 1, which means that it was rounded down to the whole number.
- Hours since [status] conditions, such as Hours since open, only fire if the ticket remains in that status or status category. For instance, if you create an automation that fires when Hours since open is 2, it will not fire if the status changes from open to pending before the two hours are up.
- The is condition for Hours since applies only for a certain timeframe. For example, if you create an automation that includes Hours since solved is 24, but the automation runs after 24 hours have passed, the automation will not fire. Consider using Greater than or Less than for these types of conditions.
- Hours since update means that any update to the ticket – including an automation firing – will update the ticket.
- Hours until > less than conditions are inclusive (they include both "less than" and "equal to"). For example, Hours until next SLA breach > less than > 2 can fire at exactly two hours before the SLA breach time. All other time-based conditions are exclusive.
- Because automations can't update or change closed tickets, there isn't an Hours since closed time-based condition.
Condition | Description |
---|---|
Ticket: Status |
Note: If you’ve activated custom ticket statuses, existing standard ticket statuses become status categories. If you have existing conditions that use Status, they’re updated to the corresponding Status category.
The standard ticket status values are: New is the initial status of a newly created ticket (not assigned to an agent). Open means that the ticket has been assigned to an agent. Pending is used to indicate that the requester has been asked for information and the ticket is therefore on hold until that information has been received. On-hold means that the support request is awaiting a resolution from a third party—someone who is not a member of your support staff and does not have an agent account in your Zendesk account. This status is optional and must be added (see Adding the On-hold ticket status). Solved indicates that the customer’s issue has been resolved. Tickets remain solved until they are closed. Closed means that the ticket has been locked and cannot be reopened or updated. When selecting a status, you can use the field operators Less Than and Greater Than to specify a range of tickets based on their status. New is the lowest value, with values increasing until you get to Closed status. For example, a condition statement that returns only New, Open, and Pending tickets looks like this: Status is less than Solved. |
Ticket: Status category |
Note: If you’ve activated custom ticket statuses, system ticket statues and any ticket statuses you create are grouped into status categories. Each status category has a default ticket status. See Managing ticket statuses.
The status category values are: New is the initial status category of a newly created ticket (not assigned to an agent). The Open status category is for grouping ticket statuses that indicate when tickets are ready to be worked on by your support team. The Pending status category is for grouping ticket statuses that are used to indicate that the support team is waiting for the requester to reply. The On-hold status category contains ticket statuses used to indicate that the support request is awaiting a resolution from a third party—someone who is not a member of your support staff and does not have an agent account in your Zendesk. This status category is optional and must be added to your Zendesk (see Adding on-hold ticket status to your Zendesk).The Solved status category contains ticket statuses that indicate that the customer’s issue has been resolved. The Closed status category contains the Closed system ticket status that indicates that the ticket has been locked and cannot be reopened or updated. When selecting a status category, you can use the field operators Less Than and Greater Than to specify a range of tickets based on their status category. New is the lowest value, with values increasing until you get to Closed status category. For example, a condition statement that returns tickets only in the New, Open, and Pending categories looks like this: Status category is less than Solved. |
Ticket: Brand
(not available on Team plans) |
Checks whether a ticket is associated with the specified brand. |
Ticket: Ticket status | If you’ve activated custom ticket statuses, you can select system ticket statuses and new ticket statuses you created as conditions. |
Ticket: Form
(Enterprise plans only) |
Your ticket forms are available as conditions. Select a specific form. |
Ticket: Type |
The ticket type values are: Question Incident is used to indicate that there is more than one occurrence of the same problem. When this occurs, one ticket is set to Problem and the other tickets that are reporting the same problem are set to Incident and linked to the problem ticket. Problem is a support issue that needs to be resolved. Task is used by the support agents to track various tasks. |
Ticket: Priority |
There are four values for priority: Low, Normal, High, and Urgent. As with status, you can use the field operators to select tickets that span different priority settings. For example, this statement returns all tickets that are not urgent: Priority is less than Urgent |
Ticket: Group |
The group values are:
Additional value for views:
|
Ticket: Assignee |
The assignee values are:
Additional value for views:
|
Ticket: Requester |
The requester values are:
Additional value for views:
|
Ticket: Organization |
The organization values are:
|
Ticket: Tags |
You use this condition to determine if tickets contain a specific tag or tags. You can include or exclude tags in the condition statement by using the operators Contains at least one of the following or Contains none of the following. More than one tag can be added. Tags must be separated with spaces. |
Ticket: Description | The description is the first comment in the ticket. It does not include the text from the subject line of the ticket.
If you are using the Contains at least one of the following or Contains none of the following operators, the results will consider words containing part of the entered search terms. For example, using "none" for this condition will return (or exclude) ticket descriptions containing "nonetheless". The description condition also pulls data contained within the HTML and the original source of a ticket. |
Ticket: Channel |
The ticket channel is where and how the ticket was created. The contents of this list will differ depending on the channels you have active, and any integrations you are using. For more information about the channels you can configure, see About Zendesk Support channels and Understanding ticket channels in Explore. |
Ticket: Integration account | This condition checks the integration account that the ticket came from, such as a specific Facebook page, X (formerly Twitter) handle, or other channel integration account, like GooglePlay. Select one of your configured integration accounts from the drop-down menu. |
Ticket: Received at |
This condition checks the email address from which the ticket was received and the email address from which the ticket was originally received. These values are often, but not always, the same. The ticket can be received from a Zendesk email domain such as sales@mondocam.zendesk.com, or from an external email domain such as support@acmejetengines.com. The external email domain must be set up as described in Forwarding incoming email to Zendesk Support or the condition won't work. This condition will work only if the support email address is a valid user address. This condition could be met by an email address in the CC field if it's associated with a user account. Email addresses that aren't associated with a user account (such as Google Groups, aliases, and distribution groups) can't satisfy this condition when in the CC field. Note that this condition doesn't check the channel from which the ticket originated and can be true for tickets that weren't received through email. For example, when using the Select an Address app you can specify a recipient email address and therefore meet this condition even though the ticket was created in the agent interface. If you're using this condition with your main Zendesk support address (the same as your subdomain), the trigger will still fire if an email is received at a different external support address you've configured. This is because all emails received are redirected to your default support address. |
Ticket: Satisfaction
(Not available on Team plans) |
This condition returns the following customer satisfaction rating values:
|
Ticket: Privacy | This condition checks to see if a ticket has public comments or not. You can select either:
|
Ticket: Custom fields | Date, drop-down, and multi-select custom fields are available as conditions.
Checkbox custom fields are available as automation conditions only when the checkbox is configured to set a tag. |
Requester: Language | The language of the person who submitted the ticket. |
Requester: Custom fields | Custom user fields are available as conditions. |
Requester: Role | Adds a condition to your triggers to create a different workflow when the requester is an end user versus an agent. |
Organization: Custom fields | Custom organization fields are available as conditions.
If the automation has a condition like the following: Organization: field > Is not > value The statement will be true only if the ticket has an organization and that organization's field doesn't match. If the ticket does not have an organization, this type of condition will not be true. |
Ticket sharing: Sent to | Checks whether a ticket was shared to another Zendesk via a specific ticket sharing agreement. |
Ticket sharing: Received from | Checks whether a ticket was shared from another Zendesk via a specific ticket sharing agreement. |
Building automation action statements
Action statements define what occurs if all the condition statements are true and the trigger fires. You can think of action statements as ‘then’ statements. If all of your conditions are true then invoke these actions to update the ticket and optionally send notifications.
Action | Description |
---|---|
Ticket: Status |
Note: If you’ve activated custom ticket statuses, existing system ticket statuses become status categories. If you have existing actions that use Status, they’re updated to the default status of the corresponding Status category.
The system ticket status values can be set to the following: New is the initial status of a newly created ticket (not assigned to an agent). Open means that the ticket has been assigned to an agent. Pending is used to indicate that the requester has been asked for information and the ticket is therefore on hold until that information has been received. On-hold means that the support request is awaiting a resolution from a third party—someone who is not a member of your support staff and does not have an agent account in your Zendesk. Solved indicates that the customer’s issue has been resolved. The ticket is solved even if required ticket fields are still blank. See Required fields and automations. Tickets remain solved until they are closed. When tickets are closed is based on business rules you define for this step in the workflow, using automations. Closed means that the ticket has been locked and cannot be reopened or updated. |
Ticket: Status category |
Note: If you’ve activated custom ticket statuses, system ticket statues and any ticket statuses you create are grouped into status categories. Each status category has a default ticket status. See Managing ticket statuses.
When you use a status category as an action, the ticket status is set to the category's default ticket status. The status category values are: New is the initial status category of a newly created ticket (not assigned to an agent). The Open status category is for grouping ticket statuses that indicate when tickets are ready to be worked on by your support team. The Pending status category is for grouping ticket statuses that are used to indicate that the support team is waiting for the requester to reply. The On-hold status category contains ticket statuses used to indicate that the support request is awaiting a resolution from a third party—someone who is not a member of your support staff and does not have an agent account in your Zendesk. This status category is optional and must be added to your Zendesk (see Adding on-hold ticket status to your Zendesk).The Solved status category contains ticket statuses that indicate that the customer’s issue has been resolved. The Closed status category contains the Closed system ticket status that indicates that the ticket has been locked and cannot be reopened or updated. |
Ticket: Ticket status | If you’ve activated custom ticket statuses, you can specify actions that set the ticket status to a new or system status. |
Ticket: Form
(Enterprise plans only) |
Your ticket forms are available as actions. Select a specific form. |
Ticket: Priority | The priority can be set to Low, Normal, High or Urgent |
Ticket: Type |
The type can be set to the following: Question Incident indicates that there is more than one occurrence of the same problem. When this occurs, one ticket is set to Problem and the other tickets that are reporting the same problem are set to Incident and linked to the problem ticket. Problem is a support issue that needs to be resolved. Task is used by the support agents to track various tasks. |
Ticket: Group |
You can set groups to any of the following:
Additional value for macros:
|
Ticket: Assignee |
You can set the assignee to any of the following:
Additional value for triggers and macros:
|
Ticket: Satisfaction | You can set this action to: offered to requester. This indicates that the survey request has been sent to the ticket requester. |
Ticket: Set tags | The tags you want to insert into the ticket. The set tag action deletes all tags currently applied to the ticket, or associated with any ticket fields, and replaces them. Tags must be separated with spaces. |
Ticket: Add tags | The tags you want to add to the existing list of tags (if any). Tags must be separated with spaces. |
Ticket: Remove tags | The tags that you want removed from the existing list of tags contained in the ticket (if any). Tags must be separated with spaces. |
Ticket: Add cc | Add an agent on the ticket update. This action is available when you activate CCs on tickets.. |
Ticket: Add follower | Add an agent or the current user as a follower on the ticket update. This action is available when you activate CCs and Followers on tickets. When you activate this feature, the Ticket: Add follower action replaces the Ticket: Add CC action. |
Ticket: Custom fields | Checkbox, drop-down, and date custom fields are available as conditions. |
Ticket: Share ticket with
(Zendesk Suite Growth and above or Support Professional and above only) |
Share the ticket with the specified account. Requires that a ticket sharing agreement be in place.
See Sharing tickets with other Support accounts and Using business rules to share tickets. |
Notifications: Email user | You can set the email user to any of the following:
Additional values for triggers and automations:
The email notification is sent only if the update includes a public comment. If the update has a private comment or no comment, the trigger or automation can still fire other actions, but it won't send the notification. There's a known limitation for using the Email user + (requester and CCs) action and the Ticket + is + Updated conditions in triggers. When used together, Support suppresses emails to a user if the ticket update is from that same user. This is expected behavior to eliminate redundant emails. For more information about suppression, see Understanding suppression of CCs email notifications. Adding the email user action allows you to enter the email subject and body text. Body text can be formatted using HTML or placeholders. See Using placeholders for more information on formatting with placeholders. If you select a different notification destination when editing a trigger or automation, the body text will reset. |
Notifications: Email group |
You can set email group to any of the following:
If you select a different notification destination when editing a trigger, the body text will reset. |
Notifications: Notify active webhook | Set the active webhook to notify. For more information about using webhooks, see Creating a webhook.
If you select a different notification destination when editing a trigger, the body text will reset. |
Notifications: Notify target | Set the external email target to notify. For more information about using email targets, see Notifying external email targets.
If you select a different notification destination when editing a trigger, the body text will reset. |
Notifications: Tweet requester | Respond to the X (formerly Twitter) requester with a tweet. An @mention, and shortened ticket URL are added to the message so make sure to stay within the maximum Tweet length. |
Requester: Language | Set the requester's language to one of your supported languages. |
Requester: Custom fields | Custom user fields are available as actions. |
Organization: Custom fields | Custom organization fields are available as actions. |
45 comments
Amber Barnes
Will automations ever be brought up to par with triggers? The automation build page is archaic. Not being able to search for the conditions/actions is so difficult, especially when you have a lot of custom ticket fields like my company. I just spent 10 minutes building a trigger that should have took me 1 because of having to comb through the drop-down list.
3
Gavin
I'm building an automation that requires Ticket: Assignee Is (—).
Per the above documentation, this should work. However even copy/pasting "(—)" into the dropdown returns "Sorry, no results found." How can I work around this?
0
Luke Wargo
The same thing happened on my account @... - it looks like once you have a high amount of agents you would want to click the "### other results. Try refining your search." option at the bottom of the drop-down menu, which fills the field with "-"
Not exactly intuitive design, but hopefully it works. Waiting for a test ticket to run its course as a confirmation
0
Gavin
@... Yep, that worked. The option I had to click on said, "99 other results. Try refining your search." Simply clicking that populated the field with -
This is such a bizarre UI decision, I'm sure it's an oversight.
Thanks for the tip!
0
Mark Leci
for anyone who's wondering, the 'hours since open/pending' automations are based on continuous hours. Changing the status to open if it was pending resets the counter. We use this internally to bring tickets back into open status for proactive work after x days in pending, which would never work if the counter was looking at total open/pending hours.
0
Patrick
The guide for how Ticket Channels are defined across zendesk links to a hidden/removed page.
This part;
Please fix this.
0
Dave Dyson
Thanks for the heads-up, Patrick! I'll alert our documentation team.
1
Amy Malka
Hi Patrick! Thanks for letting us know about that. I've made a slight update to this part of the article.
0
Mattia Tosti
Hi! I see it's possible to write automation rules based on whether a date parameter "is within the previous" number of days. Is it also possible to write the opposite somehow? (i.e. "is NOT within the previous" number of days).
0
Sabra
Hey @...! Currently, there is not an option for "is NOT within the previous" for date conditions.
I encourage you to create a new post in the Support Product Feedback topic in our community to engage with other users who have similar needs and discuss possible workarounds. Conversations with a high level of engagement ultimately get flagged for product managers to review when they go through roadmap planning.
Specific examples, details about impact, and how you currently handle things are helpful for our product teams to understand the full scope of the need when working on solutions.
0
Suhan Li
We need to have all unsigned tickets auto-assigned to an agent at a certain time, e.g., at 16:30 at the day. I searched event created a trigger or automation by applying today() function but don't find a way.
Any suggestion?
0
DJ Buenavista Jr.
Thank you for reaching out to Zendesk Support.
In regards to your concern, automation runs every hour on all your tickets that are not closed. If you're looking to auto-assign all of your open tickets to a specific agent, you can have a similar setup for automation:
You cannot set a specific time since automation only runs every hour. There's an option as well for a condition, Ticket: Hours since created. It would depend on your workflow. You can check all the available conditions once you go to the automation.
You can also check our article, Automations resources and recipes for all the resources available for the creation of automation.
Thank you and have a wonderful day ahead!
Kind regards,
0
Mateusz Stasinski
Is there a condition we can use to run automations only on tickets with reply from an agent or without such reply?
0
Neil
Automations does not have any condition that will match your case, but you can check the Trigger conditions to see if it will fit your workflow. There are Trigger conditions that can check for ticket comments as you would see here :
https://support.zendesk.com/hc/en-us/articles/4408893545882-Trigger-conditions-and-actions-reference
Depending on your use-case, you can utilize both Triggers and Automations but that would depend on how you're going to set it up.
0
Juli Hackenberger
How do you use an automation to check or uncheck a box on the user. I have an automation set up to look at the check box and if the box is checked meets a time requirement of time since requester was updated and the ticket has a specific tag to uncheck the box. However, it is not unchecking the box.
0
Holly
Does your custom user checkbox include a tag? If your checkbox does not add a tag when checked, it will not work in automations.
Thanks!
0
Juli Hackenberger
It does add a tag.
0
Travis Sewilo
I've gone ahead and created a support ticket for us to look at this directly with you to make sure we can better assist. (:
0
David Templeton
Is anyone else having problems with the "Hours since assignee update" condition? It's been part of an automation that I've used for 6 years, but seems to have stopped working recently.
The condition was set to (business) Greater than 16. I pressed the "Preview match for the conditions above", and nothing appeared. I changed it to 1 hour, then 0 hours, and still nothing. Once I removed it completely, tickets that hadn't been touched in OVER A MONTH appeared in the preview.
1
Dainne Kiara Lucena-Laxamana
Hi David Templeton!
I went ahead & created a ticket for you since this might need further troubleshooting. Please keep an eye out for our advocate's email!
0
Ola Timpson
Is there any information on how conditions work with date custom fields? For example, if I set up a condition for "is in next 1 day" what time does it consider the condition met.
0
Gabriel Manlapig
Is within the previous and Is within the next take an integer number of days, which on the back end is translated into multiples of 24 hours.
For example, Custom date field | Is within the next | 3 means the condition will evaluate as true when the timestamp of the custom date field is within the next 72 hours.
The timestamps for date fields are a more complicated issue since they’re not exposed anywhere in the UI or the API. At this time, automations use UTC timestamps for custom date field conditions. They don't use the account's local time zone. That can lead to automations appearing to fire several hours early or late, depending on how far the account is from UTC.
I hope this information helps. Thank you!
0
Otilia Calinescu
Hello,
I need to add a condition in my automation using a custom date field that 'is emtpy' . How can I do this please?
Thanks
0
Gab Guinto
A workaround is to use triggers to tag tickets (or maybe use a checkbox) if the date field has a value. Triggers have conditions to check if a date field is 'Present' or 'Not present', so you can utilize triggers to automate the process of tagging your tickets. You can then reference the tags in the condition statements of your automation.
0
Kat
Is there a way to create automation or a trigger that will deal with the following scenario?
A custom date field is added to the ticket form. If a date is set in that field, I want the automation to reopen the ticket on that date.
I couldn't find a way around it just yet
0
Viktor Hristovski
Gabriel Manlapig, is it possible to use "is within next" and put 0, so the automation is started on the same day as the date of the condition? Thank you
0
Otilia Calinescu
Hello,
Adding 0 in an automation doesn't work, you need to put at least 1. I have created an automation with the condition "date is within the next 1 day" and it fires a day before the date you set in the field. I was able to reopen tickets in this way and my team is using it for almost a year with no complains. They know the need to add +1 to the real date they want to reopen the ticket at.
Regards,
0
Viktor Hristovski
For me it worked oposite, i put "ticket field date" is within previous 365, and it activates on the same date as the date set in the field.
0
Chris Hall
Are "Hours since..." cumulative or do they only apply for the current instance a ticket is in a particular status. E.g., Does "Hours since pending" calculate the ENTIRE amount of time a ticket spends in pending across its life? Or only the most recent status change?
I'm using two automations where the second is contingent upon actions executed by the first:
Should Automation 2 be set to "hours since pending > 20" (time spent in pending after latest status change) or "hours since pending > 60" (total time spent in pending for life of ticket)?
Thanks!
0
Oli
Does the Hours Since Assignee Update condition refer to:
If the former, then will the automation run if a ticket goes from being assigned to a group to being assigned to an agent within that group? IE Assignee: Tier 1 → Assignee: Tier 1/Greg Smith?
1