permissionKey
The permission required to perform the transition. Allowed values: built-in Jira permissions.blocker
currently only supports PARENT
.statusIds
a comma-separated list of status IDs.previousStatusIds
a comma-separated list of status IDs, currently only support one ID.mostRecentStatusOnly
when true
only considers the most recent status for the condition evaluation. Allowed values: true
, false
.fieldsRequired
the ID of the field that is required. For a custom field, it would look like customfield_123
.ignoreContext
controls the impact of context settings on field validation. When set to true
, the validator doesn't check a required field if its context isn't configured for the current issue. When set to false
, the validator requires a field even if its context is invalid. Allowed values: true
, false
.errorMessage
is the error message to display if the user does not provide a value during the transition. A default error message will be shown if you don't provide one (Optional).groupsExemptFromValidation
a comma-separated list of group IDs to be exempt from the validation.fieldKey
the ID of the field that has changed. For a custom field, it would look like customfield_123
.errorMessage
the error message to display if the user does not provide a value during the transition. A default error message will be shown if you don't provide one (Optional).fieldKey
the ID of the field to validate. For a custom field, it would look like customfield_123
.excludeSubtasks
Option to exclude values copied from sub-tasks. Allowed values: true
, false
.regexp
the regular expression used to validate the field’s content.fieldKey
the ID of the field to validate. For a custom field, it would look like customfield_123
.date1FieldKey
the ID of the first field to compare. For a custom field, it would look like customfield_123
.date2FieldKey
the ID of the second field to compare. For a custom field, it would look like customfield_123
.includeTime
if true
, compares both date and time. Allowed values: true
, false
.conditionSelected
the condition to compare with. Allowed values: >
, >=
, =
, <=
, <
, !=
.date1FieldKey
the ID of the first field to compare. For a custom field, it would look like customfield_123
.date2FieldKey
the ID of the second field to compare. For a custom field, it would look like customfield_123
.numberOfDays
maximum number of days past the reference date (date2FieldKey
) to pass validation.fieldId
The ID of the field to check the value of. For non-system fields, it will look like customfield_123
. Note: fieldId
is used interchangeably with the idea of fieldKey
here, they refer to the same field.fieldValue
the list of values to check against the field’s value.comparator
The comparison logic. Allowed values: >
, >=
, =
, <=
, <
, !=
.comparisonType
The type of data being compared. Allowed values: STRING
, NUMBER
, DATE
, DATE_WITHOUT_TIME
, OPTIONID
.true
if any of the following criteria is met.accountIds
a comma-separated list of the user account IDs. It also allows generic values like: allow-assignee
, allow-reporter
, and accountIds
Note: This is only supported in team-managed projectsroleIds
a comma-separated list of role IDs.groupIds
a comma-separated list of group IDs.permissionKeys
a comma-separated list of permission keys. Allowed values: built-in Jira permissions.groupCustomFields
a comma-separated list of group custom field IDs.allowUserCustomFields
a comma-separated list of user custom field IDs to allow for issue transition.denyUserCustomFields
a comma-separated list of user custom field IDs to deny for issue transition.previousStatusIds
a comma-separated list of status IDs, current only support one ID.not
indicates if the condition should be reversed. When true
it checks that the issue has not been in the selected statuses. Allowed values: true
, false
.mostRecentStatusOnly
when true only considers the most recent status for the condition evaluation. Allowed values: true
, false
.includeCurrentStatus
includes the current status when evaluating if the issue has been through the selected statuses. Allowed values: true
, false
.ignoreLoopTransitions
ignore loop transitions. Allowed values: true
, false
.blocker
currently only supports CHILD
.statusIds
a comma-separated list of status IDs.fromStatusId
represents the status ID from which the issue is transitioning. It ensures that the user performing the current transition has not performed any actions when the issue was in the specified status.toStatusId
represents the status ID to which the issue is transitioning. It ensures that the user performing the current transition is not the same user who has previously transitioned the issue.restrictMode
restricts the issue transition including/excluding APIs. Allowed values: "users"
, "usersAndAPI"
.approvalConfigurationJson
a stringified JSON holding the Jira Service Management approval configuration.approvalConfigurationJson
a stringified JSON holding the Jira Service Management approval configuration.type
the parameter used to determine the new assignee. Allowed values: to-selected-user
, to-unassigned
, to-current-user
, to-current-user
, to-default-user
, to-default-user
accountId
the account ID of the user to assign the issue to. This parameter is required only when the type is "to-selected-user"
.sourceFieldKey
the field key to copy from. For a custom field, it would look like customfield_123
targetFieldKey
the field key to copy to. For a custom field, it would look like customfield_123
issueSource
SAME
or PARENT
. Defaults to SAME
if no value is provided.field
the ID of the field to update. For a custom field, it would look like customfield_123
value
the value to update the field with.mode
append
or replace
. Determines if a value will be appended to the current value, or if the current value will be replaced.webhookId
the ID of the webhook.remindingFieldIds
a comma-separated list of field IDs. Note: fieldId
is used interchangeably with the idea of fieldKey
here, they refer to the same field.remindingMessage
the message to display when prompting the users to update the fields.remindingAlwaysAsk
always remind to update fields. Allowed values: true
, false
.screenId
the ID of the screen.ruleKey
Validator: connect:expression-validator
, Condition: connect:expression-condition
, and Post function: connect:remote-workflow-function
appKey
the reference to the Connect appconfig
a JSON payload string describing the configurationid
the ID of the ruledisabled
determine if the Connect app is disabled. Allowed values: true
, false
.tag
additional tags for the Connect appruleKey
Validator: forge:expression-validator
, Condition: forge:expression-condition
, and Post function: forge:workflow-post-function
key
the identifier for the Forge appconfig
the persistent stringified JSON configuration for the Forge ruleid
the ID of the Forge rulecurl --location --request GET 'http://jira.local:8080/jira/rest//rest/api/3/workflows/capabilities'
{
"connectRules": [
{
"addonKey": "string",
"createUrl": "string",
"description": "string",
"editUrl": "string",
"moduleKey": "string",
"name": "string",
"ruleKey": "string",
"ruleType": "CONDITION",
"viewUrl": "string"
}
],
"editorScope": "PROJECT",
"forgeRules": [
{
"description": "string",
"id": "string",
"name": "string",
"ruleKey": "string",
"ruleType": "CONDITION"
}
],
"projectTypes": "software",
"systemRules": [
{
"description": "string",
"incompatibleRuleKeys": [
"string"
],
"isAvailableForInitialTransition": true,
"isVisible": true,
"name": "string",
"ruleKey": "string",
"ruleType": "CONDITION"
}
],
"triggerRules": [
{
"availableTypes": [
{
"description": "string",
"name": "string",
"type": "string"
}
],
"ruleKey": "string"
}
]
}