Skip to Content
Flower 3.6.0 is released 🎉 See what's new
DocsGuidesBranch with Conditional Boundary Events
Guides· 2 min read· Updated November 2026

Branch on the Outcome of a Task with Conditional Boundary Events

A conditional boundary event is attached to an activity and has a condition. When the condition is true, the process takes the path of the boundary event. Use it for outcomes such as Rejected, Cancelled, or Escalated: the label of the event says what happened, the condition says when.

đź“–

Reference: BPMN Conditional Events explains the conditional event in the BPMN standard, and how it differs from a gateway.

Available from Flower 3.7.0.

A conditional boundary event on the approval: resolved as Rejected, the process goes back to the work, every other outcome takes the normal flow.

When Flower Evaluates the Condition

Flower evaluates the condition once, when the work item of the activity is resolved. Changes to the work item while it is open do not trigger the event.

Condition when the work item is resolvedInterrupting eventNon-interrupting event
trueThe process takes the path of the event instead of the normal outgoing flowThe process takes the path of the event and the normal outgoing flow
falseThe normal outgoing flowThe normal outgoing flow
ℹ️

The BPMN standard lets a conditional event fire as soon as its condition becomes true. In Flower, the work item of the activity decides: the condition is checked when it is resolved. To react to a change while the work item is open, use a timer boundary event or a Jira Automation rule.

Write the Condition

The condition is an expression, the same as on the outgoing transitions of an XOR gateway (learn how to write expressions). In a boundary event, these variables are available:

VariableContains
curThe resolved work item of the activity the event is attached to
piThe process instance

The fields of a work item are under fields, for example cur.fields.status.name.

Examples:

Event labelCondition
Rejected${cur.fields.resolution.name == 'Rejected'}
Cancelled${cur.fields.status.name == 'Cancelled'}
Escalated${cur.fields.priority.name == 'Highest'}
Big order${pi.fields.customfield_10050 > 10000}

Use the status and resolution names of your Jira. A field without a value makes the condition false.

Model the Event in the Editor

  1. Drag an intermediate event onto the edge of the activity.
  2. Use the wrench icon to change it into a conditional boundary event, interrupting or non-interrupting.
  3. Give it a label, for example Rejected.
  4. In the properties panel, open Condition and enter the condition in Condition Expression.
  5. Connect the event to the activity that should follow.

Example: Approval

A conditional boundary event is a compact way to model an approval: the approval activity gets an interrupting conditional boundary event Rejected with the condition ${cur.fields.resolution.name == 'Rejected'}. Its path leads back to the work. Every other resolution continues on the normal outgoing flow. You do not need an XOR gateway after the approval activity.

What’s Next?

Last updated on