Zendesk has a variety of business rules that can be used to automate record updates and notifications across products. Triggers are business rules you define that run immediately after a record, such as a ticket, is created or updated and automatically perform actions if specified conditions are met. This article explains the different types of Zendesk triggers and essential facts about them.
Types of Zendesk triggers
Triggers are managed separately by Zendesk product.
The following trigger types exist, organized by Zendesk product:
-
Ticket triggers: The first and most common type of trigger, running any time a ticket is created or updated. There are several standard ticket triggers that Zendesk provides to help you get started with your Support workflows.
Although ticket triggers are traditionally thought of as only applying to email tickets (including tickets submitted through web forms and APIs), tickets are also created for live chats, messaging conversations, and calls. Ticket triggers support a "Ticket channel is {channel}" condition that allows you to select most of the Zendesk channels. Because of this, it can be helpful to think of chat and messaging triggers as a subset of ticket triggers that just happen to be managed on a separate page in Admin Center.
See Creating ticket triggers for automatic ticket updates and notifications.
- Object triggers: Run any time a record is created or updated for the specified custom object. Requires you to activate and create at least one custom object.
-
Chat triggers: Run when a selected event occurs. When creating a chat trigger, admins must specify a single event that causes the trigger to run. There are several standard chat triggers that Zendesk provides to help you get started with your live chat workflows.
Managed on the Chat dashboard: Admin Center > Objects and rules > Business rules > Chat triggers.
-
Messaging triggers: Messaging triggers function the same way chat triggers do. When creating a messaging trigger, admins must specify a single event that causes the trigger to run. There are several standard messaging triggers that Zendesk provides to help you get started with your messaging workflows.
For some accounts, messaging triggers are managed in Admin Center > Objects and rules > Business rules > Messaging triggers. If you don't see this page, your messaging triggers are still created and managed on the Chat dashboard: Admin Center > Objects and rules > Business rules > Chat triggers.
- Sales triggers: Run when a user-specified event occurs.
Essential facts about Zendesk triggers
This section distills some essential facts about triggers as a whole. These are explained in greater detail in the documentation. See Triggers resources.
- Triggers are created from conditions and actions. Conditions set the qualifications needed for the trigger to fire, and actions represent what will be performed when those qualifications are met.
- Triggers always run, or check the conditions, immediately after the qualifying event happens. For ticket and object triggers, qualifying events are record creation and updates. For chat, messaging, and sale triggers, the qualifying event is defined by an admin when configuring a trigger.
- The one exception is ticket triggers don't run or fire on tickets after they are closed. However, ticket triggers can fire when a ticket is being set to closed, except when the ticket is automatically closed by the system after 28 days.
- Changes that automations make to tickets can cause triggers to run. Configure triggers and automations with the understading that changes made by automations can impact triggers and vice versa. See About automations and how they work
- Triggers only fire, or apply their actions, if the trigger's set conditions are met.
- Actions applied by one ticket trigger can affect how other triggers run and fire for a ticket. However, other types of triggers run simultaneously without this looping behavior.
- Triggers, like all business rules, must be smaller than 65 KB.
Anatomy of triggers
Triggers are comprised of two parts: conditions and actions. You combine these to create ‘if’ and ‘then’ statements. If the record contains a certain set of conditions, then the actions make the updates to the record and can send notifications. Chat, messaging, and sales triggers also require an admin to specify the event that must occur for the trigger to run.
Conditions
Condition statements are the "if" part of a trigger. They're structured as a condition (sometimes called category), an operator, and a value.
The available condition options vary by type of trigger. For ticket triggers, messaging triggers, and chat triggers, there are predefined lists of supported conditions. For object triggers, the supported conditions depend on the custom object's fields.
There are two types of conditions – all conditions and any conditions. In practice, all of the all conditions must be true in order for the trigger's conditions to be met, while one or more of the any conditions must be true in order for the trigger's conditions to be met. For ticket triggers and object triggers, you can use a combination of all and any conditions. However, for chat and messaging triggers, you must choose between using all and any conditions.
Actions
Action statements describe what happens when a trigger's conditions are met. These are the "then" parts of a trigger. When we say a trigger fires, we mean it's applying the actions.
Action statements are structured as an action and a value.
Similar to conditions, the available actions vary by type of trigger. A predefined list of supported actions are available for ticket triggers, messaging triggers, and chat triggers. For object triggers, there are some predefined notification actions, but the rest of the available actions depend on the custom object's fields.
Run events
When we say a trigger runs, we mean the trigger's conditions are evaluated and, if met, the specified actions occur. Ticket triggers and object triggers run automatically any time a ticket or a custom object's record, respectively, is created or updated. However, chat, messaging, and sales triggers only run when a user-specified event occurs. When creating one of these triggers, an admin must select the run event from a drop-down.
55 comments
Test Account
I'm sorry, I'm still a bit confused when triggers are evaluated.
Is it when any field is updated/changed?
or only after the ticket has been saved?
Thanks
2
Dan Ross
Hey Eric,
Triggers will be checked every time a ticket is created or updated.
When a ticket gets updated, it doesn't matter how big or small the change is, the evaluation would still occur. Updates can happen many ways, a few examples are agents submitting ticket changes to a custom field, or a user replying via an email to a ticket or an API integration changing a ticket status when something happens in another system.
You get to configure your triggers and rules to only take actions when a specific kind of update happens though. Every trigger will still be checked, but only the ones that match the conditions you define will act on the ticket.
Does that help at all?
1
Test Account
Sorry, I guess my question wasn't clear.
Let's say I have a trigger set to when the tag "go" is added.
Would the trigger fire as soon as the tag was added to the field?
Or when the agent saved the ticket?
-1
Jonathan March
@EricDeLosSantos only when the agent submits the ticket. Until then, the change has not actually been made.
2
Oli
Hey team!
Wondering if anyone can help me understand the difference between these two sets of conditions:
and
I understand that the first expression states "A ticket must have all 3 of these tags". Does the second expression state something different, or are these effectively the same?
Just want to make sure I have clarity on how ANDs work within conditions :)
2
Matt McLean
Moe,
You are correct that the first statement means that All 3 tags must be on the ticket.
The second statement means that Tag1, Tag2, OR Tag3 must be on the ticket.
All conditions in "ALL" are "AND"ed together, but some conditions can have their own "OR" property, such as [Tags] [Contains at least one of the following] and [Comment text] [Contains at least one of the following words].
All conditions in "ANY" are "OR"ed together, but it's also important to note that at least one of the "ANY" conditions must be true for the full set of both ANY/ALL conditions to return "true", and for the trigger to run.
IF ((ALL1 AND ALL2 AND ALL3 AND …) AND (ANY1 OR ANY2 OR ANY3 OR …))
Return TRUE
ELSE
Return FALSE
3
Oli
Hey Matt,
Thank you for the speedy response! Since [Tags | contains at least...] has its own OR operator, is it the case that this expression:
is the same as this one? -
Been a while since I brushed up on my symbolic logic so I really appreciate your help!
2
Matt McLean
Moe,
Those 2 look logically equivalent to me.
The nice thing about using the "contains at least one of the following" within the "ALL" block is that it allows you to have slightly more complicated logic, for example if you wanted any other "ANY" conditions to also be evaluated besides the Tags.
For example if we changed your examples and wanted to check the inbound email address,
Would be different from
The first example would only evaluate "true" when Tag1,2,or3 is present AND the received_at address is 1 or 2.
The second example would evaluate "true" when Tag1,2,or3 is present, OR the received_at address is 1 or 2, even if none of the tags are present.
6
Oli
Thanks a ton, Matt! You've been super helpful. 🎉
1
Sadie
Is there a way to email "everyone in the group but the agent when that agent updates a ticket"? We don't need our agents to be emailed about their own updates to a ticket, just to anyone else's update of a ticket in their group.
0
Dave Dyson
Hi Sadie,
Unfortunately, there's no way to to that, aside from separately adding notification actions for each agent you do want to include (which would be difficult to maintain over time).
If you'd like, please consider creating a post in our Feedback on the Ticketing System (Support) topic, using our template to format your input. Thanks!
0
Dawn La Branche
Is there a way to queue talk/chat channels together? Example: I have an agent speaking to a customer on the phone, I want to prevent a chat being presented to that agent until the call is completed (and vice versa - chatting, no call presented). I have tried the 'focus mode' and today during the 'what's new' session I was given the option to look at triggers but I can't see anywhere that I can 'trigger' agent availability when this or that condition is met. Perhaps I'm missing something but hoping to get further clarity on this. Thank you!
0
Heather Rommel
Dawn La Branche,
I'm not aware of any triggers that would do what you're looking for... You mentioned you tried Focus Mode. Did that not work for you? What went wrong there?
0
Dawn La Branche
Hi Heather, thank you for the speedy response.
When 'focus mode' was turned on, I and my team created sample calls/chats to one another and both the types of interactions were presented to the agent at the same time. We tried this with each of us (2 agents and myself as the admin) to learn both what our customers would hear/see as well as the agent workspace experience. So from our experience, nothing changed when turning 'focus mode' on.
0
Heather Rommel
Dawn La Branche,
I'm wondering if focus mode ends up turning "on" when the agent accepts one of the interactions. At that point, they shouldn't be presented with a new request from another channel. Want to give that a go?
1
Dawn La Branche
Hi Heather, we did try that whereby I kept only one agent online in both channels (chat and talk) and then had a new call and new chat happen within 30 seconds of each other. Chat hit the online agent first, then the call hit them about 30 secs after. Unfortunately, both requests still arrived at the agent workspace. We even thought that maybe the agent hadn't assigned them self the chat and therefore, the 'turn on' didn't happen but that didn't seem to change with or without assignment of the chat.
0
Allen Lai | Head of CX at Otter.ai
Can a trigger be based on a Sunshine profile or object?
0
Christopher Kennedy
Trigger conditions or actions cannot be built based on Sunshine profiles or custom objects. Can you share a general overview of your use case? I'm interested in seeing if there's another set of Zendesk tools that may help.
Best,
0
Óskar Ómarsson
Hi,
I have a case that I would like some feedback on.
For some tickets we want the first replies to be handled with a different trigger, so we can skip the "Re:" in the subject line.
My first thought was to do it like this:
But apparently this doesn't work due to how Zendesk handles this, this is what happens:
Now how can I solve this :)
1
Brandon Tidd
Hey Óskar Ómarsson,
Happy to help here, you've got a few options:
Option 1: Modify the general trigger to remove "RE:" from the subject.
Option 2: Don't remove the tag and just use the Special Trigger for the duration of that ticket.
Option 3: Create an Automation that removes the tag shortly after the Trigger runs.
> Ticket is less than solved, hours since updated > 1, tags contains special_trigger; remove tag
Let me know if one of those solves for your use case!
Brandon
1
Operator AV-1544
Good Morning
We went live with IVR few months ago and now things have gotten really bad within zendesk. Tickets are getting assigned to wrong groups.
Questions I have are these:
1. Once a condition is met, how do I tell zendesk to stop going to other triggers? Right now, it is one after the other and it just doesn't stop.
2. It should only go to the next trigger if the conditions are not met.
In most cases of CRM, software would look for a condition to meet and if it does, it will not go through others, but in Zendesk, it seems that it is FIFO and it will not work if your trigger is set at the bottom.
Any ideas on how to resolve this issue?
Thanks.
0
Brandon Tidd
Hey Operator AV-1544 -
Thanks for writing in. Triggers do run from top to bottom, with each successful Trigger running 'resetting' and 'rerunning' the entire Trigger set. The image from the article does a decent job of visualizing this process:
What I've seen others do in the case of conflicting Triggers is to use conditions such as a tag or "channel is not voice" to prevent other Triggers from firing on your Talk tickets. Hope this helps!
Brandon
1
Operator AV-1544
Hello Brandon
I have about 25 triggers and each one is set up based on the channels (for example, there is a trigger that says if channel is specific email, route to specific group).
Issue I am running into is the trigger for Voicemail which is supposed to go to 1 group only, but this trigger gets fired for tickets for other triggers. For example, social media trigger is specific and is only for tickets that are coming in from Twitter and Facebook. Unfortunately, what I have seen is that tickets from Social Media get Voicemail triggers get assigned - this happens where the Social Media trigger gets applied, but then right after that, it goes to the next trigger which is Voicemail and it applies that one so the ticket ends up in the wrong group. I want to stop that but have not figured out how to do that.
My social Media trigger is ahead of the voicemail trigger already and configured as below:
----
Must meet - Ticket is created
Any meet - Channel is Facebook, Twitter, twitter DM
Action - Assign Form X and group SocialMedia
---
Voicemail Trigger is configured as follow
Must meet - Ticket is created
Any meet - Status is new & Channel is Voicemail
Action - Assign Form X and group Z
----
0
Brandon Tidd
Ahh - that makes sense! For your Voicemail Trigger - you are using 'Any' conditions, which mean only one of the conditions has to be true. Because your social ticket is created and new, channel is voicemail is disregarded and the Trigger fires. Moving Channel is Voicemail to Must meet for your Voicemail Trigger should solve for this!
Brandon
1
Operator AV-1544
Understood. Thank you. I have made the changes on it. Will monitor it.
0
Azure Sun
Hi Zendesk, I want to add a trigger for those tickets that have no assignee, I wish to add the assignee automatically based on which agent sent a public reply.
0
Brandon Tidd
Hey Azure Sun -
The ALL Conditions you'll need here are:
Ticket is Updated
Current User Is (Agent)
Assignee is -
Comment is Public
Action
Assignee is (Current User)
*Note: This will prevent an agent from making a public reply while simultaneously assigning the unassigned ticket to another agent (but these actions can be taken sequentially).
Hope this helps!
Brandon
0
Chris Connell
Is there a planned feature to be able to trigger upon account creation?
0
Brett Bowser
AFAIK this isn't something that's planned at this time. I would encourage you to share your feedback in our Feedback - Ticketing System (Support) topic for our product managers to review.
You can also use this template when creating your post :)
I hope this helps!
0
Clarice Matt
I am trying to auto tag tickets for tracking, however when a macro is applied to the ticket, the macro tags are overriding the trigger tag. I need both tags to be added to the ticket. Is this possible?
0