• Announcement banner
  • App data policies (EAP)
  • Application roles
  • Audit records
  • Avatars
  • Classification levels
  • Dashboards
  • Filters
  • Filter sharing
  • Group and user picker
  • Groups
  • Issues
  • UI modifications (apps)
  • Issue attachments
  • Issue comments
  • Issue comment properties
  • Issue fields
  • Issue field configurations
  • Issue custom field contexts
  • Issue custom field options
  • Issue custom field options (apps)
  • Issue custom field values (apps)
  • Issue custom field configuration (apps)
  • Issue navigator settings
  • Issue notification schemes
  • Issue priorities
  • Issue properties
  • Issue resolutions
  • Issue security level
  • Issue security schemes
  • Issue types
  • Issue type schemes
  • Issue type screen schemes
  • Issue type properties
  • Issue votes
  • Issue watchers
  • Issue worklogs
  • Issue worklog properties
  • Jira expressions
  • Jira settings
  • JQL
  • JQL functions (apps)
  • Labels
  • License metrics
  • Myself
  • Permissions
  • Permission schemes
  • Projects
  • Project avatars
  • Project categories
  • Project classification levels
  • Project components
  • Project email
  • Project features
  • Project key and name validation
  • Project permission schemes
  • Project properties
  • Project roles
  • Project role actors
  • Project types
  • Project versions
  • Screens
  • Screen tabs
  • Screen tab fields
  • Screen schemes
  • Server info
  • Status
  • Tasks
  • Time tracking
  • Users
  • User properties
  • Webhooks
  • Workflows
  • Workflow transition rules
  • Workflow schemes
  • Workflow scheme project associations
  • Workflow scheme drafts
  • Workflow statuses
  • Workflow status categories
  • Workflow transition properties
  • App properties
  • Dynamic modules
  • App migration
  • Service Registry
Cloud
Jira Cloud platform / Reference / REST API v2

Workflow transition rules

Postman Collection
OpenAPI

This resource represents workflow transition rules. Workflow transition rules define a Connect or a Forge app routine, such as a workflow post functions that is executed in association with the workflow. Use it to read and modify configuration of workflow transition rules.

GET

Get workflow transition rule configurations

Returns a paginated list of workflows with transition rules. The workflows can be filtered to return only those containing workflow transition rules:

  • of one or more transition rule types, such as workflow post functions.
  • matching one or more transition rule keys.

Only workflows containing transition rules created by the calling Connect or Forge app are returned.

Due to server-side optimizations, workflows with an empty list of rules may be returned; these workflows can be ignored.

Permissions required: Only Connect or Forge apps can use this operation.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredREAD

ClassicRECOMMENDED:manage:jira-configuration
Granular:read:workflow:jira

Request

Query parameters

startAt

integer

maxResults

integer

types

array<string>

Required
keys

array<string>

workflowNames

array<string>

withTags

array<string>

draft

boolean

expand

string

Responses

Returned if the request is successful.

application/json

PageBeanWorkflowTransitionRules

A page of items.

