Jira
HomeLink
Multiple Menus
  • Link1
  • Link2
HomeLink
Multiple Menus
  • Link1
  • Link2
  1. Workflows
  • Announcement banner
    • Get announcement banner configuration
      GET
    • Update announcement banner configuration
      PUT
  • Issue custom field configuration (apps)
    • Bulk get custom field configurations
      POST
    • Get custom field configurations
      GET
    • Update custom field configurations
      PUT
  • Issue custom field values (apps)
    • Update custom fields
      POST
    • Update custom field value
      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 application role
  • Issue attachments
    • Get attachment content
    • Get Jira attachment settings
    • Get attachment thumbnail
    • Delete attachment
    • Get attachment metadata
    • Get all metadata for an expanded attachment
    • Get contents metadata for an expanded attachment
    • Add attachment
  • 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 bulk operations
    • Bulk delete issues
    • Get bulk editable fields
    • Bulk edit issues
    • Bulk move issues
    • Get available transitions
    • Bulk transition issue statuses
    • Bulk unwatch issues
    • Bulk watch issues
    • Get bulk issue operation progress
  • Issues
    • Bulk fetch changelogs
    • Get events
    • Create issue
    • Archive issue(s) by JQL
    • Archive issue(s) by issue ID/key
    • Bulk create issue
    • Bulk fetch issues
    • Get create issue metadata
    • Get create metadata issue types for a project
    • Get create field metadata for a project and issue type id
    • Get issue limit report
    • Unarchive issue(s) by issue keys/ID
    • Delete issue
    • Get issue
    • Edit issue
    • Assign issue
    • Get changelogs
    • Get changelogs by IDs
    • Get edit issue metadata
    • Send notification for issue
    • Get transitions
    • Transition issue
    • Export archived issue(s)
  • Classification levels
    • Get all classification levels
  • Issue comments
    • Get comments by IDs
    • Get comments
    • Add comment
    • Delete comment
    • Get comment
    • Update comment
  • Issue comment properties
    • Get comment property keys
    • Delete comment property
    • Get comment property
    • Set comment property
  • Project components
    • Find components for projects
    • Create component
    • Delete component
    • Get component
    • Update 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)
    • Create custom field options (context)
    • Update custom field options (context)
    • Reorder custom field options (context)
    • Delete custom field options (context)
    • Replace custom field options
  • Dashboards
    • Get all dashboards
    • Create dashboard
    • Bulk edit dashboards
    • Get available gadgets
    • Search for dashboards
    • Get gadgets
    • Add gadget to dashboard
    • Remove gadget from dashboard
    • Update gadget on dashboard
    • Get dashboard item property keys
    • Delete dashboard item property
    • Get dashboard item property
    • Set dashboard item property
    • Delete dashboard
    • Get dashboard
    • Update dashboard
    • Copy dashboard
  • App data policies
    • Get data policy for the workspace
    • Get data policy for projects
  • Jira expressions
    • Analyse Jira expression
    • Currently being removed. Evaluate Jira expression
    • Evaluate Jira expression using enhanced search API
  • 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 associations
    • Remove associations
    • Create associations
  • 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
    • Delete custom field context
    • Update 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
    • Delete screen
    • Update 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
    • Delete issue field option
    • Get issue field option
    • Update issue field option
    • Replace issue field option
  • Issue field configurations
    • Get all field configurations
    • Create field configuration
    • Delete field configuration
    • Update 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
    • Delete field configuration scheme
    • Update 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
    • Delete filter
    • Get filter
    • Update filter
    • Reset columns
    • Get columns
    • Set columns
    • Remove filter as favorite
    • Add filter as favorite
    • Change filter owner
  • Filter sharing
    • Get default share scope
    • Set default share scope
    • Get share permissions
    • Add share permission
    • Delete share permission
    • Get share permission
  • Groups
    • Remove group
    • Get group
    • Create group
    • Bulk get groups
    • Get users from group
    • Remove user from group
    • Add user to 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
    • Currently being removed. Search for issues using JQL (GET)
    • Currently being removed. Search for issues using JQL (POST)
    • Count issues using JQL
    • Search for issues using JQL enhanced search (GET)
    • Search for issues using JQL enhanced search (POST)
  • Issue properties
    • Bulk set issues properties by list
    • Bulk set issue properties by issue
    • Bulk delete issue property
    • Bulk set issue property
    • Get issue property keys
    • Delete issue property
    • Get issue property
    • Set issue property
  • Issue watchers
    • Get is watching issue bulk
    • Delete watcher
    • Get issue watchers
    • Add watcher
  • Issue remote links
    • Delete remote issue link by global ID
    • Get remote issue links
    • Create or update remote issue link
    • Delete remote issue link by ID
    • Get remote issue link by ID
    • Update remote issue link by ID
  • Issue votes
    • Delete vote
    • Get votes
    • Add vote
  • Issue worklogs
    • Bulk delete worklogs
    • Get issue worklogs
    • Add worklog
    • Bulk move worklogs
    • Delete worklog
    • Get worklog
    • Update worklog
    • Get IDs of deleted worklogs
    • Get worklogs
    • Get IDs of updated worklogs
  • Issue worklog properties
    • Get worklog property keys
    • Delete worklog property
    • Get worklog property
    • Set worklog property
  • Issue links
    • Create issue link
    • Delete issue link
    • Get issue link
  • Issue link types
    • Get issue link types
    • Create issue link type
    • Delete issue link type
    • Get issue link type
    • Update 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
    • Remove issue security level
    • Update issue security level
    • Add issue security level members
    • Remove member from issue security level
  • Issue security level
    • Get issue security level members by issue security scheme
    • Get issue security level
  • Issue types
    • Get all issue types for user
    • Create issue type
    • Get issue types for project
    • Delete issue type
    • Get issue type
    • Update issue type
    • Get alternative issue types
    • Load issue type avatar
  • Issue type properties
    • Get issue type property keys
    • Delete issue type property
    • Get issue type property
    • Set 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
    • Delete issue type scheme
    • Update 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
    • Delete issue type screen scheme
    • Update 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)
    • Get precomputations by ID (apps)
  • Labels
    • Get all labels
  • Permissions
    • Get my permissions
    • Get all permissions
    • Get bulk permissions
    • Get permitted projects
  • Myself
    • Delete preference
    • Get preference
    • Set preference
    • Get locale
    • Set 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
    • Delete permission scheme
    • Get permission scheme
    • Update permission scheme
    • Get permission scheme grants
    • Create permission grant
    • Delete permission scheme grant
    • Get permission scheme grant
  • Plans
    • Get plans paginated
    • Create plan
    • Get plan
    • Update plan
    • Archive plan
    • Duplicate plan
    • Trash plan
  • Teams in plan
    • Get teams in plan paginated
    • Add Atlassian team to plan
    • Remove Atlassian team from plan
    • Get Atlassian team in plan
    • Update Atlassian team in plan
    • Create plan-only team
    • Delete plan-only team
    • Get plan-only team
    • Update plan-only team
  • Issue priorities
    • Get priorities
    • Create priority
    • Set default priority
    • Move priorities
    • Search priorities
    • Delete priority
    • Get priority
    • Update priority
  • Priority schemes
    • Get priority schemes
    • Create priority scheme
    • Suggested priorities for mappings
    • Get available priorities by priority scheme
    • Delete priority scheme
    • Update priority scheme
    • Get priorities by priority scheme
    • Get projects by priority scheme
  • Projects
    • Get all projects
    • Create project
    • Get recent projects
    • Get projects paginated
    • Delete project
    • Get project
    • Update 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 templates
    • Create custom project
  • 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 classification levels
    • Remove the default data classification level from a project
    • Get the default data classification level of a project
    • Update the default data classification level of a project
  • Project features
    • Get project features
    • Set project feature state
  • Project properties
    • Get project property keys
    • Delete project property
    • Get project property
    • Set 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
    • Delete project role
    • Get project role by ID
    • Partial update project role
    • Fully update project role
  • Project role actors
    • Delete actors from project role
    • Add actors to project role
    • Set actors for project role
    • Delete default actors from project role
    • Get default actors for project role
    • Add default actors to project role
  • Project versions
    • Get project versions paginated
    • Get project versions
    • Create version
    • Delete version
    • Get version
    • Update version
    • Merge versions
    • Move version
    • Get version's related issues count
    • Get related work
    • Create related work
    • Update related work
    • Delete and replace version
    • Get version's unresolved issues count
    • Delete related work
  • 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
    • Delete project category
    • Get project category by ID
    • Update project category
  • Project key and name validation
    • Validate project key
    • Get valid project key
    • Get valid project name
  • Issue redaction
    • Redact
    • Get redaction status
  • Issue resolutions
    • Get resolutions
    • Create resolution
    • Set default resolution
    • Move resolutions
    • Search resolutions
    • Delete resolution
    • Get resolution
    • Update resolution
  • Screen tabs
    • Get bulk screen tabs
    • Get all screen tabs
    • Create screen tab
    • Delete screen tab
    • Update 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
    • Delete screen scheme
    • Update 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 delete Statuses
    • Bulk get statuses
    • Bulk create statuses
    • Bulk update statuses
    • Search statuses paginated
    • Get issue type usages by status and project
    • Get project usages by status
    • Get workflow usages by status
  • Tasks
    • Get task
    • Cancel task
  • UI modifications (apps)
    • Get UI modifications
    • Create UI modification
    • Delete UI modification
    • Update UI modification
  • Users
    • Delete user
    • Get user
    • Create user
    • Bulk get users
    • Get account IDs for users
    • Reset user default columns
    • Get user default columns
    • Set 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
  • usernavproperties
    • Get user nav property
    • Set user nav property
  • User properties
    • Get user property keys
    • Delete user property
    • Get user property
    • Set user property
  • Webhooks
    • Delete webhooks by ID
    • Get dynamic webhooks for app
    • Register dynamic webhooks
    • Get failed webhooks
    • Extend webhook life
  • Workflows
    • Get all workflows
      GET
    • Create workflow
      POST
    • Get workflows paginated
      GET
    • Delete inactive workflow
      DELETE
    • Get issue types in a project that are using a given workflow
      GET
    • Get projects using a given workflow
      GET
    • Get workflow schemes which are using a given workflow
      GET
    • Bulk get workflows
      POST
    • Get available workflow capabilities
      GET
    • Bulk create workflows
      POST
    • Validate create workflows
      POST
    • Get the user's default workflow editor
      GET
    • Search workflows
      GET
    • 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
    • Delete workflow transition property
    • Get workflow transition properties
    • Create workflow transition property
    • Update workflow transition property
  • Workflow schemes
    • Get all workflow schemes
    • Create workflow scheme
    • Bulk get workflow schemes
    • Update workflow scheme
    • Get required status mappings for workflow scheme update
    • Delete workflow scheme
    • Get workflow scheme
    • Classic update workflow scheme
    • Delete default workflow
    • Get default workflow
    • Update default workflow
    • Delete workflow for issue type in workflow scheme
    • Get workflow for issue type in workflow scheme
    • Set workflow for issue type in workflow scheme
    • Delete issue types for workflow in workflow scheme
    • Get issue types for workflows in workflow scheme
    • Set issue types for workflow in workflow scheme
    • Get projects which are using a given workflow scheme
  • Workflow scheme project associations
    • Get workflow scheme project associations
    • Assign workflow scheme to project
  • Workflow scheme drafts
    • Create draft workflow scheme
    • Delete draft workflow scheme
    • Get draft workflow scheme
    • Update draft workflow scheme
    • Delete draft default workflow
    • Get draft default workflow
    • Update draft default workflow
    • Delete workflow for issue type in draft workflow scheme
    • Get workflow for issue type in draft workflow scheme
    • Set workflow for issue type in draft workflow scheme
    • Publish draft workflow scheme
    • Delete issue types for workflow in draft workflow scheme
    • Get issue types for workflows in draft workflow scheme
    • Set issue types for workflow in workflow scheme
  • App properties
    • Get app properties
    • Delete app property
    • Get app property
    • Set app property
    • Delete app property (Forge)
    • Set app property (Forge)
  • Dynamic modules
    • Remove modules
    • Get modules
    • Register modules
  • App migration
    • Bulk update custom field value
    • Bulk update entity properties
    • Get workflow transition rule configurations
  • Service Registry
    • Retrieve the attributes of service registries
  1. Workflows

Create workflow

Deprecated
POST
/rest/api/3/workflow
This will be removed on February 1, 2026; use Bulk create workflows to create both team and company-managed scoped 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.

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 (deprecated)#
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 (deprecated)#
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 '/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
{"entityId":"d7178e8d-bf6c-4c0c-9e90-758a0b965b67","name":"Workflow 1"}

Request

Body Params application/json

Examples

Responses

🟢201Created
application/json
Returned if the workflow is created.
Body

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Record Not Found
Modified at 2025-07-16 07:18:01
Previous
Get all workflows
Next
Get workflows paginated
Built with