Skip to Content
Flower 3.6.0 is released 🎉 See what's new
DocsBPMN ReferenceConditional Events
BPMN Reference· 3 min read· Updated November 2026

BPMN Conditional Events

In short: A conditional event is a circle with a lined sheet of paper. It fires when a business condition becomes true: the stock falls below 10, the temperature rises above the limit, the request is rejected. The condition is an expression on data, not a moment in time and not a message.

🛠️

Guide: Branch with Conditional Boundary Events shows how to write the condition and model the event in Flower.

Symbols

SymbolElementMeaning
BPMN symbol: conditional start eventConditional start eventThe process starts when the condition becomes true
BPMN symbol: intermediate conditional eventIntermediate conditional event (catch)The process waits here until the condition is true
BPMN symbol: interrupting conditional boundary eventConditional boundary event, interruptingWhile the activity runs, the condition becomes true: the activity ends and the path of the event is taken
BPMN symbol: non-interrupting conditional boundary eventConditional boundary event, non-interruptingThe activity stays open and the path of the event starts in addition. Dashed border

A conditional event is always a catch event. Nothing in the process throws it: the condition is watched, and when the data changes so that it becomes true, the event fires.

Conditional Event or Gateway?

Both use a condition, but at different times:

Exclusive gatewayConditional event
Checks the conditionOnce, at the moment the token arrivesWhile it waits, until the condition becomes true
QuestionWhich way now?Has it happened yet?
ExampleAmount above 1,000?Wait until the stock is refilled

Use a gateway to decide with the data you have. Use a conditional event to wait for a change, or to react to one while a task is running.

In Flower and Jira

ℹ️

Conditional boundary events are executed from Flower 3.7.0.

ElementStatus in Flower
Conditional boundary event on a task, interrupting and non-interruptingExecuted
Conditional start event, intermediate conditional event, conditional event sub-processCan be modeled, ignored during execution

In Flower, the work item of the task decides. Flower checks the condition once, when the work item is resolved:

Condition when the work item is resolvedInterruptingNon-interrupting
trueThe path of the event instead of the normal flowThe path of the event and the normal flow
falseThe normal flowThe normal flow

This differs from the standard, where the event fires as soon as the condition becomes true. A change to the work item while it is still open does not trigger the event. To react during the work, use a timer or an escalation event.

The condition is the same kind of expression as on a gateway. cur is the resolved work item of the task, pi is the process instance:

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

A typical use is a compact approval: the approval task gets an interrupting conditional boundary event Rejected, and its path leads back to the work. No gateway is needed after the task. See Make Approval Steps.

The step-by-step guide is Branch with Conditional Boundary Events.

Conditional, Error, or Escalation?

ConditionalErrorEscalation
Trigger in FlowerAn expression is true when the work item is resolvedThe work item is resolved in the selected statusThe work item is moved into the selected status
WhenWhen the task endsWhen the task endsWhile the task is open
MeaningAny outcomeThe task failedSomeone else has to help
InterruptingEitherAlwaysEither

Common Mistakes

  • A conditional event where a gateway is enough. If the data is known when the token arrives, use a gateway.
  • A condition on time. Use a timer event.
  • In Flower: expecting the event to fire while the work item is open. It is checked at resolution.
  • A condition without a label. Name the event after the outcome, for example Rejected.

Read More

Frequently Asked Questions

What is a conditional event in BPMN?

An event that fires when a business condition becomes true, for example a value that passes a limit. It is drawn as a circle with a lined sheet.

What is the difference between a conditional event and a gateway?

A gateway checks its conditions once, when the token arrives. A conditional event waits until its condition becomes true.

Can a conditional event be a boundary event?

Yes, interrupting or non-interrupting. It reacts to a condition that becomes true while the activity runs.

How do I branch on the result of a Jira work item in BPMN?

With Flower, attach a conditional boundary event to the task and write a condition on a field of the work item, for example its resolution. Flower checks it when the work item is resolved.

Last updated on