Sequence flow
A Sequence Flow connects two BPMN elements and defines the order of execution: when the source element completes, the token moves along the flow to the target. Sequence flows are what turn individual activities, events, and gateways into a process.
Rendered as a solid arrow from the source element to the target element.
Usage in BPMN​
| Markup | Attribute | Required | Description |
|---|---|---|---|
bpmn:sequenceFlow | id | yes | Unique identifier of the flow. |
bpmn:sequenceFlow | sourceRef | yes | The element the token leaves. |
bpmn:sequenceFlow | targetRef | yes | The element the token moves to. |
Rules:
- Every flow element needs at least one incoming and one outgoing sequence flow — except start events (no incoming) and end events (no outgoing).
- When an element other than a gateway has several outgoing flows, all of them are followed: a token is created per flow, forming an implicit parallel fork. Use gateways to route deliberately instead.
- Condition expressions are evaluated only on flows leaving an Exclusive or Inclusive gateway — a condition on any other sequence flow is ignored.
Default flow​
Rendered with a short diagonal slash across the flow near its source.
The default flow is the fallback path of an Exclusive or Inclusive gateway. It is referenced by the gateway's default attribute, carries no condition expression of its own, and is taken only when none of the gateway's other outgoing conditions evaluates to true.
- Conditional flow — a condition expression on a flow leaving an activity is not evaluated; route on conditions with an Exclusive or Inclusive gateway instead.
- Message flow — the collaboration-diagram connector between pools; message exchange is modelled with message events and Send/Receive tasks instead.
- Data association — the dotted connector between data objects and activities; data is passed through variables instead.
Related documentation​
- Gateways — deliberate routing: conditions, default flows, forks, and joins.
- Link events — connecting distant points of a diagram without drawing a sequence flow.
XML example​
A task connected to a gateway, which routes onward through a conditional flow or its default flow:
<bpmn:sequenceFlow id="Flow_ToCheck" sourceRef="Task_PrepareOrder" targetRef="Gateway_CheckAmount" />
<bpmn:exclusiveGateway id="Gateway_CheckAmount" name="Amount?" default="Flow_Default">
<bpmn:incoming>Flow_ToCheck</bpmn:incoming>
<bpmn:outgoing>Flow_High</bpmn:outgoing>
<bpmn:outgoing>Flow_Default</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_High" sourceRef="Gateway_CheckAmount" targetRef="Task_ManualReview">
<bpmn:conditionExpression>= amount > 10000</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_Default" sourceRef="Gateway_CheckAmount" targetRef="Task_AutoApprove" />