π Workflow Extensions
Overviewβ
Workflow Extensions is a Forge app that enhances Jira Cloud workflows by adding three powerful workflow extensions:
- β Condition β control visibility of transitions
- β Validator β enforce rules before transition
- βοΈ Post Function β automate actions after transition
All extensions are powered by Jira Expressions, allowing flexible, dynamic logic without external infrastructure.
Featuresβ
Add Comment (Post Function)β
Automatically adds a comment to the issue when a transition is executed.
Key capabilities:
- Add static or dynamic comments
- Use Jira Expressions to generate content
- Reference issue fields, user, or transition data
Jira Expression Validatorβ
Validates whether a transition should be allowed.
Behavior:
- The transition proceeds only if expression = true
- If false β transition is blocked
Typical use cases:
- Ensure required fields are filled
- Validate issue relationships
- Restrict transitions based on user roles
Jira Expression Conditionβ
Controls whether a transition is visible to the user.
Behavior:
- Transition button is shown only if expression = true
- If false β transition is hidden
Typical use cases:
- Show transitions only to specific users
- Conditional workflow paths
- Context-aware UI behavior
Module Detailsβ
Post Functionβ
Key: add-comment-post-function
Name: Add Comment (Workflow Extensions)
Description: Adds a comment to the issue after a transition.
Configurationβ
| Field | Description |
|---|---|
| Comment | Text or Jira Expression result |
Exampleβ
`Transition executed by ${user.displayName}`
Behaviorβ
- Runs after transition execution
- Comment is added as the current user (or app user, depending on config)
Validatorβ
Key: jira-expression-validator
Name: Jira Expression Validator (Workflow Extensions)
Description: Validates transitions using a Jira Expression.
Configurationβ
| Field | Description |
|---|---|
| Expression | Jira Expression returning boolean |
| Error message | Message shown if validation fails |
Exampleβ
issue.fields.priority != null
Behaviorβ
- If expression returns
trueβ transition allowed - If
falseβ blocked with error message
Conditionβ
Key: jira-expression-condition
Name: Jira Expression Condition (Workflow Extensions)
Description: Controls transition visibility using a Jira Expression.
Configurationβ
| Field | Description |
|---|---|
| Expression | Jira Expression returning boolean |
Exampleβ
user.groups.includes("jira-administrators")
Behaviorβ
trueβ transition visiblefalseβ transition hidden
Jira Expression Contextβ
All expressions can use standard Jira Expression context objects:
issueuserprojecttransitionnow
π Example:
issue.assignee == user
Permissions & Data Storageβ
-
β Runs entirely on Atlassian Forge
-
β No external database
-
β Data stored in:
- Jira configuration
- Forge storage (if needed)
Security & Complianceβ
- No external API calls required
- No personal data stored outside Atlassian
- Fully compliant with Forge security model
Installationβ
Install Workflow Extensions from the Atlassian Marketplace and follow the steps below to add an extension to a Jira workflow.
- Install the app from the Atlassian Marketplace.
- Go to Jira Settings β Issues β Workflows.
- Click Edit on the workflow you want to extend.
- Select a transition and open its Rules (Post Functions, Validators, or Conditions tab).
- Click Add and search for the Workflow Extensions rule you want to add.
- Configure the Jira Expression in the rule settings and save.
Example Use Casesβ
Example 1: Require assignee before Doneβ
Validator:
issue.assignee != null
Example 2: Only managers can close issuesβ
Condition:
user.groups.includes("managers")
Example 3: Auto comment on transitionβ
Post Function:
`Status changed to ${issue.status.name} by ${user.displayName}`
Limitationsβ
- Jira Expressions must be valid and safe
- Complex logic may affect performance
- No async operations inside expressions
Future Roadmap (optional for Marketplace)β
- Expression templates
- UI builder for expressions
- Debugging tools
- Audit logs for workflow executions