While this page mainly shows screenshots within Trigger configuration, these information do apply for all supported configurations.
You will learn what condition options are available by type and how to use them. If you need configuration samples, please refer to the documentation page of the function (e.g. Triggers) you want to use.
Please note that ticket conditions do not support the following:
- regular expressions
- case sensitive string conditions
- Basic conditions do not support the same attribute to be selected more than once
Note
The has changed condition only is available for ticket attributes and does not affect:
- ticket articles attributes
- organization attributes
- user attribtues
- group attributes
Ticket conditions allow you to granulary define a set of attributes and ticket situations to then do certain operations based on these conditions.
When using the basic mode of conditions, Zammad will match all conditions as AND clause. This means that all configured conditions have to fit, if one condition does not, the whole condition set won't fit.
If you want to use AND / OR conditions to cover even more complex conditions, see :doc:`expert-mode`.
Zammad offers many different :doc:`object </system/objects>` (attribute) types which offer various options for matching your conditions. This doesn't just apply to default objects Zammad comes with but also those that you add yourself.
Some options or fields are not exactly attributes but functions Zammad offers for your convenience.
- Action (Scope: Ticket, Ticket article)
Hint
This field is only available for Trigger conditions!
How was the ticket in question touched?Available matching: is or is notOffered values (multiple choice):
- createdThe ticket has been created
- updatedThe ticket has been updated with an article
- merged intoThe source ticket of a ticket merge
- received mergeThe destination ticket of a ticket merge
XHow was the ticket article in question touched?Available matching: is or is notAvailable value:
- createdThe ticket article has been created
X- Customer (Scope: Ticket)
Hint
This field only affects the ticket customer which is set during ticket creation and can be changed manually by an agent.
What ticket customer is affected (or not)?Available matching: is, is not or has changedOffered values (multiple choice):
- current userThis is the user that caused the trigger run. If your agent or customer updates the ticket, this will be the user. If this was not a human interaction, Zammad will use the system user. This may have unexpected results!
- specific userSelect one or more customers
- not set (not defined)
X- Organization (Scope: Ticket, Customer)
Hint
This field only affects the ticket organization which is set during ticket creation and depends on the ticket customers organization.
What ticket organization is affected (or not)?Available matching: is, is not or has changedOffered values (multiple choice):
- current user organizationThis is the users organization that caused the trigger run. If your agent or customer updates the ticket, this will be the organization. If this was not a human interaction, Zammad will use no organization. This may have unexpected results!
- specific organizationSelect one or more organizations
- not set (not defined)
X- Group (Scope: Ticket)
- What ticket group is affected (or not)?Available matching: is, is not or has changedOffers all configured and active groups in Zammad.X
- Owner (Scope: Ticket)
- What ticket owner is affected (or not)?Available matching: is, is not or has changed
Offered values (multiple choice):
- current userThis is the user that caused the trigger run. If your agent or customer updates the ticket, this will be the user. If this was not a human interaction, Zammad will use the system user. This may have unexpected results!
- specific userSelect one or more owners
- not set (not defined)
X - State (Scope: Ticket)
Warning
Zammad behaves inconsistent in between certain ticket condition dialogues - if you can see ticket states only in parts of the admin menu and not in the front-end, your state is not visible.
:docs:`The system documentation </admin/console/working-on-tickets.html#make-new-states-available-to-ui>` has you covered.
What ticket state is affected (or not)?Available matching: is, is not or has changedOffers all configured and visible ticket states in Zammad.X- Tags (Scope: Ticket)
Hint
Additional tags can be present in the ticket without issues.
What ticket tags are affected (or not)?Available matching: contains all, contains one, contains all not or contains one notOffered values (multiple choice):
- contains allMatches if all given tags are present on the ticket.
- contains oneMatches if one specific given tags is present on the ticket.
- contains all notMatches if all given tags are not present on the ticket.
- contains one notMatches if one specific given tags is not present on the ticket.
X- Subscribe (Scope: Ticket)
Hint
This affects ticket subscriptions / mentions by and for agents.
What ticket subscribers (:user-docs:`notifications </advanced/suggested-workflows.html#mentions-the-subscribe-button>`) are affected (or not)?Available matching: is or is notOffered values (multiple choice):
- current userThis is the user that caused the trigger run. Only can affect agents.
- specific userAffects one or more specific users that have subscribed to the ticket.
- not set (not defined)
X- Time Accounting (Scope: Ticket article)
- Is time accounted for an article?Available matching: is set or not setAllows you to check if time is accounted for an article.X
- Type (Scope: Ticket article)
Tip
If you're unsure what article type you're looking for...
Click on a message to see detailed information about it.
What's the articles type (or not)?Available matching: is or is notOffers all available article types of your instance (e.g. email).X- Visibility (Scope: Ticket article)
- What's the articles visibility (or not)?Available matching: is or is notAllows you to check if the article in question is either internal or public.X
- Sender (Scope: Ticket article)
- What user role does the sender of the article have (or not)?Available matching: is or is notDetermine the sender of the message: System, Agent or Customer.X
- Calendar (Scope: Execution time)
Hint
This field is only available for Trigger and Scheduler conditions!
Was the ticket touched within the calendar defined business time (or not)?Available matching: is in working time or is not in working timeAllows selection of a pre-defined :doc:`calendars </manage/calendars>` to check whether the defined business hours are met. This allows time based events like out of business hours responses.X
Hint
The configured "Type" of input fields has no impact on the available options.
Check if any field of type text contains a specific string (or not)?
Available operators for matching:
- contains
- Matches if text contains a specific string.
- contains not
- Matches if text does not contain a specific string.
- is any of
- Matches if text is equal to any of given tokens.
- is none of
- Matches if text is not equal to all of given tokens.
- starts with one of
- Matches if text starts with one of given tokens.
- ends with one of
- Matches if text ends with one of given tokens.
- matches regex
- Evaluates if text matches provided regular expression.
- does not match regex
- Evaluates if text does not match provided regular expression.
Hint
Regex support
matches regex and does not match regex are supported only in Triggers, Time Accounting selector, Postmaster Filters, Automatic ticket assignment and Core Workflow.
Hint
What about my "old" style regex:...
filters?
If you update your Zammad from 6.0 or prior and you have already conditions
with contains or contains not including a regex filter
(i.e. regex:^(foo|bar)$
), Zammad tries to migrate them to the new
matches regex and does not match regex operators.
Hint
Differences in input fields
Please note, that the input field for tokens doesn't support the comma as separator (as in the input field for tags). If you use the comma in the token input field, the comma is included in you token.
Example:
Offered values and options:
before (absolute)If the date field's value is before the configured date, the condition will be met. after (absolute)If the date field's value is after the configured date, the condition will be met. before (relative)Matches the date field's value if the value is before the current date minus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). after (relative)Matches the date field's value if the value is after the current date plus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). within last (relative)Matches the date field's value if the value is in between the current date and the current date minus the selected time period. within next (relative)Matches the date field's value if the value is in between the current date and the current date plus the selected time period. till (relative)Matches the date field's value if the value is before the current date plus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). from (relative)Matches the date field's value if the value is after the current date minus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). has changedThe field has been changed during a ticket update.
To help you understand the time conditions of Zammad better, below diagram might also be helpful to you.
Hint
An example for this field type are all default fields handling updated at, created at and closed at timings.
- has reached
- has reached warning
Offered values and options:
before (absolute)If the date & time field's value is before the configured date and time, the condition will be met. after (absolute)If the date & time field's value is after the configured date and time, the condition will be met. before (relative)Matches the date & time field's value if the value is before the current date and time minus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). after (relative)Matches the date & time field's value if the value is after the current date and time plus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). within last (relative)Matches the date & time field's value if the value is in between the current time and the current time minus the selected time period. within next (relative)Matches the date & time field's value if the value is in between the current time and the current time plus the selected time period. till (relative)Matches the date & time field's value if the value is before the current date and time plus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). from (relative)Matches the date & time field's value if the value is after the current date and time minus the selected time period.You can choose from Minute(s), Hour(s), Day(s), Week(s), Month(s) and Year(s). has changedThe field has been changed during a ticket update. has reachedThis option is only available for Ticket's Pending time and Escalation time in Trigger conditions!The time set in this field was reached has reached warningThis option is only available for Ticket's Escalation time in Trigger conditions!The time set in this field will be reached in less than 15 minutes
To help you understand the time conditions of Zammad better, below diagram might also be helpful to you. Below is a carbon copy of the date variant and applies exactly the same just you having hours and minutes on top to use.
Offered values (multiple choice):
- contains allMatches if all given field values are selected.
- contains oneMatches if one specific given field value is selected.
- contains all notMatches if all given field values are not selected.
- contains one notMatches if one specific given field value is not selected.
Note
This attribute type technically allows several layers of values. You cannot match a parent layer to match all of it's childs.
Note
This attribute type technically allows several layers of values. You cannot match a parent layer to match all of it's childs.
Offered values (multiple choice):
- contains allMatches if all given field values are selected.
- contains oneMatches if one specific given field value is selected.
- contains all notMatches if all given field values are not selected.
- contains one notMatches if one specific given field value is not selected.