CorriDraw CorriDraw
Tutorial

BPMN 2.0 101: The Business-Process Notation That Both Audiences Read

A beginner's guide to BPMN 2.0 — the standardised visual language for business processes. Learn the five element families (events, activities, gateways, flows, pools), the three gateway types (XOR, AND, OR), the difference between sequence flows and message flows, and how pools and lanes make cross-organisational processes readable. Draw a complete expense-report approval spanning an employee, a manager, and finance — then compare BPMN against flowcharts and UML activity diagrams.

PV

Palakorn V.

Product Lead

15 min read
BPMN 2.0 101: The Business-Process Notation That Both Audiences Read

What Is BPMN 2.0?

BPMN stands for Business Process Model and Notation, and the "2.0" is the version released by the Object Management Group in 2011 that turned what had been a drawing convention into a formal, machine-readable spec. In practical terms, BPMN is a visual language for describing how work gets done — how an expense report moves from an employee through a manager and then through finance, how a support ticket travels from a customer to a first-line agent to an escalation team, how an insurance claim is filed, reviewed, paid, and archived. It sits somewhere between a flowchart and an executable process model: readable enough that a non-technical stakeholder can follow the logic, strict enough that a workflow engine can actually run it.

The reason BPMN has become the default notation for business processes — more common than flowcharts, activity diagrams, or homegrown box-and-arrow sketches — is that it reconciles two audiences. Business analysts and process owners read BPMN to agree on "what the process is". Engineers read the same diagram and translate it into configuration for a workflow engine (Camunda, Flowable, IBM BPM, jBPM, Amazon Step Functions). The same drawing becomes both documentation and implementation, and neither side has to redraw it.

Submit expense × Pay Reject approved rejected
A minimal BPMN 2.0 process: a start event, one task, an exclusive gateway that forks on the approval outcome, two tasks, and an end event. Even this tiny example follows every rule of the spec.

This article teaches you to read and draw BPMN 2.0 from scratch. We'll cover the five element categories every diagram uses, the three gateway types you need in practice, the pool-and-lane structure that shows who does what, the difference between sequence flows and message flows, a worked example — an expense-report approval that spans three parties — and the mistakes that make BPMN drawings fail code review.

Why BPMN Is Worth Knowing

Three situations where BPMN beats every other notation:

  • When the audience includes both business people and engineers. BPMN is the only notation in wide use that a chief of staff and a backend engineer can read off the same wall. A UML activity diagram is strictly engineering; a homemade flowchart is strictly business; BPMN sits squarely in the middle.
  • When the diagram may be executed. If your company runs Camunda, Flowable, or any other BPMN-compliant workflow engine, the diagram is the source code. You will want to learn BPMN whether you like drawing or not.
  • When multiple parties are involved. BPMN's pools and message flows make cross-organisational processes visible — a customer, a vendor, a bank, and a shipping provider can all appear on the same canvas without the arrows turning into spaghetti.

It's also portable. BPMN XML is a standard file format, so a diagram drawn in one tool opens in another without conversion. A flowchart or a napkin sketch has no such guarantee.

The Five Element Categories

Every BPMN 2.0 diagram is built from five kinds of thing. Learn the categories first — the specialisations of each will make sense once you know what family they belong to.

Event something happens: start, intermediate, or end Task Activity a unit of work — task or sub-process × Gateway branching or merging: XOR, AND, OR Flow solid = sequence, dashed = message Finance Pool / lane who performs the work
The five element families. Events are circles, activities are rounded rectangles, gateways are diamonds, flows are arrows, and pools are the outer swimlane containers. Every BPMN diagram is just some combination of these.

Short introduction to each family; the sections below go into detail.

  • Events — the things that happen. A start event begins a process; an end event finishes it; an intermediate event is something the process waits for or emits mid-stream (a timer firing, a message arriving, an error being raised). Drawn as circles.
  • Activities — the things that get done. A task is an atomic unit of work; a sub-process is an activity that contains its own nested BPMN diagram. Drawn as rounded rectangles.
  • Gateways — the branching and merging points. All of BPMN's control logic — exclusive choice, parallel split, inclusive choice, event-based choice — lives inside gateways. Drawn as diamonds with a symbol inside.
  • Flows — the arrows between elements. A sequence flow (solid arrow) says "after this, that"; a message flow (dashed arrow) says "this participant sends data to that one". The distinction matters.
  • Pools and lanes — the horizontal swimlanes. A pool is a participant (an organisation, a customer, an external service); a lane is a sub-participant (a department, a role, a specific team). Every activity sits in exactly one lane.

Events: Start, Intermediate, End

All events are circles; three things distinguish them. The outline thickness tells you whether it's a start, intermediate, or end event. The inner symbol (optional) tells you the trigger — a message envelope, a clock for a timer, a lightning bolt for an error. Whether the event has a left-side arrow in (a catching event, which waits for something) or a right-side arrow out (a throwing event, which emits something) tells you its direction.

Start events thin outline · one per process Do something Plain start "the process just begins" Open ticket Message start "a webhook fires → start" Send weekly digest Timer start "every Monday 09:00 → start" Intermediate events double outline · mid-process Submit order Charge card Timer (catching) "hold for 24 hours before charging" Send order Ship order Message (catching) "wait for webhook before shipping" Archive Message (throw) "emit an event mid-process" End events thick outline · terminal path Ship order Plain end "this branch is done" Validate Error end "end + raise error to parent" Cancel order Terminate end "kill every other branch too"
Every event type you need in practice, shown in a tiny example process. Start events kick things off; intermediate events wait, catch, or emit mid-flow; end events finish a branch — and the terminate variant finishes every other branch at the same time.

Activities: Tasks and Sub-Processes

An activity is any unit of work. The outer shape is always a rounded rectangle; the little marker in the top-left corner tells you what flavour it is.

User task a person does it with the system's help Review claim Approve / reject Service task a system does it automatically Validate card Charge card Manual task a person does it with no system involved Print pick list Move package Scan Script task a code snippet runs inline on the engine Load items Compute total Save Send task emits a message to another participant Finalise order Send invoice Receive task waits for a message from another participant Await webhook Process result Sub-process expands into its own nested diagram Sign up Onboard user Done Task with a boundary event a timer or error attached to the task edge Wait for reply Continue Follow-up
Every activity flavour shown as a step inside a real flow. Dashed grey boxes are the surrounding context (other steps the task connects to); the solid box is the activity in question. The bottom-right panel illustrates a boundary event — a timer attached to the rim of Wait for reply that forks the flow if the reply doesn't arrive in time.

The marker is optional on documentation-only diagrams, but if the process will be executed by an engine (Camunda, Flowable, Step Functions), the marker is how the engine decides which runtime to use for the activity.

Gateways: Where Control Flow Lives

All of BPMN's branching logic lives in gateway diamonds. Three gateway types cover ~95% of real-world processes.

× Exclusive (XOR) exactly one outgoing path is taken + Parallel (AND) all outgoing paths run at the same time Inclusive (OR) any subset of paths is taken
The three gateways you will use 95% of the time. Every outgoing arrow from a gateway must be labelled with the condition that activates it — exactly like the "yes"/"no" labels on a flowchart decision diamond.

Each gateway has a split form (one input, many outputs) and a merge form (many inputs, one output). The symbol is the same; the direction of the arrows tells you which it is.

  • Exclusive (×) — the classic "if/else". Evaluate the conditions on the outgoing arrows in declaration order; the first one that matches fires. Exactly one path is taken. Merge form: the first branch to arrive at the merge fires the continuation; the others are ignored.
  • Parallel (+) — "do all of these at once". Every outgoing arrow fires simultaneously. Merge form: the gateway waits for every incoming arrow to arrive before firing its single output. The pairing of a parallel split with a parallel merge is the cleanest way to express concurrent work in BPMN.
  • Inclusive () — "any of these, based on the conditions". Every outgoing arrow whose condition is true fires; others don't. The merge form waits for exactly the branches that the split chose to run — a trickier semantics than parallel, so use it sparingly.

There's also an event-based gateway (a pentagon inside a circle, wrapped in a diamond) for "whichever of these events fires first, follow its branch". You see it in processes that wait for a customer reply or a 24-hour timer — whichever comes first.

Exclusive (XOR) — one path of many Review report × approved Pay expense rejected Notify author × Exactly one of Pay or Notify runs, never both. The merge diamond fires the moment the first branch reaches it. Parallel (AND) — all paths at once Accept order + Charge card Reserve stock + Ship order Both branches run at the same time. The merge ( + ) waits until both have finished before firing Ship order. Inclusive (OR) — any subset that matches Score risk amount > $1k Legal review international Customs form Ship order Zero, one, or both branches may run depending on which conditions are true. The inclusive merge waits only for the branches that were actually activated.
Each gateway shown in a real process fragment. Pay attention to the merge gateway on the right of every row — choosing the correct merge symbol is as important as choosing the split. A parallel split always pairs with a parallel merge, an inclusive split with an inclusive merge.

Pools, Lanes, and Two Kinds of Flow

Pools and lanes are BPMN's swimlane system. A pool is a participant — an organisation, a customer, an external service; anything with its own process logic. A lane is a sub-participant inside a pool — a department, a role, a specific team. Every activity lives in exactly one lane, and the lane tells you immediately who is responsible for it.