GET/rest/api/2/workflow/rule/config
1 2 3 4 5 6 7 8 9 10 11 12 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import api, { route } from "@forge/api"; const response = await api.asUser().requestJira(route`/rest/api/2/workflow/rule/config?types={types}`, { headers: { 'Accept': 'application/json' } }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 { "isLast": true, "maxResults": 10, "startAt": 0, "total": 1, "values": [ { "workflowId": { "name": "My Workflow name", "draft": false }, "postFunctions": [ { "id": "b4d6cbdc-59f5-11e9-8647-d663bd873d93", "key": "postfunction-key", "configuration": { "value": "{ \"color\": \"red\" }", "disabled": false, "tag": "Sample tag" }, "transition": { "id": 1, "name": "Open" } } ], "conditions": [ { "id": "d663bd873d93-59f5-11e9-8647-b4d6cbdc", "key": "condition-key", "configuration": { "value": "{ \"size\": \"medium\" }", "disabled": false, "tag": "Another tag" }, "transition": { "id": 1, "name": "Open" } } ], "validators": [ { "id": "11e9-59f5-b4d6cbdc-8647-d663bd873d93", "key": "validator-key", "configuration": { "value": "\"{ \\\"shape\\\": \\\"square\\\" }\"", "disabled": false }, "transition": { "id": 1, "name": "Open" } } ] } ] }
PUT

Update workflow transition rule configurations

Updates configuration of workflow transition rules. The following rule types are supported:

Only rules created by the calling Connect or Forge app can be updated.

To assist with app migration, this operation can be used to:

Rules are enabled if the disabled parameter is not provided.

Permissions required: Only Connect or Forge apps can use this operation.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredADMIN

ClassicRECOMMENDED:manage:jira-configuration
Granular:write:workflow:jira

Request

Request bodyapplication/json

workflows

array<WorkflowTransitionRules>

Required

Responses

Returned if the request is successful.

application/json

WorkflowTransitionRulesUpdateErrors

Details of any errors encountered while updating workflow transition rules.

PUT/rest/api/2/workflow/rule/config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import api, { route } from "@forge/api"; var bodyData = `{ "workflows": [ { "conditions": [ { "configuration": { "disabled": false, "tag": "Another tag", "value": "{ \"size\": \"medium\" }" }, "id": "d663bd873d93-59f5-11e9-8647-b4d6cbdc" } ], "postFunctions": [ { "configuration": { "disabled": false, "tag": "Sample tag", "value": "{ \"color\": \"red\" }" }, "id": "b4d6cbdc-59f5-11e9-8647-d663bd873d93" } ], "validators": [ { "configuration": { "disabled": false, "value": "{ \"shape\": \"square\" }" }, "id": "11e9-59f5-b4d6cbdc-8647-d663bd873d93" } ], "workflowId": { "draft": false, "name": "My Workflow name" } } ] }`; const response = await api.asUser().requestJira(route`/rest/api/2/workflow/rule/config`, { method: 'PUT', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: bodyData }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 { "updateResults": [ { "workflowId": { "name": "Workflow with one rule not updated", "draft": false }, "ruleUpdateErrors": { "example-rule-id": [ "The rule with this id does not exist: example-rule-id" ] }, "updateErrors": [] }, { "workflowId": { "name": "Workflow with all rules successfully updated", "draft": true }, "ruleUpdateErrors": {}, "updateErrors": [] }, { "workflowId": { "name": "Non-existing workflow", "draft": false }, "ruleUpdateErrors": {}, "updateErrors": [ "Workflow not found: WorkflowIdBean{name=Non-existing workflow, draft=false}" ] } ] }
PUT

Delete workflow transition rule configurations

Deletes workflow transition rules from one or more workflows. These rule types are supported:

Only rules created by the calling Connect app can be deleted.

Permissions required: Only Connect apps can use this operation.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredADMIN

Request

Request bodyapplication/json

workflows

array<WorkflowTransitionRulesDetails>

Required

Responses

Returned if the request is successful.

application/json

WorkflowTransitionRulesUpdateErrors

Details of any errors encountered while updating workflow transition rules.

PUT/rest/api/2/workflow/rule/config/delete
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ // // This API resource doesn't support Oauth2 (3LO). See alternate authorization methods: // https://developer.atlassian.com/cloud/jira/platform/rest/v3/#authentication import api, { route } from "@forge/api"; var bodyData = `{ "workflows": [ { "workflowId": { "draft": false, "name": "Internal support workflow" }, "workflowRuleIds": [ "b4d6cbdc-59f5-11e9-8647-d663bd873d93", "d663bd873d93-59f5-11e9-8647-b4d6cbdc", "11e9-59f5-b4d6cbdc-8647-d663bd873d93" ] } ] }`; const response = await api.requestJira(route`/rest/api/2/workflow/rule/config/delete`, { method: 'PUT', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: bodyData }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 { "updateResults": [ { "workflowId": { "name": "Workflow with one rule not updated", "draft": false }, "ruleUpdateErrors": { "example-rule-id": [ "The rule with this id does not exist: example-rule-id" ] }, "updateErrors": [] }, { "workflowId": { "name": "Workflow with all rules successfully updated", "draft": true }, "ruleUpdateErrors": {}, "updateErrors": [] }, { "workflowId": { "name": "Non-existing workflow", "draft": false }, "ruleUpdateErrors": {}, "updateErrors": [ "Workflow not found: WorkflowIdBean{name=Non-existing workflow, draft=false}" ] } ] }

Rate this page: