Skip to main content
Version: v1.5.0

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.

Sequence flow

Rendered as a solid arrow from the source element to the target element.

Usage in BPMN​

MarkupAttributeRequiredDescription
bpmn:sequenceFlowidyesUnique identifier of the flow.
bpmn:sequenceFlowsourceRefyesThe element the token leaves.
bpmn:sequenceFlowtargetRefyesThe 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​

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.

Not yet supported
  • 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.
  • 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" />