JIRA 7.6.1
  1. Workflows
JIRA 7.6.1
  • Announcement banner
    • Get announcement banner configuration
      GET
    • Update announcement banner configuration
      PUT
  • Issue custom field values (apps)
    • Update custom fields
      POST
    • Update custom field value
      PUT
  • Issue custom field configuration (apps)
    • Get custom field configurations
      GET
    • Update custom field configurations
      PUT
  • Jira settings
    • Get application property
      GET
    • Get advanced settings
      GET
    • Set application property
      PUT
    • Get global settings
      GET
  • Application roles
    • Get all application roles
      GET
    • Get application role
      GET
  • Issue attachments
    • Get attachment content
      GET
    • Get Jira attachment settings
      GET
    • Get attachment thumbnail
      GET
    • Get attachment metadata
      GET
    • Delete attachment
      DELETE
    • Get all metadata for an expanded attachment
      GET
    • Get contents metadata for an expanded attachment
      GET
    • Add attachment
      POST
  • Audit records
    • Get audit records
  • Avatars
    • Get system avatars by type
    • Get avatars
    • Load avatar
    • Delete avatar
    • Get avatar image by type
    • Get avatar image by ID
    • Get avatar image by owner
  • Issue comments
    • Get comments by IDs
    • Get comments
    • Add comment
    • Get comment
    • Update comment
    • Delete comment
  • Issue comment properties
    • Get comment property keys
    • Get comment property
    • Set comment property
    • Delete comment property
  • Project components
    • Create component
    • Get component
    • Update component
    • Delete component
    • Get component issues count
    • Get project components paginated
    • Get project components
  • Time tracking
    • Get selected time tracking provider
    • Select time tracking provider
    • Get all time tracking providers
    • Get time tracking settings
    • Set time tracking settings
  • Issue custom field options
    • Get custom field option
    • Get custom field options (context)
    • Update custom field options (context)
    • Create custom field options (context)
    • Reorder custom field options (context)
    • Delete custom field options (context)
  • Dashboards
    • Get all dashboards
    • Create dashboard
    • Get available gadgets
    • Search for dashboards
    • Get gadgets
    • Add gadget to dashboard
    • Update gadget on dashboard
    • Remove gadget from dashboard
    • Get dashboard item property keys
    • Get dashboard item property
    • Set dashboard item property
    • Delete dashboard item property
    • Get dashboard
    • Update dashboard
    • Delete dashboard
    • Copy dashboard
  • Issues
    • Get events
    • Create issue
    • Bulk create issue
    • Get create issue metadata
    • Get issue
    • Edit issue
    • Delete issue
    • Assign issue
    • Get changelogs
    • Get changelogs by IDs
    • Get edit issue metadata
    • Send notification for issue
    • Get transitions
    • Transition issue
  • Jira expressions
    • Analyse Jira expression
    • Evaluate Jira expression
  • Issue fields
    • Get fields
    • Create custom field
    • Get fields paginated
    • Get fields in trash paginated
    • Update custom field
    • Get contexts for a field
    • Delete custom field
    • Restore custom field from trash
    • Move custom field to trash
  • Issue custom field contexts
    • Get custom field contexts
    • Create custom field context
    • Get custom field contexts default values
    • Set custom field contexts default values
    • Get issue types for custom field context
    • Get custom field contexts for projects and issue types
    • Get project mappings for custom field context
    • Update custom field context
    • Delete custom field context
    • Add issue types to context
    • Remove issue types from context
    • Assign custom field context to projects
    • Remove custom field context from projects
  • Screens
    • Get screens for a field
    • Get screens
    • Create screen
    • Add field to default screen
    • Update screen
    • Delete screen
    • Get available screen fields
  • Issue custom field options (apps)
    • Get all issue field options
    • Create issue field option
    • Get selectable issue field options
    • Get visible issue field options
    • Get issue field option
    • Update issue field option
    • Delete issue field option
    • Replace issue field option
  • Issue field configurations
    • Get all field configurations
    • Create field configuration
    • Update field configuration
    • Delete field configuration
    • Get field configuration items
    • Update field configuration items
    • Get all field configuration schemes
    • Create field configuration scheme
    • Get field configuration issue type items
    • Get field configuration schemes for projects
    • Assign field configuration scheme to project
    • Update field configuration scheme
    • Delete field configuration scheme
    • Assign issue types to field configurations
    • Remove issue types from field configuration scheme
  • Filters
    • Create filter
    • Get favorite filters
    • Get my filters
    • Search for filters
    • Get filter
    • Update filter
    • Delete filter
    • Get columns
    • Set columns
    • Reset columns
    • Add filter as favorite
    • Remove filter as favorite
    • Change filter owner
  • Filter sharing
    • Get default share scope
    • Set default share scope
    • Get share permissions
    • Add share permission
    • Get share permission
    • Delete share permission
  • Groups
    • Get group
    • Create group
    • Remove group
    • Bulk get groups
    • Get users from group
    • Add user to group
    • Remove user from group
    • Find groups
  • Group and user picker
    • Find users and groups
  • License metrics
    • Get license
    • Get approximate license count
    • Get approximate application license count
  • Issue search
    • Get issue picker suggestions
    • Check issues against JQL
    • Search for issues using JQL (GET)
    • Search for issues using JQL (POST)
  • Issue properties
    • Bulk set issues properties by list
    • Bulk set issue properties by issue
    • Bulk set issue property
    • Bulk delete issue property
    • Get issue property keys
    • Get issue property
    • Set issue property
    • Delete issue property
  • Issue watchers
    • Get is watching issue bulk
    • Get issue watchers
    • Add watcher
    • Delete watcher
  • Issue remote links
    • Get remote issue links
    • Create or update remote issue link
    • Delete remote issue link by global ID
    • Get remote issue link by ID
    • Update remote issue link by ID
    • Delete remote issue link by ID
  • Issue votes
    • Get votes
    • Add vote
    • Delete vote
  • Issue worklogs
    • Get issue worklogs
    • Add worklog
    • Get worklog
    • Update worklog
    • Delete worklog
    • Get IDs of deleted worklogs
    • Get worklogs
    • Get IDs of updated worklogs
  • Issue worklog properties
    • Get worklog property keys
    • Get worklog property
    • Set worklog property
    • Delete worklog property
  • Issue links
    • Create issue link
    • Get issue link
    • Delete issue link
  • Issue link types
    • Get issue link types
    • Create issue link type
    • Get issue link type
    • Update issue link type
    • Delete issue link type
  • Issue security schemes
    • Get issue security schemes
    • Create issue security scheme
    • Get issue security levels
    • Set default issue security levels
    • Get issue security level members
    • Get projects using issue security schemes
    • Associate security scheme to project
    • Search issue security schemes
    • Get issue security scheme
    • Update issue security scheme
    • Delete issue security scheme
    • Add issue security levels
    • Update issue security level
    • Remove issue security level
    • Add issue security level members
    • Remove member from issue security level
  • Issue security level
    • Get issue security level members
    • Get issue security level
  • Issue types
    • Get all issue types for user
    • Create issue type
    • Get issue types for project
    • Get issue type
    • Update issue type
    • Delete issue type
    • Get alternative issue types
    • Load issue type avatar
  • Issue type properties
    • Get issue type property keys
    • Get issue type property
    • Set issue type property
    • Delete issue type property
  • Issue type schemes
    • Get all issue type schemes
    • Create issue type scheme
    • Get issue type scheme items
    • Get issue type schemes for projects
    • Assign issue type scheme to project
    • Update issue type scheme
    • Delete issue type scheme
    • Add issue types to issue type scheme
    • Change order of issue types
    • Remove issue type from issue type scheme
  • Issue type screen schemes
    • Get issue type screen schemes
    • Create issue type screen scheme
    • Get issue type screen scheme items
    • Get issue type screen schemes for projects
    • Assign issue type screen scheme to project
    • Update issue type screen scheme
    • Delete issue type screen scheme
    • Append mappings to issue type screen scheme
    • Update issue type screen scheme default screen scheme
    • Remove mappings from issue type screen scheme
    • Get issue type screen scheme projects
  • JQL
    • Get field reference data (GET)
    • Get field reference data (POST)
    • Get field auto complete suggestions
    • Parse JQL query
    • Convert user identifiers to account IDs in JQL queries
    • Sanitize JQL queries
  • JQL functions (apps)
    • Get precomputations (apps)
    • Update precomputations (apps)
  • Labels
    • Get all labels
  • Permissions
    • Get my permissions
    • Get all permissions
    • Get bulk permissions
    • Get permitted projects
  • Myself
    • Get preference
    • Set preference
    • Delete preference
    • Get locale
    • Set locale
    • Delete locale
    • Get current user
  • Issue notification schemes
    • Get notification schemes paginated
    • Create notification scheme
    • Get projects using notification schemes paginated
    • Get notification scheme
    • Update notification scheme
    • Add notifications to notification scheme
    • Delete notification scheme
    • Remove notification from notification scheme
  • Permission schemes
    • Get all permission schemes
    • Create permission scheme
    • Get permission scheme
    • Update permission scheme
    • Delete permission scheme
    • Get permission scheme grants
    • Create permission grant
    • Get permission scheme grant
    • Delete permission scheme grant
  • Issue priorities
    • Get priorities
    • Create priority
    • Set default priority
    • Move priorities
    • Search priorities
    • Get priority
    • Update priority
    • Delete priority
  • Projects
    • Get all projects
    • Create project
    • Get recent projects
    • Get projects paginated
    • Get project
    • Update project
    • Delete project
    • Archive project
    • Delete project asynchronously
    • Restore deleted or archived project
    • Get all statuses for project
    • Get project issue type hierarchy
    • Get project notification scheme
  • Project types
    • Get all project types
    • Get licensed project types
    • Get project type by key
    • Get accessible project type by key
  • Project avatars
    • Set project avatar
    • Delete project avatar
    • Load project avatar
    • Get all project avatars
  • Project features
    • Get project features
    • Set project feature state
  • Project properties
    • Get project property keys
    • Get project property
    • Set project property
    • Delete project property
  • Project roles
    • Get project roles for project
    • Get project role for project
    • Get project role details
    • Get all project roles
    • Create project role
    • Get project role by ID
    • Fully update project role
    • Partial update project role
    • Delete project role
  • Project role actors
    • Set actors for project role
    • Add actors to project role
    • Delete actors from project role
    • Get default actors for project role
    • Add default actors to project role
    • Delete default actors from project role
  • Project versions
    • Get project versions paginated
    • Get project versions
    • Create version
    • Get version
    • Update version
    • Delete version
    • Merge versions
    • Move version
    • Get version's related issues count
    • Delete and replace version
    • Get version's unresolved issues count
  • Project email
    • Get project's sender email
    • Set project's sender email
  • Project permission schemes
    • Get project issue security scheme
    • Get assigned permission scheme
    • Assign permission scheme
    • Get project issue security levels
  • Project categories
    • Get all project categories
    • Create project category
    • Get project category by ID
    • Update project category
    • Delete project category
  • Project key and name validation
    • Validate project key
    • Get valid project key
    • Get valid project name
  • Issue resolutions
    • Get resolutions
    • Create resolution
    • Set default resolution
    • Move resolutions
    • Search resolutions
    • Get resolution
    • Update resolution
    • Delete resolution
  • Screen tabs
    • Get all screen tabs
    • Create screen tab
    • Update screen tab
    • Delete screen tab
    • Move screen tab
  • Screen tab fields
    • Get all screen tab fields
    • Add screen tab field
    • Remove screen tab field
    • Move screen tab field
  • Screen schemes
    • Get screen schemes
    • Create screen scheme
    • Update screen scheme
    • Delete screen scheme
  • Server info
    • Get Jira instance info
  • Issue navigator settings
    • Get issue navigator default columns
    • Set issue navigator default columns
  • Workflow statuses
    • Get all statuses
    • Get status
  • Workflow status categories
    • Get all status categories
    • Get status category
  • Status
    • Bulk get statuses
    • Bulk update statuses
    • Bulk create statuses
    • Bulk delete Statuses
    • Search statuses paginated
  • Tasks
    • Get task
    • Cancel task
  • UI modifications (apps)
    • Get UI modifications
    • Create UI modification
    • Update UI modification
    • Delete UI modification
  • Users
    • Get user
    • Create user
    • Delete user
    • Bulk get users
    • Get account IDs for users
    • Get user default columns
    • Set user default columns
    • Reset user default columns
    • Get user email
    • Get user email bulk
    • Get user groups
    • Get all users default
    • Get all users
  • User search
    • Find users assignable to projects
    • Find users assignable to issues
    • Find users with permissions
    • Find users for picker
    • Find users
    • Find users by query
    • Find user keys by query
    • Find users with browse permission
  • User properties
    • Get user property keys
    • Get user property
    • Set user property
    • Delete user property
  • Webhooks
    • Get dynamic webhooks for app
    • Register dynamic webhooks
    • Delete webhooks by ID
    • Get failed webhooks
    • Extend webhook life
  • Workflows
    • Get all workflows
      GET
    • Create workflow
      POST
    • Get workflows paginated
      GET
    • Delete inactive workflow
      DELETE
    • Bulk get workflows
      POST
    • Get available workflow capabilities
      GET
    • Bulk create workflows
      POST
    • Validate create workflows
      POST
    • Bulk update workflows
      POST
    • Validate update workflows
      POST
  • Workflow transition rules
    • Get workflow transition rule configurations
    • Update workflow transition rule configurations
    • Delete workflow transition rule configurations
  • Workflow transition properties
    • Get workflow transition properties
    • Update workflow transition property
    • Create workflow transition property
    • Delete workflow transition property
  • Workflow schemes
    • Get all workflow schemes
    • Create workflow scheme
    • Get workflow scheme
    • Update workflow scheme
    • Delete workflow scheme
    • Get default workflow
    • Update default workflow
    • Delete default workflow
    • Get workflow for issue type in workflow scheme
    • Set workflow for issue type in workflow scheme
    • Delete workflow for issue type in workflow scheme
    • Get issue types for workflows in workflow scheme
    • Set issue types for workflow in workflow scheme
    • Delete issue types for workflow in workflow scheme
  • Workflow scheme project associations
    • Get workflow scheme project associations
    • Assign workflow scheme to project
  • Workflow scheme drafts
    • Create draft workflow scheme
    • Get draft workflow scheme
    • Update draft workflow scheme
    • Delete draft workflow scheme
    • Get draft default workflow
    • Update draft default workflow
    • Delete draft default workflow
    • Get workflow for issue type in draft workflow scheme
    • Set workflow for issue type in draft workflow scheme
    • Delete workflow for issue type in draft workflow scheme
    • Publish draft workflow scheme
    • Get issue types for workflows in draft workflow scheme
    • Set issue types for workflow in workflow scheme
    • Delete issue types for workflow in draft workflow scheme
  • App properties
    • Get app properties
    • Get app property
    • Set app property
    • Delete app property
    • Set app property (Forge)
    • Delete app property (Forge)
  • Dynamic modules
    • Get modules
    • Register modules
    • Remove modules
  • App migration
    • Bulk update custom field value
    • Bulk update entity properties
    • Get workflow transition rule configurations
  1. Workflows

