Building Jira workflows can be overwhelming. As Atlassian Platinum Solution Partners for over a decade, we at Praecipio have spent a lot of time building workflows (seriously, A LOT).
One piece of workflow functionality that we often see either ignored or abused are global transitions. A global transition in Jira is a transition to a workflow status that is able to be triggered regardless of where the issue is in the workflow. These can be very powerful, and we use them in some capacity in almost all of our workflows. However, there are a few things that we put into place to make these transitions easier to use.
When do I use a global transition?
While these are not appropriate in all situations, we recommend using them in situations where users should be able to move to the status from anywhere else in the workflow. The most common use cases are "On Hold" or "Withdrawn" transitions, where users should be able to place the issue there regardless of where it is in the life cycle. It is understandable that users shy away from global transitions, as without specific configuration they have the potential to be confusing to end users and open up the workflow in ways we may not want. Keep in mind that global transitions should not be overused - using direct transitions allows for processes to be enforced, while global transitions are great options when you need to remove an issue from its normal flow.
With that in mind, we recommend the following configuration on all global transitions:
How to configure a global transition
Opsbar-sequence is a transition property that allows you to determine the order of all transitions in your workflow. To use it, you assign numbers to each transition, and Jira will numerically order them on the issue view.
Global transitions generally belong at the end of the list, so we usually give them a high number (100 or 500) so no matter how robust your workflow gets, they're always at the end of the list of available transitions.
Workflow conditions prevent transitions from showing when certain criteria are not met. As a best practice, we always add a condition so the transition is not available from the status it's going to – e.g. if we have a "Withdraw" global transition that goes to Closed, the condition should be "Status != Closed". If this condition isn't present you'll see the global transition available when you're in the status it's going to.
One of the biggest issues that we see with global transitions is around resolution. Jira resolutions are an extremely valuable tool, and if you don't configure your global transitions correctly, they can affect your data integrity. So,
If the global transition is moving into a "Done" status (e.g. Closed or Withdrawn), add
- A post function that automatically sets the Resolution, OR
- A transition screen with resolution that prompts users to enter a resolution before the transition
If the global transition is NOT moving into a "Done" status, add
- A post function that clears resolution
With the above configuration, your workflows will be more user friendly while also ensuring that your Jira data stays clean.
Still need more help with your workflows? Praecipio is an Atlassian Training Partner with a robust catalog of training, including Workflow help!