BPMN Event Types

Events are the circles in BPMN. They mark when something happens - a process starts, a message arrives, a timer fires, an error occurs. Here is the complete guide.

Fabian Hinsencamp
Fabian Hinsencamp

Technical Lead & BPMN Educator·10 min read

How to read BPMN events

Every BPMN event has two visual properties:

  • 1.Circle border tells you the position: thin = start, double = intermediate, bold = end.
  • 2.Icon inside tells you the type: envelope = message, clock = timer, lightning = error, and so on.

Additionally, a filled (solid) icon means the event throws (sends something). An outline icon means it catches (waits for something).

Start events

Thin circle - What triggers the process.

None

Process is started manually or by the system.

Reference →

Message

An email, API call, or message arrives.

Reference →

Timer

A specific date/time or recurring schedule.

Reference →

Signal

A broadcast signal is received (multiple processes can listen).

Reference →

Conditional

A business condition becomes true (e.g., stock drops below threshold).

Reference →

Intermediate events

Double circle - Something happens during the process.

Timer

Wait for a duration or specific time before continuing.

Reference →

Message (catch)

Wait for an incoming message before continuing.

Reference →

Message (throw)

Send a message to another participant.

Reference →

Signal (throw)

Broadcast a signal to all listening processes.

Reference →

Link

Connect two parts of a diagram (off-page connector).

Reference →

Escalation (throw)

Escalate to a higher-level process or handler.

Reference →

Boundary events

Double circle on task border - An event that happens while a task or sub-process is running.

Timer

Task takes too long - trigger an alternative path.

Reference →

Error

An error occurs inside the task or sub-process.

Reference →

Message

A message arrives while the task is running.

Reference →

Escalation

An escalation is raised inside a sub-process.

Reference →

Conditional

A business condition becomes true during the task.

Reference →

End events

Bold circle - How the process (or a path) finishes.

None

The path simply ends.

Reference →

Message

The process ends by sending a message.

Reference →

Error

The process ends with an error (caught by parent sub-process).

Reference →

Terminate

Immediately kills all remaining tokens in the process.

Reference →

Signal

The process ends by broadcasting a signal.

Reference →

Escalation

The process ends by raising an escalation to the parent.

Reference →

Interrupting vs non-interrupting

Boundary events and event sub-process start events can be either interrupting or non-interrupting:

Interrupting (solid border)

Cancels the activity it is attached to. The normal flow stops, and the exception path takes over. Example: an error boundary event on a sub-process.

Non-interrupting (dashed border)

Triggers a parallel path without stopping the activity. Both the normal flow and the event path run concurrently. Example: a timer that sends reminders every 24 hours.

"The event matrix looks overwhelming. Here is the shortcut: learn none, message, and timer start events and none and error end events first. That covers 80% of real processes. Add the rest only when you need them."

Which events do I actually need?

BPMN defines many event types, but most processes only use a few:

-80% of processes: none start, none end, timer intermediate (for waits)
-Cross-organization processes: add message start/intermediate/end events
-Executable processes: add error events for exception handling, timer boundary events for timeouts
-Complex enterprise models: signals, escalation, compensation, cancel

Start with the basics and add event types only when the process requires them.

Related guides

Keep learning

Frequently asked questions

How many event types are there in BPMN?▼

BPMN 2.0 defines 13 event types (none, message, timer, error, escalation, cancel, compensation, conditional, link, signal, terminate, multiple, parallel multiple). Combined with three positions (start, intermediate, end) and throw/catch, this creates over 50 possible event variants.

What is the difference between a message event and a signal event?▼

A message is point-to-point - sent to a specific recipient. A signal is a broadcast - every process listening for that signal receives it. Think email (message) vs announcement over the intercom (signal).

What is a boundary event?▼

A boundary event is attached to the border of a task or sub-process. It triggers when something happens while that activity is running - for example, a timer boundary event fires if the task takes too long.