Two kinds of arrow:

  • Sequence flow (solid arrow). "After this, that". A sequence flow stays inside a single pool — it connects steps of the same participant's process. Sequence flows can cross lane boundaries within a pool (the work hands off from one department to another).
  • Message flow (dashed arrow with an open circle at its tail and an open arrow at its head). "This participant sends data to that one". A message flow always crosses a pool boundary — it connects one participant to another. If you find yourself drawing a solid arrow between two pools, it's wrong.

A Worked Example: Expense-Report Approval

Here's a real process drawn end-to-end: an employee submits an expense report; a manager approves or rejects it; finance pays the approved ones. Three participants, three lanes in the company pool, message flows between the employee and the company.

Employee Company Manager Finance Submit report Review report × Notify reject Forward to pay reject approve Pay expense report rejection note payment confirmation
Expense-report approval. Two pools (Employee and Company); two lanes inside Company (Manager and Finance). Solid arrows are sequence flows and never cross a pool boundary; dashed arrows are message flows and only ever cross pool boundaries.

A few things this example makes concrete:

  • One pool, one process. The Employee pool has its own start and end event. Inside the Company pool there's a single sequence from the Manager's task, through the gateway, to Finance's Pay expense, and out through an end event. Two independent processes, connected only by messages.
  • Lanes show responsibility. Every activity in the Company pool lives in exactly one lane. One glance tells the reader "the manager reviews, finance pays" — no caption needed.
  • Messages only cross the pool boundary. The report the employee submits crosses into the Company pool via a dashed message flow; the Manager's rejection note and Finance's payment confirmation come back to the employee the same way. Everything inside each pool is a solid sequence flow.
  • Gateways have labelled outputs. The XOR diamond's two outgoing arrows say approve and reject. An unlabelled gateway is the single most common reason a BPMN process fails validation in a real tool.

Common Beginner Mistakes

Six mistakes account for almost every BPMN diagram that won't validate or won't execute. Watch for them in your own drafts.

  • Sequence flows crossing pool boundaries. The one rule BPMN is strict about. Between pools, the only arrows allowed are message flows (dashed). Solid arrows stay inside a single pool.
  • Unbalanced parallel gateways. If you split with a parallel (+) gateway, you need to merge with a parallel gateway too — otherwise the process never joins back up, and a workflow engine will leave the branches dangling forever. The same rule applies to inclusive gateways.
  • Using a task instead of a sub-process for complex work. If the "task" has its own internal decisions or its own sub-steps, it should be a sub-process (a rounded rectangle with a plus sign) that expands into its own nested diagram. Hiding that complexity inside a single rectangle makes the parent diagram lie about how much is really happening.
  • More than one untyped start event. A process can have multiple start events only if each one is typed (message-start, timer-start, signal-start) — so the engine knows which trigger activates which instance. Two plain, unmarked start circles are invalid.
  • Forgetting to label gateway outgoing arrows. Every arrow leaving a gateway must carry the condition that activates it. Label them the same way you'd label a flowchart's decision diamond — approved, over $1000, timeout — so the reader doesn't guess.
  • Overusing intermediate events. Intermediate events are powerful (wait for a timer, catch an error, send a message mid-flow), but they're also the single hardest part of BPMN for newcomers to read. Start with simple processes — start, tasks, gateways, end — and only reach for intermediate events once the simpler notation runs out of expressiveness.

BPMN vs. Flowcharts vs. UML Activity Diagrams

Three notations have overlapping use cases; each is best at something slightly different.

  • Flowchart. Five shapes, no formal spec, universal literacy. Best for a quick sketch of any process, especially when the audience includes people who have never seen BPMN.
  • UML activity diagram. Overlap with BPMN is ~70%. Best when you're already in a UML-first engineering shop and want to model a process inside the same notation family as your class and sequence diagrams.
  • BPMN 2.0. Standardised spec, machine-readable XML, first-class support in workflow engines. Best for processes that cross organisational boundaries, need to be executed, or will be read by both business and engineering audiences. Also the right answer any time pools and message flows would clarify things.

If in doubt, draw the first version as a flowchart (fast, low-ceremony), and promote it to BPMN only when the diagram needs to justify the extra precision — cross-organisational flows, executable processes, compliance documentation.

A Note on Tools

BPMN's defining advantage is that it is a standard. A BPMN 2.0 XML file exported from Camunda Modeler opens unchanged in Signavio, Bizagi, or bpmn.io. This is also true of the notation: a diagram drawn by hand follows exactly the same rules as one drawn in a dedicated modeller. If you'd like a canvas with the BPMN shape set pre-loaded, pool-and-lane snapping that keeps participants aligned, and collaboration features so multiple analysts can work on the same model in real time, CorriDraw — the tool this blog lives on — is one option. The notation is portable regardless. Pick whatever draws cleanly; the rules are the same everywhere.

Share this story
It’s
Free!
Forever
Let’s draw together

Ready to start collaborating ?

Join thousands of teams using CorriDraw for their visual collaboration needs.