Create workflow

POST
/rest/api/3/workflow
Workflows
Creates a workflow. You can define transition rules using the shapes detailed in the following sections. If no transitional rules are specified the default system transition rules are used. Note: This only applies to company-managed scoped workflows. Use bulk create workflows to create both team and company-managed scoped workflows.

Conditions#

Conditions enable workflow rules that govern whether a transition can execute.
Always false condition#
A condition that always fails.
{
"type": "AlwaysFalseCondition"
}
Block transition until approval#
A condition that blocks issue transition if there is a pending approval.
{
"type": "BlockInProgressApprovalCondition"
}
Compare number custom field condition#
A condition that allows transition if a comparison between a number custom field and a value is true.
{
"type": "CompareNumberCFCondition",
"configuration": {
"comparator": "=",
"fieldId": "customfield_10029",
"fieldValue": 2
}
}
comparator One of the supported comparator: =, >, and <.
fieldId The custom numeric field ID. Allowed field types:
com.atlassian.jira.plugin.system.customfieldtypes:float
com.pyxis.greenhopper.jira:jsw-story-points
fieldValue The value for comparison.
Hide from user condition#
A condition that hides a transition from users. The transition can only be triggered from a workflow function or REST API operation.
{
"type": "RemoteOnlyCondition"
}
Only assignee condition#
A condition that allows only the assignee to execute a transition.
{
"type": "AllowOnlyAssignee"
}
Only Bamboo notifications workflow condition#
A condition that makes the transition available only to Bamboo build notifications.
{
"type": "OnlyBambooNotificationsCondition"
}
Only reporter condition#
A condition that allows only the reporter to execute a transition.
{
"type": "AllowOnlyReporter"
}
Permission condition#
A condition that allows only users with a permission to execute a transition.
{
"type": "PermissionCondition",
"configuration": {
"permissionKey": "BROWSE_PROJECTS"
}
}
permissionKey The permission required to perform the transition. Allowed values: built-in or app defined permissions.
Previous status condition#
A condition that allows a transition based on whether an issue has or has not transitioned through a status.
{
"type": "PreviousStatusCondition",
"configuration": {
"ignoreLoopTransitions": true,
"includeCurrentStatus": true,
"mostRecentStatusOnly": true,
"reverseCondition": true,
"previousStatus": {
"id": "5"
}
}
}
By default this condition allows the transition if the status, as defined by its ID in the previousStatus object, matches any previous issue status, unless:
ignoreLoopTransitions is true, then loop transitions (from and to the same status) are ignored.
includeCurrentStatus is true, then the current issue status is also checked.
mostRecentStatusOnly is true, then only the issue's preceding status (the one immediately before the current status) is checked.
reverseCondition is true, then the status must not be present.
Separation of duties condition#
A condition that prevents a user to perform the transition, if the user has already performed a transition on the issue.
{
"type": "SeparationOfDutiesCondition",
"configuration": {
"fromStatus": {
"id": "5"
},
"toStatus": {
"id": "6"
}
}
}
fromStatus OPTIONAL. An object containing the ID of the source status of the transition that is blocked. If omitted any transition to toStatus is blocked.
toStatus An object containing the ID of the target status of the transition that is blocked.
Subtask blocking condition#
A condition that blocks transition on a parent issue if any of its subtasks are in any of one or more statuses.
{
"type": "SubTaskBlockingCondition",
"configuration": {
"statuses": [
{
"id": "1"
},
{
"id": "3"
}
]
}
}
statuses A list of objects containing status IDs.
User is in any group condition#
A condition that allows users belonging to any group from a list of groups to execute a transition.
{
"type": "UserInAnyGroupCondition",
"configuration": {
"groups": [
"administrators",
"atlassian-addons-admin"
]
}
}
groups A list of group names.
User is in any project role condition#
A condition that allows only users with at least one project roles from a list of project roles to execute a transition.
{
"type": "InAnyProjectRoleCondition",
"configuration": {
"projectRoles": [
{
"id": "10002"
},
{
"id": "10003"
},
{
"id": "10012"
},
{
"id": "10013"
}
]
}
}
projectRoles A list of objects containing project role IDs.
User is in custom field condition#
A condition that allows only users listed in a given custom field to execute the transition.
{
"type": "UserIsInCustomFieldCondition",
"configuration": {
"allowUserInField": false,
"fieldId": "customfield_10010"
}
}
allowUserInField If true only a user who is listed in fieldId can perform the transition, otherwise, only a user who is not listed in fieldId can perform the transition.
fieldId The ID of the field containing the list of users.
User is in group condition#
A condition that allows users belonging to a group to execute a transition.
{
"type": "UserInGroupCondition",
"configuration": {
"group": "administrators"
}
}
group The name of the group.
User is in group custom field condition#
A condition that allows users belonging to a group specified in a custom field to execute a transition.
{
"type": "InGroupCFCondition",
"configuration": {
"fieldId": "customfield_10012"
}
}
fieldId The ID of the field. Allowed field types:
com.atlassian.jira.plugin.system.customfieldtypes:multigrouppicker
com.atlassian.jira.plugin.system.customfieldtypes:grouppicker
com.atlassian.jira.plugin.system.customfieldtypes:select
com.atlassian.jira.plugin.system.customfieldtypes:multiselect
com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons
com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes
com.pyxis.greenhopper.jira:gh-epic-status
User is in project role condition#
A condition that allows users with a project role to execute a transition.
{
"type": "InProjectRoleCondition",
"configuration": {
"projectRole": {
"id": "10002"
}
}
}
projectRole An object containing the ID of a project role.
Value field condition#
A conditions that allows a transition to execute if the value of a field is equal to a constant value or simply set.
{
"type": "ValueFieldCondition",
"configuration": {
"fieldId": "assignee",
"fieldValue": "qm:6e1ecee6-8e64-4db6-8c85-916bb3275f51:54b56885-2bd2-4381-8239-78263442520f",
"comparisonType": "NUMBER",
"comparator": "="
}
}
fieldId The ID of a field used in the comparison.
fieldValue The expected value of the field.
comparisonType The type of the comparison. Allowed values: STRING, NUMBER, DATE, DATE_WITHOUT_TIME, or OPTIONID.
comparator One of the supported comparator: >, >=, =, <=, <, !=.
Notes:
If you choose the comparison type STRING, only = and != are valid options.
You may leave fieldValue empty when comparison type is != to indicate that a value is required in the field.
For date fields without time format values as yyyy-MM-dd, and for those with time as yyyy-MM-dd HH:mm. For example, for July 16 2021 use 2021-07-16, for 8:05 AM use 2021-07-16 08:05, and for 4 PM: 2021-07-16 16:00.

