Jira Workflow: Statuses, Transitions and the Resolution Trap

On this page
  1. Two real workflows, taken apart
  2. Status categories: the three colours every report reads
  3. Transitions: one-way, and sometimes a loop
  4. Rules: who may move, what must be filled in, what Jira changes
  5. The Resolution trap
  6. Who can change a workflow, and the limits
  7. Before you publish a workflow change
  8. Seeing the workflow on a board
  9. Sources

The board says Done. The “Open work items” filter still lists the ticket, the Created vs Resolved chart does not count it, and the help desk’s SLA keeps ticking. Nobody touched the ticket after it was closed. The workflow closed it without saying why.

We read two workflows from our Jira Cloud site through the REST API on 5 November 2026, every status, transition and rule, and moved test work items through them to see what each step really does.

Short answer: a Jira workflow is a set of statuses (the steps), transitions (the one-way moves between them) and rules on those transitions (who may move, what must be filled in, what Jira changes). Every status belongs to one of three categories, To do, In progress or Done, which boards and reports use. The trap: Done is a status, but “resolved” is the Resolution field. On our site 4 of 12 work items in a Done status had no Resolution, so Jira still counted them as open.

Two real workflows, taken apart

The software team’s workflow (space PAY, “Software Simplified Workflow”) has five statuses and five global transitions: any work item can go to any status. The rules sit on the transitions:

TransitionFromToStatus categoryRule on the transition
To Doany statusTo DoTo dopost function: clears Resolution
In Progressany statusIn ProgressIn progresspost function: clears Resolution
In Reviewany statusIn ReviewIn progresspost function: clears Resolution
QAany statusQAIn progresspost function: clears Resolution
Doneany statusDoneDonevalidator: Team Checklist “checklist is done”; post function: sets Resolution to Done
Create(start)To DoTo dovalidator: Create work items permission

The help desk’s workflow (space HELP, “Service Request Fulfilment”) has eight statuses and directed transitions: each one starts from named statuses only.

TransitionFromToRule on the transition
Create issue(start)Waiting for supportvalidator: Create work items permission
Respond to customerWaiting for support, PendingWaiting for customerscreen
Respond to supportWaiting for customerWaiting for supportnone
EscalateWaiting for supportEscalatedscreen
PendingWaiting for support, In ProgressPendingscreen
Cancel requestWaiting for support, Waiting for customer, Pending, In ProgressCanceledscreen
Resolve this issueopen statusesResolvedscreen with the Resolution field; no post function
Back to in progressResolvedIn Progressscreen; post function: clears Resolution

Resolved and Canceled both lead on to Closed, the third status in the Done category.

This is the same help desk workflow in Jira’s workflow editor:

The two styles answer different questions. Global transitions keep a small team fast: drag a card anywhere. Directed transitions encode a process: a request cannot reach Closed without being resolved or canceled first, and “Respond to support” only exists while the team waits for the customer.

Status categories: the three colours every report reads

Atlassian’s rule: “All statuses, even custom statuses you create yourself, must belong to one of three status categories – To do, In progress, or Done. These categories are represented by the colors grey, blue, and green respectively”. In PAY, In Review and QA are both In progress, so a board shows them blue and a “done this week” search that uses statusCategory = Done ignores them, which is what you want.

Two consequences people miss. Renaming a status renames it everywhere: “the name will be updated in every workflow (and every space) that uses it.” And “Reports are based on status names, so renaming statuses can also impact how reports are displayed.”

Transitions: one-way, and sometimes a loop

“For a work item to move between two statuses, a transition must exist. Transitions are one-way. To move a work item back and forth, you need two separate transitions.” That is why the help desk needs both “Respond to customer” and “Respond to support”.

Transitions “can also loop, so the work item’s status stays the same”, which is how admins add a button that opens a screen or runs a rule without moving the item. PAY’s global transitions behave the same way: on a work item in To Do, Jira still offered the To Do transition.

Rules: who may move, what must be filled in, what Jira changes

Jira calls them conditions, validators and post functions. On our two workflows:

  • A validator on Create checks the Create work items permission.
  • A validator from our Team Checklist app sits on PAY’s Done transition. It blocks Done until every checklist item is ticked. Our test item had no checklist, and the move went through.
  • Post functions on PAY set the Resolution to Done when an item enters Done and clear it on every other transition.

The help desk’s “Resolve this issue” has no post function. It relies on its screen asking for the Resolution. That difference is the whole next section.

The Resolution trap

Chart titled Done is a status. Resolved is a field. Four kinds of transition and what each did to the Resolution field on our test site: a transition with a rule set Resolution equals Done (PAY-30 from To Do to Done) gave Resolution Done; a transition with a rule clear Resolution (PAY-30 from Done to In Progress) left it empty, as intended; a transition with a screen called by the REST API (HELP-15 to Resolved, no field sent) left it empty; and a transition with no Resolution rule at all (the JSM default Mark as done) leaves it empty. When the status is Done but Resolution is empty: SLA timers that stop on Resolution Set keep running, Created vs resolved counts the item as unresolved (our gadget showed 15 created, 3 resolved), Assigned to me and other unresolved lists still show it, and on our site 4 of 12 work items in a Done status had no Resolution. Source: Jira Cloud REST API on our test site, 5 November 2026, and Atlassian's knowledge base article on the Resolution field.

