Automation Conditions
Conditions determine which work items a rule applies to. When a trigger fires, the automation engine evaluates the rule's conditions against the affected work item. If all conditions pass, the rule's actions execute. If any condition fails (in AND mode) or all conditions fail (in OR mode), the rule is skipped for that work item.
Condition structure
Every condition consists of three parts:
- Field -- The work item property to evaluate.
- Operator -- How to compare the field's value.
- Value -- The target value(s) to compare against.
For example: priority (field) equals (operator) Urgent (value).
Building conditions in the UI
The condition builder is part of the rule editor. To add a condition:
- Open the rule editor (via Settings > Automations > Create Rule or edit an existing rule).
- In the Conditions section, click Add Condition.
- Select a field from the first dropdown.
- Select an operator from the second dropdown (available operators depend on the field type).
- Enter or select a value in the third input (text input, dropdown, or multi-select depending on the field and operator).
- Click Add to save the condition.
Repeat to add multiple conditions. Use the AND/OR toggle to control how multiple conditions combine.
Field types
SetGet supports 7 field types in automation conditions.
priority
Evaluates the work item's priority level.
| Property | Detail |
|---|---|
| Field key | priority |
| Data type | Enum |
| Possible values | none, low, medium, high, urgent |
| Compatible operators | equals, not_equals, in, not_in |
Example: Only match work items with High or Urgent priority.
- Field:
priority - Operator:
in - Value:
high, urgent
state_group
Evaluates the group that the work item's current state belongs to. State groups categorize individual states into broader lifecycle phases.
| Property | Detail |
|---|---|
| Field key | state_group |
| Data type | Enum |
| Possible values | backlog, unstarted, started, completed, cancelled |
| Compatible operators | equals, not_equals, in, not_in |
Example: Match work items in active states only.
- Field:
state_group - Operator:
in - Value:
unstarted, started
TIP
Use state_group instead of matching individual state names when your rule should apply to any state within a lifecycle phase. This makes the rule resilient to state name changes.
assignee_ids
Evaluates the list of users assigned to the work item.
| Property | Detail |
|---|---|
| Field key | assignee_ids |
| Data type | Array of user IDs |
| Value input | Multi-select user picker |
| Compatible operators | contains, is_empty, is_not_empty, in, not_in |
Example: Match unassigned work items.
- Field:
assignee_ids - Operator:
is_empty - Value: (none required)
Example: Match work items assigned to a specific team member.
- Field:
assignee_ids - Operator:
contains - Value: Select the user from the picker
label_ids
Evaluates the list of labels attached to the work item.
| Property | Detail |
|---|---|
| Field key | label_ids |
| Data type | Array of label IDs |
| Value input | Multi-select label picker |
| Compatible operators | contains, is_empty, is_not_empty, in, not_in |
Example: Match work items tagged with "Bug".
- Field:
label_ids - Operator:
contains - Value: Select "Bug" from the label picker
Example: Match work items that have no labels.
- Field:
label_ids - Operator:
is_empty - Value: (none required)
created_by
Evaluates the user who created the work item.
| Property | Detail |
|---|---|
| Field key | created_by |
| Data type | User ID |
| Value input | User picker |
| Compatible operators | equals, not_equals, in, not_in |
Example: Match work items created by external stakeholders.
- Field:
created_by - Operator:
in - Value: Select the external stakeholder users
updated_at_age_days
Evaluates the number of days since the work item was last updated. This is a computed field calculated at evaluation time.
| Property | Detail |
|---|---|
| Field key | updated_at_age_days |
| Data type | Integer (days) |
| Value input | Number input |
| Compatible operators | equals, not_equals, greater_than, less_than |
Example: Match work items not updated in over 30 days.
- Field:
updated_at_age_days - Operator:
greater_than - Value:
30
TIP
Combine updated_at_age_days with a scheduled trigger to build periodic cleanup rules that archive stale items.
created_at_age_days
Evaluates the number of days since the work item was created. This is a computed field calculated at evaluation time.
| Property | Detail |
|---|---|
| Field key | created_at_age_days |
| Data type | Integer (days) |
| Value input | Number input |
| Compatible operators | equals, not_equals, greater_than, less_than |
Example: Match work items created more than 90 days ago.
- Field:
created_at_age_days - Operator:
greater_than - Value:
90
Operators
SetGet provides 9 operators for condition evaluation.
| Operator | Description | Applicable to |
|---|---|---|
equals | Field value exactly matches the target value | All field types |
not_equals | Field value does not match the target value | All field types |
in | Field value is one of the target values | Enum fields, user IDs, label IDs |
not_in | Field value is not any of the target values | Enum fields, user IDs, label IDs |
contains | Array field includes the target value | assignee_ids, label_ids |
is_empty | Array field has no elements or field is null | assignee_ids, label_ids |
is_not_empty | Array field has at least one element | assignee_ids, label_ids |
greater_than | Numeric value exceeds the target | updated_at_age_days, created_at_age_days |
less_than | Numeric value is below the target | updated_at_age_days, created_at_age_days |
Operator compatibility matrix
| Field | equals | not_equals | in | not_in | contains | is_empty | is_not_empty | greater_than | less_than |
|---|---|---|---|---|---|---|---|---|---|
priority | Yes | Yes | Yes | Yes | -- | -- | -- | -- | -- |
state_group | Yes | Yes | Yes | Yes | -- | -- | -- | -- | -- |
assignee_ids | -- | -- | Yes | Yes | Yes | Yes | Yes | -- | -- |
label_ids | -- | -- | Yes | Yes | Yes | Yes | Yes | -- | -- |
created_by | Yes | Yes | Yes | Yes | -- | -- | -- | -- | -- |
updated_at_age_days | Yes | Yes | -- | -- | -- | -- | -- | Yes | Yes |
created_at_age_days | Yes | Yes | -- | -- | -- | -- | -- | Yes | Yes |
AND/OR logic toggle
When a rule has multiple conditions, you control how they combine using the logic toggle at the top of the conditions section.
AND mode (default)
All conditions must be true for the rule to match. The work item must satisfy every condition.
Example: Match urgent bugs assigned to no one.
| # | Field | Operator | Value |
|---|---|---|---|
| 1 | priority | equals | urgent |
| 2 | label_ids | contains | Bug |
| 3 | assignee_ids | is_empty | -- |
Logic: AND -- all three conditions must be true.
OR mode
At least one condition must be true for the rule to match. The work item must satisfy any single condition.
Example: Match items that are either urgent or overdue.
| # | Field | Operator | Value |
|---|---|---|---|
| 1 | priority | equals | urgent |
| 2 | updated_at_age_days | greater_than | 14 |
Logic: OR -- either condition being true is sufficient.
WARNING
The logic toggle applies to all conditions in a rule uniformly. You cannot mix AND and OR logic within a single rule. If you need complex logic (e.g., "A AND (B OR C)"), create separate rules for each branch.
Condition examples
Example 1: High-priority unassigned items
Route high-priority items that have no assignee to the team lead.
| Field | Operator | Value |
|---|---|---|
priority | in | high, urgent |
assignee_ids | is_empty | -- |
Logic: AND
Example 2: Stale items in progress
Find items in active states that have not been updated recently.
| Field | Operator | Value |
|---|---|---|
state_group | equals | started |
updated_at_age_days | greater_than | 7 |
Logic: AND
Example 3: Bugs from external reporters
Match bugs created by specific external stakeholders.
| Field | Operator | Value |
|---|---|---|
label_ids | contains | Bug |
created_by | in | (select stakeholder users) |
Logic: AND
Example 4: Items needing attention
Broad filter for items that may need intervention.
| Field | Operator | Value |
|---|---|---|
priority | equals | urgent |
assignee_ids | is_empty | -- |
updated_at_age_days | greater_than | 3 |
Logic: OR -- any one of these conditions flags the item.
Condition evaluation order
Conditions are evaluated in the order they are listed in the rule. However, due to short-circuit evaluation:
- In AND mode, evaluation stops at the first condition that returns false.
- In OR mode, evaluation stops at the first condition that returns true.
This means placing the most selective (most likely to fail/pass) condition first can improve performance, especially for rules that evaluate against many work items (such as scheduled triggers).
TIP
Put cheap, selective conditions first. For example, checking priority equals urgent is faster than checking updated_at_age_days greater_than 30 because the priority check is a simple enum comparison while the age check requires date arithmetic.
Related pages
- Automation Rules -- Creating and managing rules
- Triggers -- All trigger types
- Actions -- What happens when conditions pass
- Advanced Patterns -- Complex condition strategies
- Execution History -- Debugging condition failures