Validators#

Validators check that any input made to the transition is valid before the transition is performed.
Date field validator#
A validator that compares two dates.
{
"type": "DateFieldValidator",
"configuration": {
"comparator": ">",
"date1": "updated",
"date2": "created",
"expression": "1d",
"includeTime": true
}
}
comparator One of the supported comparator: >, >=, =, <=, <, or !=.
date1 The date field to validate. Allowed field types:
com.atlassian.jira.plugin.system.customfieldtypes:datepicker
com.atlassian.jira.plugin.system.customfieldtypes:datetime
com.atlassian.jpo:jpo-custom-field-baseline-end
com.atlassian.jpo:jpo-custom-field-baseline-start
duedate
created
updated
resolutiondate
date2 The second date field. Required, if expression is not passed. Allowed field types:
com.atlassian.jira.plugin.system.customfieldtypes:datepicker
com.atlassian.jira.plugin.system.customfieldtypes:datetime
com.atlassian.jpo:jpo-custom-field-baseline-end
com.atlassian.jpo:jpo-custom-field-baseline-start
duedate
created
updated
resolutiondate
expression An expression specifying an offset. Required, if date2 is not passed. Offsets are built with a number, with - as prefix for the past, and one of these time units: d for day, w for week, m for month, or y for year. For example, -2d means two days into the past and 1w means one week into the future. The now keyword enables a comparison with the current date.
includeTime If true, then the time part of the data is included for the comparison. If the field doesn't have a time part, 00:00:00 is used.
Windows date validator#
A validator that checks that a date falls on or after a reference date and before or on the reference date plus a number of days.
{
"type": "WindowsDateValidator",
"configuration": {
"date1": "customfield_10009",
"date2": "created",
"windowsDays": 5
}
}
date1 The date field to validate. Allowed field types:
com.atlassian.jira.plugin.system.customfieldtypes:datepicker
com.atlassian.jira.plugin.system.customfieldtypes:datetime
com.atlassian.jpo:jpo-custom-field-baseline-end
com.atlassian.jpo:jpo-custom-field-baseline-start
duedate
created
updated
resolutiondate
date2 The reference date. Allowed field types:
com.atlassian.jira.plugin.system.customfieldtypes:datepicker
com.atlassian.jira.plugin.system.customfieldtypes:datetime
com.atlassian.jpo:jpo-custom-field-baseline-end
com.atlassian.jpo:jpo-custom-field-baseline-start
duedate
created
updated
resolutiondate
windowsDays A positive integer indicating a number of days.
Field required validator#
A validator that checks fields are not empty. By default, if a field is not included in the current context it's ignored and not validated.
{
"type": "FieldRequiredValidator",
"configuration": {
"ignoreContext": true,
"errorMessage": "Hey",
"fieldIds": [
"versions",
"customfield_10037",
"customfield_10003"
]
}
}
ignoreContext If true, then the context is ignored and all the fields are validated.
errorMessage OPTIONAL. The error message displayed when one or more fields are empty. A default error message is shown if an error message is not provided.
fieldIds The list of fields to validate.
Field changed validator#
A validator that checks that a field value is changed. However, this validation can be ignored for users from a list of groups.
{
"type": "FieldChangedValidator",
"configuration": {
"fieldId": "comment",
"errorMessage": "Hey",
"exemptedGroups": [
"administrators",
"atlassian-addons-admin"
]
}
}
fieldId The ID of a field.
errorMessage OPTIONAL. The error message displayed if the field is not changed. A default error message is shown if the error message is not provided.
exemptedGroups OPTIONAL. The list of groups.
Field has single value validator#
A validator that checks that a multi-select field has only one value. Optionally, the validation can ignore values copied from subtasks.
{
"type": "FieldHasSingleValueValidator",
"configuration": {
"fieldId": "attachment,
"excludeSubtasks": true
}
}
fieldId The ID of a field.
excludeSubtasks If true, then values copied from subtasks are ignored.
Parent status validator#
A validator that checks the status of the parent issue of a subtask. Ìf the issue is not a subtask, no validation is performed.
{
"type": "ParentStatusValidator",
"configuration": {
"parentStatuses": [
{
"id":"1"
},
{
"id":"2"
}
]
}
}
parentStatus The list of required parent issue statuses.
Permission validator#
A validator that checks the user has a permission.
{
"type": "PermissionValidator",
"configuration": {
"permissionKey": "ADMINISTER_PROJECTS"
}
}
permissionKey The permission required to perform the transition. Allowed values: built-in or app defined permissions.
Previous status validator#
A validator that checks if the issue has held a status.
{
"type": "PreviousStatusValidator",
"configuration": {
"mostRecentStatusOnly": false,
"previousStatus": {
"id": "15"
}
}
}
mostRecentStatusOnly If true, then only the issue's preceding status (the one immediately before the current status) is checked.
previousStatus An object containing the ID of an issue status.
Regular expression validator#
A validator that checks the content of a field against a regular expression.
{
"type": "RegexpFieldValidator",
"configuration": {
"regExp": "[0-9]",
"fieldId": "customfield_10029"
}
}
regExpA regular expression.
fieldId The ID of a field. Allowed field types:
com.atlassian.jira.plugin.system.customfieldtypes:select
com.atlassian.jira.plugin.system.customfieldtypes:multiselect
com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons
com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes
com.atlassian.jira.plugin.system.customfieldtypes:textarea
com.atlassian.jira.plugin.system.customfieldtypes:textfield
com.atlassian.jira.plugin.system.customfieldtypes:url
com.atlassian.jira.plugin.system.customfieldtypes:float
com.pyxis.greenhopper.jira:jsw-story-points
com.pyxis.greenhopper.jira:gh-epic-status
description
summary
User permission validator#
A validator that checks if a user has a permission. Obsolete. You may encounter this validator when getting transition rules and can pass it when updating or creating rules, for example, when you want to duplicate the rules from a workflow on a new workflow.
{
"type": "UserPermissionValidator",
"configuration": {
"permissionKey": "BROWSE_PROJECTS",
"nullAllowed": false,
"username": "TestUser"
}
}
permissionKey The permission to be validated. Allowed values: built-in or app defined permissions.
nullAllowed If true, allows the transition when username is empty.
username The username to validate against the permissionKey.

