Trigger condition objects
To set trigger conditions, specify one or more objects.
Events
| Parameter | Description | Acceptable values | Data type |
|---|---|---|---|
| type | Condition type | Possible values:
|
String |
Example: The trigger fires if the issue is changed.
{"type": "Event.update"}
Checklist
| Parameter | Description | Acceptable values | Data type |
|---|---|---|---|
| type | Condition type | ChecklistDone |
String |
Example: The trigger fires if all items on the checklist are completed.
{"type": "ChecklistDone"}
Comment Text
| Parameter | Description | Acceptable values | Data type |
|---|---|---|---|
| type | Condition type | Possible values:
|
String |
| word | Text of the comment | Strings to search | String or Array of strings |
| ignoreCase | Ignore case | true or false |
Boolean |
| removeMarkup | Ignore markup | true or false |
Boolean |
| noMatchBefore | Parameter changed | true or false |
Boolean |
Type of data depending on the condition type
| Condition type | Data type |
|---|---|
CommentNoneMatchCondition |
Array of strings |
CommentStringNotMatchCondition |
String |
CommentFullyMatchCondition |
String |
CommentAnyMatchCondition |
Array of strings |
CommentStringMatchCondition |
String |
Example: The trigger fires if the comment doesn't contain the text
Version 0.1orVersion 0.2, regardless of case or formatting.{ "type": "CommentNoneMatchCondition", "words": ["Version 0.1", "Version 0.2"], "ignoreCase": true, "removeMarkup": true, "noMatchBefore": false }
Comment author
| Parameter | Description | Acceptable values | Data type |
|---|---|---|---|
| type | Condition type | Possible values:
|
String |
| user | Comment author | User ID | String |
Example: The trigger fires if the comment is written by anyone other than the user with login
@user1.{ "type": "CommentAuthorNot", "user": "user1" }
Comment type
| Parameter | Description | Acceptable values | Data type |
|---|---|---|---|
| type | Condition type | Possible values:
|
String |
| user | Comment author | User ID | String |
Examples
- The trigger fires if the comment type is
Comment in Tracker.{ "type": "CommentMessageInternal" }- The trigger fires if the comment type is
{ "type": "CommentMessageExternal" }
Action with link
| Parameter | Description | Acceptable values | Data type |
|---|---|---|---|
| type | Condition type | Possible values:
|
String |
| relationship | Type of links between issues | Link list | Array of strings |
Link types
relates: Simple link.is dependent by: The current issue blocks the linked one.depends on: The current issue depends on the linked one.is subtask for: The current issue is a sub-issue of the linked one.is parent task for: The current issue is a parent issue of the linked one.duplicates: The current issue duplicates the linked one.is duplicated by: The linked issue duplicates the current one.is epic of: The current issue is an epic of the linked one. You can only set this type of link for Epic-type issues.has epic: The linked issue is an epic of the current one. You can only set this type of link for Epic-type issues.
Example: The trigger fires if the issue is unlinked from its parent issue and Epic-type issue.
{ "type": "RemovedLinkCondition", "relationship": ["is parent task for", "is epic of"] }
Issue fields
In general, a trigger condition linked to an issue field can be described using an object with two required parameters:
| Parameter | Description | Acceptable values | Data type |
|---|---|---|---|
| type | Condition type | <condition_ID> | String |
| field | Issue field | <field_ID> | String |
An object may also contain additional parameters.
Possible values of condition types depend on specific issue fields. Additional object parameters depend on a combination of required parameters.
Field value
For most fields, the following three condition types associated with a field value are available:
| Condition type | Description | Additional parameters | Data type |
|---|---|---|---|
FieldChangedCondition |
Field value changed | Without parameters | |
FieldEquals |
is equal to | value |
String |
FieldBecameEqual |
became equal to | value |
String |
List of fields that conditions apply to
| Field | ID |
|---|---|
| Queue | queue |
| Type | type |
| Priority | priority |
| Key | key |
| Issue | summary |
| Description * | description |
| Status | status |
| Resolution | resolution |
| Status Changed | statusStartTime |
| Created | createdAt |
| Updated | updatedAt |
| Resolved | resolvedAt |
| Last Comment | lastCommentUpdatedAt |
| Deadline | deadline |
| Start Date | start |
| End Date | end |
| Author | createdBy |
| Assignee | assignee |
| Followers | followers |
| Access | access |
| Modifier | updatedBy |
| Resolved by | resolvedBy |
| Mailing lists | followingMaillists |
| Project | project |
| Tags | tags |
| Components | components |
| Affected Version | affectedVersions |
| Fix Version | fixVersions |
| Parent issue | parent |
| Old queue | previousQueue |
| Voted By | votedBy |
| Votes | votes |
| Number of comments without message | commentWithoutExternalMessageCount |
| Number of comments with message | commentWithExternalMessageCount |
| Boards | boards |
| Pending reply from | pendingReplyFrom |
| Previous queue | lastQueue |
| Total participation percentage | participantPercentsTotal |
| Possible spam | possibleSpam |
| Status type | statusType |
| QA Engineer | qaEngineer |
| Original Estimate | originalEstimation |
| Estimate | estimation |
| Time Spent | spent |
| Epic | epic |
| Story Points | storyPoints |
| Sprint | sprint |
| Email from * | emailFrom |
| Email To | emailTo |
| Email CC | emailCc |
| Created by email to * | emailCreatedBy |
* For the fields marked with an asterisk, the Is equal to the string (FieldEqualsString) condition type is used instead of is equal to (FieldEquals).
Examples:
- The trigger fires if the value of the Priority field changes.
{ "type": "FieldChangedCondition", "field": "priority" }- The trigger fires if the value of the Priority field is
Blocker.{ "type": "FieldEquals", "field": "priority", "value": "blocker" }- The trigger fires if the value of the Priority field changes to
Blocker.{ "type": "FieldBecameEqual", "field": "priority", "value": "blocker" }
Field state
Conditions related to whether a field contains a value:
| Condition type | Description | Additional parameters |
|---|---|---|
FieldIsNotEmpty |
Field value is not empty | Without parameters |
FieldIsEmpty |
Field value is empty | Without parameters |
FieldBecameEmpty |
Field value deleted | Without parameters |
FieldBecameNotEmpty |
Field value set | Without parameters |
List of fields that conditions apply to
| Field | ID |
|---|---|
| Description | description |
| Resolution | resolution |
| Status Changed | statusStartTime |
| Resolved | resolvedAt |
| Last Comment | lastCommentUpdatedAt |
| Deadline | deadline |
| Start Date | start |
| End Date | end |
| Assignee | assignee |
| Followers | followers |
| Access | access |
| Resolved by | resolvedBy |
| Mailing lists | followingMaillists |
| Project | project |
| Tags | tags |
| Components | components |
| Affected Version | affectedVersions |
| Fix Version | fixVersions |
| Parent issue | parent |
| Old queue | previousQueue |
| Voted By | votedBy |
| Boards | boards |
| Pending reply from | pendingReplyFrom |
| Previous queue | lastQueue |
| Total participation percentage | participantPercentsTotal |
| Possible spam | possibleSpam |
| Status type | statusType |
| QA Engineer | qaEngineer |
| Original Estimate | originalEstimation |
| Estimate | estimation |
| Time Spent | spent |
| Epic | epic |
| Story Points | storyPoints |
| Sprint | sprint |
| Email From | emailFrom |
| Email To | emailTo |
| Email CC | emailCc |
| Created by email to | emailCreatedBy |
Examples:
- The trigger fires if the issue already has an assignee.
{ "type": "FieldIsNotEmpty", "field": "assignee" }- The trigger fires if the issue doesn't have an assignee.
{ "type": "FieldIsEmpty", "field": "assignee" }- The trigger fires if the Assignee field is cleared.
{ "type": "FieldBecameEmpty", "field": "assignee" }- The trigger fires if the Assignee field is filled in.
{ "type": "FieldBecameNotEmpty", "field": "assignee" }
Date
Conditions related to dates:
| Condition type | Description | Additional parameters | Data type |
|---|---|---|---|
DateEqualCondition |
The date matches | value |
String in date format |
DateGreaterCondition |
Later than the date | value |
String in date format |
DateGreaterOrEqualCondition |
Later than or equal to | value |
String in date format |
DateLessCondition |
Earlier than | value |
String in date format |
DateLessOrEqualCondition |
Earlier than or equal to | value |
String in date format |
List of fields that conditions apply to
| Field | ID |
|---|---|
| Status Changed | statusStartTime |
| Created | createdAt |
| Updated | updatedAt |
| Resolved | resolvedAt |
| Last Comment | lastCommentUpdatedAt |
| Deadline | deadline |
| Start Date | start |
| End Date | end |
Examples:
- The trigger fires if the Created field is set to a date later than October 28, 2023.
{ "type": "DateGreaterCondition", "field": "createdAt", "value": "2023-10-28T09:25:00"}- The trigger fires if the End date field is set to October 28, 2023, or earlier.
{ "type": "DateLessOrEqualCondition", "field": "end", "value": "2023-10-28T09:25:00"}
User groups
Conditions related to user groups:
| Condition type | Description | Additional parameters | Data type |
|---|---|---|---|
UserInGroups |
The user is a member of one of the groups. | value |
String or Array of strings |
UserNotInGroups |
The user isn't a member of any of the groups. | value |
String or Array of strings |
List of fields that conditions apply to
| Field | ID |
|---|---|
| Author | createdBy |
| Assignee | assignee |
| Modifier | updatedBy |
| Resolved by | resolvedBy |
| QA Engineer | qaEngineer |
Examples:
- The trigger fires if the user who created the issue belongs to the group with ID
1.{"type": "UserInGroups", "field": "createdBy","value": "1"}- The trigger fires if the user who created the issue doesn't belong to the group with ID
1.{"type": "UserNotInGroups", "field": "createdBy","value": ["1", "4"]}
Number of elements
Conditions related to element count:
| Condition type | Description | Additional parameters | Data type |
|---|---|---|---|
Container.SizeGreater |
The number of elements is greater than | value |
Number |
Container.SizeGreaterOrEquals |
The number of elements is greater than or equal to | value |
Number |
Container.SizeLess |
The number of elements is less than | value |
Number |
Container.SizeLessOrEquals |
The number of elements is less than or equal to | value |
Number |
Container.SizeNotEquals |
The number of elements is not equal to | value |
Number |
Container.SizeEquals |
The number of elements is equal to | value |
Number |
ContainerContainsNone |
Doesn't contain any elements |
|
|
ContainerContainsAll |
Contains all elements |
|
|
ContainerContainsAny |
Contains any of the elements |
|
|
List of fields that conditions apply to
| Field | ID |
|---|---|
| Followers | followers |
| Access | access |
| Tags | tags |
| Components | components |
| Affected Version | affectedVersions |
| Fix Version | fixVersions |
| Voted By | votedBy |
| Boards | boards |
| Pending reply from | pendingReplyFrom |
| Sprint | sprint |
| Email CC | emailCc |
| Email To | emailTo |
| Mailing lists | followingMaillists |
Examples:
- The trigger fires if the issue has five or more votes.
{ "type": "Container.SizeGreaterOrEquals", "field": "votedBy", "value": 5 }- The trigger fires if the issue has exactly five components.
{ "type": "Container.SizeEquals", "field": "components", "value": 5 }- The trigger fires if the Followers field ever contained the value
user11oruser12.{ "type": "ContainerContainsAll", "field": "followers", "value": ["user11", "user22"], "noMatchBefore": true }
Numeric values
Conditions related to numeric values:
| Condition type | Description | Additional parameters | Data type |
|---|---|---|---|
GreaterCondition |
is greater than | value |
Number |
GreaterOrEqualCondition |
is greater than or equal to | value |
Number |
LessCondition |
is less than | value |
Number |
LessOrEqualCondition |
is less than or equal to | value |
Number |
BecameGreaterCondition |
became greater than | value |
Number |
BecameGreaterOrEqualCondition |
became greater than or equal to | value |
Number |
BecameLessCondition |
became less than | value |
Number |
BecameLessOrEqualCondition |
became less than or equal to | value |
Number |
List of fields that conditions apply to
| Field | ID |
|---|---|
| Votes | votes |
| Number of comments without message | commentWithoutExternalMessageCount |
| Number of comments with message | commentWithExternalMessageCount |
| Total participation percentage | participantPercentsTotal |
| Possible spam | possibleSpam |
| Original Estimate | originalEstimation |
| Estimate | estimation |
| Time Spent | spent |
| Story Points | storyPoints |
Examples:
- The trigger fires if the value in the Story Points field is less than or equal to five.
{ "type": "LessOrEqualCondition", "field": "storyPoints", "value": 5 }- The trigger fires if the value of the Votes field is greater than five.
{ "type": "BecameGreaterCondition", "field": "votes", "value": 6 }
String values
Conditions related to string values:
| Condition type | Description | Additional parameters | Data type |
|---|---|---|---|
ContainsNoneOfStrings |
Doesn't contain any fragments |
|
|
FieldEqualsString |
Is equal to the string |
|
|
ContainsAnyOfStrings |
Contains any of the fragments |
|
|
List of fields that conditions apply to
| Field | ID |
|---|---|
| Key | key |
| Issue | summary |
| Description | description |
| Email From | emailFrom |
| Created by email to | emailCreatedBy |
Examples:
- The trigger fires if the issue description doesn't contain the values
Test taskand12345, regardless of case or formatting.{ "type": "ContainsNoneOfStrings", "field": "description", "value": ["Test task", "12345"], "ignoreCase": true }- The trigger fires if the issue name is
New-Task.{ "type": "FieldEqualsString", "field": "summary", "value": "New-Task", "ignoreCase": false }