We moved test item PAY-30 from To Do to Done and back. The history shows Jira doing exactly what the rules say: Resolution set to Done, then cleared.

Then we resolved help desk request HELP-15 through the transition API without sending a Resolution. Jira accepted it: status Resolved, Resolution empty, and both SLA timers still running. Atlassian’s knowledge base explains why: “It is still possible to transition the issue to Resolve without any resolution using Jira Cloud API directly. Issue transition API is not expected to respect the screens.”

Why it matters, in Atlassian’s words: “Jira considers that the lifecycle of an issue has come to an end when the “Resolution” field has a value.” Tickets “will only appear in the ‘resolved’ series of reports, such as ‘Created vs Resolved,’ if the “Resolution” field is set, regardless of the ticket’s status.”

Run the two checks from the same article. Both should return nothing:

statusCategory = Done AND resolution IS EMPTY
statusCategory != Done AND resolution IS NOT EMPTY

On our site the first returned 4 of 12 work items, all in the help desk; the second returned none. The fix is a post function on every transition into a Done status that sets the Resolution, and one on every transition out that clears it, like PAY has. Atlassian’s advice is to let either the workflow or an automation rule manage the Resolution, “not both, to prevent conflicts.” Rules that move work, and what each costs in steps, are in our Jira automation examples. What the missing Resolution does to SLA timers is in our Jira SLA examples.

Who can change a workflow, and the limits

  • In company-managed spaces: “Site admins” and “Users with edit workflows permission for the space”. In team-managed spaces: site admins and space admins.
  • Built-in workflows are read-only: “you can copy them and use them as a base to create your own.”
  • An active workflow can be edited and published with Update workflow, but its name cannot change while it is in use.
  • Our site’s Workflows page showed: “We’ve introduced a limit of 200 statuses per workflow. These limits will be enforced starting in September 2026.”
  • Rovo can explain a workflow: type /explain-workflow in Rovo Chat. Atlassian notes that it can read validator rules “including rules enabled by third-party apps”, parameters included.

Before you publish a workflow change

  1. Every status you add has the right category. In Review in Done would close half your sprint.
  2. Every transition into a Done status sets the Resolution, and every way back clears it.
  3. Every status can be left. A status with no outgoing transition is where work goes to die.
  4. Required fields on a transition screen are also required for scripts: add a validator, because the API skips screens.
  5. Run the two JQL checks after publishing, and again after the next import.

Seeing the workflow on a board

A workflow is easier to follow as columns. Kanban Status Board shows a space’s work items in one column per status and makes a drag run the real workflow transition, as the user: statuses the item cannot reach are blocked while dragging, and required fields are named. Work types that share the same statuses share one board.

To stop items reaching Done half-finished, Team Checklist adds the validator we found on PAY: “Team checklist is done” blocks a transition until every item is ticked, a real Definition of Done. Both apps are free for up to 10 users.

What a single ticket goes through on its way is in Jira ticket explained, and the epic, story and sub-task rules are in Jira epic vs story vs task. How columns map to these statuses on a board, and what a WIP limit does there, is in our Jira kanban board guide.

Sources

Frequently asked questions

What is a Jira workflow?

The path a work item takes from created to finished. Atlassian defines it as "a set of statuses and transitions that a work item moves through". Statuses are the steps (To Do, In Review, Done), transitions are the moves between them, and rules on the transitions decide who may move an item, what must be filled in, and what Jira changes on the way.

What are the three parts of a Jira workflow?

Statuses, transitions and rules. The workflow editor's toolbar has exactly those three buttons: Add status, Add Transition, Add Rule. Every status also belongs to one of three status categories (To do, In progress, Done), which is what boards and reports group by.

What are typical workflow steps in Jira?

A software team's workflow on our test site has five: To Do, In Progress, In Review, QA, Done. A service desk workflow has more, because the customer is part of it: Waiting for support, Waiting for customer, Pending, In Progress, Escalated, then Resolved, Canceled or Closed.

What is the difference between a status and a resolution?

The status says where a work item is; the Resolution says why it ended (Done, Won't Do, Duplicate). Atlassian: "Jira considers that the lifecycle of an issue has come to an end when the Resolution field has a value." An item in Done with no resolution still counts as unresolved in filters, reports and SLAs.

Can I edit the default Jira workflow?

Not the built-in ones: "You can't edit the built-in workflows, but you can copy them and use them as a base to create your own." In company-managed spaces site admins and people with the edit workflows permission can edit; in team-managed spaces site and space admins can.

How many statuses can a Jira workflow have?

Our site's Workflows page showed a notice in November 2026: "We've introduced a limit of 200 statuses per workflow. These limits will be enforced starting in September 2026." Far fewer is better: every status is a column, a filter value and a place work can get stuck.

Keep reading