Post functions#

Post functions carry out any additional processing required after a Jira workflow transition is executed.
Fire issue event function#
A post function that fires an event that is processed by the listeners.
{
"type": "FireIssueEventFunction",
"configuration": {
"event": {
"id":"1"
}
}
}
Note: If provided, this post function overrides the default FireIssueEventFunction. Can be included once in a transition.
event An object containing the ID of the issue event.
Update issue status#
A post function that sets issue status to the linked status of the destination workflow status.
{
"type": "UpdateIssueStatusFunction"
}
Note: This post function is a default function in global and directed transitions. It can only be added to the initial transition and can only be added once.
Create comment#
A post function that adds a comment entered during the transition to an issue.
{
"type": "CreateCommentFunction"
}
Note: This post function is a default function in global and directed transitions. It can only be added to the initial transition and can only be added once.
Store issue#
A post function that stores updates to an issue.
{
"type": "IssueStoreFunction"
}
Note: This post function can only be added to the initial transition and can only be added once.
Assign to current user function#
A post function that assigns the issue to the current user if the current user has the ASSIGNABLE_USER permission.
{
"type": "AssignToCurrentUserFunction"
}
Note: This post function can be included once in a transition.
Assign to lead function#
A post function that assigns the issue to the project or component lead developer.
{
"type": "AssignToLeadFunction"
}
Note: This post function can be included once in a transition.
Assign to reporter function#
A post function that assigns the issue to the reporter.
{
"type": "AssignToReporterFunction"
}
Note: This post function can be included once in a transition.
Clear field value function#
A post function that clears the value from a field.
{
"type": "ClearFieldValuePostFunction",
"configuration": {
"fieldId": "assignee"
}
}
fieldId The ID of the field.
Copy value from other field function#
A post function that copies the value of one field to another, either within an issue or from parent to subtask.
{
"type": "CopyValueFromOtherFieldPostFunction",
"configuration": {
"sourceFieldId": "assignee",
"destinationFieldId": "creator",
"copyType": "same"
}
}
sourceFieldId The ID of the source field.
destinationFieldId The ID of the destination field.
copyType Use same to copy the value from a field inside the issue, or parent to copy the value from the parent issue.
Create Crucible review workflow function#
A post function that creates a Crucible review for all unreviewed code for the issue.
{
"type": "CreateCrucibleReviewWorkflowFunction"
}
Note: This post function can be included once in a transition.
Set issue security level based on user's project role function#
A post function that sets the issue's security level if the current user has a project role.
{
"type": "SetIssueSecurityFromRoleFunction",
"configuration": {
"projectRole": {
"id":"10002"
},
"issueSecurityLevel": {
"id":"10000"
}
}
}
projectRole An object containing the ID of the project role.
issueSecurityLevel OPTIONAL. The object containing the ID of the security level. If not passed, then the security level is set to none.
Trigger a webhook function#
A post function that triggers a webhook.
{
"type": "TriggerWebhookFunction",
"configuration": {
"webhook": {
"id": "1"
}
}
}
webhook An object containing the ID of the webhook listener to trigger.
Update issue custom field function#
A post function that updates the content of an issue custom field.
{
"type": "UpdateIssueCustomFieldPostFunction",
"configuration": {
"mode": "append",
"fieldId": "customfield_10003",
"fieldValue": "yikes"
}
}
mode Use replace to override the field content with fieldValue or append to add fieldValue to the end of the field content.
fieldId The ID of the field.
fieldValue The update content.
Update issue field function#
A post function that updates a simple issue field.
{
"type": "UpdateIssueFieldFunction",
"configuration": {
"fieldId": "assignee",
"fieldValue": "5f0c277e70b8a90025a00776"
}
}
fieldId The ID of the field. Allowed field types:
assignee
description
environment
priority
resolution
summary
timeoriginalestimate
timeestimate
timespent
fieldValue The update value.
If the fieldId is assignee, the fieldValue should be one of these values:
an account ID.
automatic.
a blank string, which sets the value to unassigned.

