BPMN Flows
In short: Flows are the arrows of a BPMN diagram. A sequence flow (solid arrow) says which step comes next inside a process. A message flow (dashed arrow) shows a message between two participants. Gateways use conditional and default flows to carry decisions.
Guide: Connect Pools with Message Flows shows how message flows work in Flower, and Decide with Gateways how to write the conditions on sequence flows.
The Flows of BPMN
| Flow | Drawn as | Connects | Meaning |
|---|---|---|---|
| Sequence flow | Solid line with a filled arrowhead | Tasks, gateways, and events of the same pool | The order of the steps. The token travels along it |
| Conditional flow | Sequence flow with a condition, often written as a label | A gateway and the next step | The path is taken when the condition is true |
| Default flow | Sequence flow with a small slash at its start | A gateway and the next step | The path that is taken when no condition is true |
| Message flow | Dashed line with an open arrowhead and a small circle at its start | Two pools | A message from one participant to another |
| Association | Dotted line | A text annotation or data object and an element | Links information to an element. It has no effect on the flow |
Sequence Flows
A sequence flow connects two flow elements and gives their order. When a step is complete, the token leaves it over its outgoing sequence flow.
Rules:
- A sequence flow stays inside one pool. It can cross lanes.
- Every task and gateway needs at least one incoming and one outgoing sequence flow. Start events have only outgoing flows, end events only incoming ones.
- A sequence flow that leads back to an earlier step forms a loop.
Conditional and Default Flows
After an exclusive or inclusive gateway, each outgoing flow carries a condition. Label it with the answer to the question of the gateway, for example Approved and Rejected.
Mark one outgoing flow as the default flow. It has no condition and is taken when none of the others applies. Without a default flow a process can get stuck at a gateway.
Message Flows
A message flow shows that two participants exchange information: an e-mail, a phone call, an order, a notice.
Rules:
- A message flow connects two different pools. It never connects two elements of the same pool.
- It starts at a task, a message throw event, or the border of a black box pool, and ends at a task, a message catch event, or a pool border.
- A message flow does not move the token. It only delivers the message. What the receiving process does with it is modeled there.
In Flower and Jira
- Sequence flows move the process. When a work item is resolved, Flower follows the outgoing sequence flows and creates the next work items.
- Conditions on the flows after a gateway are expressions that read the fields of your Jira work items, for example the status of the last work item. See BPMN Gateways and Decision Handling in Gateways.
- Default flows are taken when no condition is fulfilled. Always define one.
- Loops are supported: when a flow leads back to a task that is already done, Flower reopens its work item. The Jira workflow needs a transition back to an open status for this. A loop back into a call activity is not supported, see Known Issues.
- Message flows between two pools of the same model deliver a message from a throw event to a catch event, inside the engine. Message flows to a black box pool are documentation only. See Message Flows.
- Associations do not affect the execution.
Common Mistakes
- A sequence flow between two pools. Use a message flow.
- A message flow inside one pool. Use a sequence flow.
- Splitting or joining without a gateway. BPMN allows several flows at a task, but the behavior is easy to misread. Use a gateway.
- No default flow. The process stops when no condition is true.
- Unlabeled flows after a gateway. The reader cannot tell which path is which.
Read More
Frequently Asked Questions
What is a sequence flow in BPMN?
A solid arrow that connects two steps of a process and shows which one comes next.
What is the difference between a sequence flow and a message flow?
A sequence flow gives the order of the steps inside one pool. A message flow shows communication between two pools and does not change the order of the steps.
What is a default flow?
The outgoing path of a gateway that is taken when no condition of the other paths is true. It is drawn with a small slash at its start.
Can a sequence flow go backwards?
Yes. A sequence flow that leads to an earlier step forms a loop, for example to repeat a review until it is approved.