Connect rules#

Connect rules are conditions, validators, and post functions of a transition that are registered by Connect apps. To create a rule registered by the app, the app must be enabled and the rule's module must exist.
{
"type": "appKey__moduleKey",
"configuration": {
"value":"{"isValid":"true"}"
}
}
type A Connect rule key in a form of appKey__moduleKey.
value The stringified JSON configuration of a Connect rule.

Forge rules#

Forge transition rules are not yet supported.
Permissions required: Administer Jira global permission.
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'http://jira.local:8080/jira/rest//rest/api/3/workflow' \
--header 'Content-Type: application/json' \
--data-raw '{
    "description": "This is a workflow used for Stories and Tasks",
    "name": "Workflow 1",
    "statuses": [
        {
            "id": "1",
            "properties": {
                "jira.issue.editable": "false"
            }
        },
        {
            "id": "2"
        },
        {
            "id": "3"
        }
    ],
    "transitions": [
        {
            "from": [],
            "name": "Created",
            "to": "1",
            "type": "initial"
        },
        {
            "from": [
                "1"
            ],
            "name": "In progress",
            "properties": {
                "custom-property": "custom-value"
            },
            "rules": {
                "conditions": {
                    "conditions": [
                        {
                            "type": "RemoteOnlyCondition"
                        },
                        {
                            "configuration": {
                                "groups": [
                                    "developers",
                                    "qa-testers"
                                ]
                            },
                            "type": "UserInAnyGroupCondition"
                        }
                    ],
                    "operator": "AND"
                },
                "postFunctions": [
                    {
                        "type": "AssignToCurrentUserFunction"
                    }
                ]
            },
            "screen": {
                "id": "10001"
            },
            "to": "2",
            "type": "directed"
        },
        {
            "name": "Completed",
            "rules": {
                "postFunctions": [
                    {
                        "configuration": {
                            "fieldId": "assignee"
                        },
                        "type": "ClearFieldValuePostFunction"
                    }
                ],
                "validators": [
                    {
                        "configuration": {
                            "parentStatuses": [
                                {
                                    "id": "3"
                                }
                            ]
                        },
                        "type": "ParentStatusValidator"
                    },
                    {
                        "configuration": {
                            "permissionKey": "ADMINISTER_PROJECTS"
                        },
                        "type": "PermissionValidator"
                    }
                ]
            },
            "to": "3",
            "type": "global"
        }
    ]
}'
Response Response Example
201 - Success
{
  "name": "Workflow 1",
  "entityId": "53945d2e-4863-4409-a11c-cf4c1845ec84"
}

Request

Body Params application/json
The details of a workflow.
description
string 
optional
The description of the workflow. The maximum length is 1000 characters.
name
string 
required
The name of the workflow. The name must be unique. The maximum length is 255 characters. Characters can be separated by a whitespace but the name cannot start or end with a whitespace.
statuses
array[object (CreateWorkflowStatusDetails) {2}] 
required
The statuses of the workflow. Any status that does not include a transition is added to the workflow without a transition.
id
string 
required
The ID of the status.
properties
object 
optional
The properties of the status.
transitions
array[object (CreateWorkflowTransitionDetails) {8}] 
required
The transitions of the workflow. For the request to be valid, these transitions must:
include one initial transition.
not use the same name for a global and directed transition.
have a unique name for each global transition.
have a unique 'to' status for each global transition.
have unique names for each transition from a status.
not have a 'from' status on initial and global transitions.
have a 'from' status on directed transitions.
All the transition statuses must be included in statuses.
description
string 
optional
The description of the transition. The maximum length is 1000 characters.
from
array[string]
optional
The statuses the transition can start from.
name
string 
required
The name of the transition. The maximum length is 60 characters.
properties
object 
optional
The properties of the transition.
rules
object 
write-onlyoptional
The rules of the transition.
screen
object 
write-onlyoptional
The screen of the transition.
to
string 
required
The status the transition goes to.
type
enum<string> 
required
The type of the transition.
Allowed values:
globalinitialdirected
Examples

Responses

🟢201Returned if the workflow is created.
application/json
Body
The classic workflow identifiers.
entityId
string 
optional
The entity ID of the workflow.
name
string 
required
The name of the workflow.
🟠400Returned if the request is not valid.
🟠401Returned if the authentication credentials are incorrect or missing.
🟠403Returned if the user does not have the required permissions.
🟠404Returned if one or more statuses is not found.
Modified at 2023-07-13 03:27:27
Previous
Get all workflows
Next
Get workflows paginated
Built with