Documentation Index

Fetch the complete documentation index at: https://knowledge.curiositysoftware.ie/llms.txt

Use this file to discover all available pages before exploring further.

BPMN Notation Support

Prev Next

BPMN Functionality within Quality Modeller

Start Events

Overview

A Start Event marks the beginning of a process flow. Every process must have at least one start event, and the type of start event determines how and why the process instance is triggered. The start event selected communicates the triggering condition to anyone reading the diagram.

1. Message Start Event

Icon: Envelope

Trigger: The process starts when a specific message is received from an external participant, system, or process.

Typical use cases:

  • A customer submits an order via a web form, triggering an order-fulfilment process

  • An incoming API call or webhook kicks off a workflow

  • A support ticket is created in an external system and picked up by an automated process

Notes:

  • Represents an asynchronous, event-driven trigger, the process is waiting for something to arrive rather than being started on a schedule or by hand.

  • Often paired with a message end event or intermediate message events elsewhere in the same collaboration to show a full request/response exchange.

2. Timer Start Event

Icon: Clock

Trigger: The process starts at a specific date/time, after a set duration, or on a recurring schedule

Typical use cases:

  • A nightly batch job that runs test suites at 2:00 AM

  • A weekly report generation process

  • A reminder process that fires 30 days after account creation

Notes:

  • Common in scheduled automation and recurring test executions.

  • The specific schedule (once, recurring, or after a delay) is usually configured as a property on the event rather than shown directly in the diagram.

3. Signal Start Event

Icon: Triangle

Trigger: The process starts when a signal is broadcast. Signals are different from messages in one key way: they are broadcast to all listening processes rather than sent to a single named recipient, and they aren't tied to a specific message flow between two participants.

Typical use cases:

  • A "deployment complete" signal that simultaneously kicks off several independent verification processes

  • A broadcast event like "environment reset" that multiple test processes are all listening for

  • Cross-process coordination where one process's completion should fan out to trigger many others

Notes:

  • Signals are global in scope within a process definition,  any process modelled to listen for that signal name will respond, which makes this event useful for one-to-many triggering.

4. Conditional Start Event

Icon: Lines/list

Trigger: The process starts when a specified condition becomes true, based on evaluating some business data or system state rather than receiving an explicit message or signal.

Typical use cases:

  • Start a process automatically whenever a database record's status field changes to "Approved"

  • Trigger a process when inventory falls below a threshold

  • Kick off a workflow when a business rule evaluates to true during ongoing monitoring

Notes:

  • Distinguishes itself from message/signal starts because there's no explicit "send", the condition is continuously evaluated until it's satisfied.

  • Useful for data-driven or state-driven triggers where no other process explicitly notifies this one.

5. Multiple Start Event

Icon: Pentagon/house shape

Trigger: The process can be started by any one of several defined triggers (an OR relationship). If Trigger A, B, or C occurs, the process starts.

Typical use cases:

  • A support process that can be started either by an incoming message or by a timer-based escalation, whichever happens first

  • A process that should start on a manual request or an automatic signal, without needing both

Notes:

  • Only one of the configured triggers needs to fire, it's inclusive-OR logic at the start of the process.

  • Useful for consolidating multiple entry points into a single process definition instead of maintaining separate near-duplicate processes.

6. Parallel Multiple Start Event

Icon: Pentagon/house shape with a plus (+) marker

Trigger: The process starts only when all of several defined triggers have occurred (an AND relationship). Every configured trigger must fire before the process instance begins.

Typical use cases:

  • A process that should only start once both a message has arrived and a timer condition has elapsed

  • Synchronizing multiple upstream signals before starting downstream work, ensuring no premature start

Notes:

  • The "+" in the icon is the visual cue distinguishing this from the plain Multiple Start Event, it signals AND logic instead of OR logic.

  • Less common than the other start events, since it requires careful coordination of multiple upstream triggers, but valuable when a process genuinely shouldn't begin until several preconditions are all met.

Start Event

Icon

Trigger Logic

Fires When

Message Start

Envelope

Single named trigger

A specific message is received

Timer Start

Clock

Single named trigger

A scheduled time/date/interval is reached

Signal Start

Triangle

Single named trigger

A broadcast signal is raised

Conditional Start

Lines/list

Single named trigger

A defined condition evaluates to true

Multiple Start

Pentagon

OR (any one)

Any one of several defined triggers occurs

Parallel Multiple Start

Pentagon + plus

AND (all)

All of several defined triggers have occurred

2. Intermediate Events

Overview

Intermediate Events occur somewhere between the start and end of a process,  they represent something that happens during the flow. They're drawn as a double-bordered circle.

Most intermediate events come in two flavours:

  • Catch,  the process waits for something to happen (receiving), and execution pauses at that point until the trigger occurs.

  • Throw,  the process actively sends or raises something at that point in the flow (sending), and execution continues immediately after.

1. Message Catch

Icon: Envelope

Behaviour: The process pauses and waits until a specific message arrives from another participant or process.

Typical use case: A process pauses after submitting a request and waits for a confirmation message before continuing (e.g., waiting for an approval reply).

2. Message Throw

Icon: Envelope (filled)

Behaviour: The process sends a message to another participant at this point, then continues immediately,  it does not wait for a response.

Typical use case: Notifying another system or team that a step has been completed, without pausing for acknowledgement.

3. Timer Catch

Icon: Clock

Behaviour: The process pauses at this point for a defined duration, or until a specific date/time, before continuing.

Typical use case: A wait step,  e.g., pause for 24 hours before sending a follow-up, or wait until a scheduled maintenance window before proceeding.

4. Signal Catch

Icon: Triangle

Behaviour: The process pauses and waits for a broadcast signal to be raised elsewhere (by any process), then continues.

Typical use case: Waiting mid-process for a broadcast "go-live" signal from an unrelated process before resuming.

5. Signal Throw

Icon: Triangle (filled)

Behaviour: The process broadcasts a signal at this point, which any number of other processes may be listening for, then continues immediately.

Typical use case: Announcing "stage 1 complete" so that multiple independent downstream processes can react, without needing to know who's listening.

6. Conditional Catch

Icon: Lines/list

Behaviour: The process pauses and waits until a specified condition becomes true (based on data or system state), then continues.

Typical use case: Pausing mid-process until a database flag changes or a threshold is met, without an explicit message or signal being sent.

7. Link Catch

Icon: Arrow pointing right

Behaviour: Receives control from a corresponding Link Throw elsewhere in the same diagram. Used purely for connecting flows visually.

Typical use case: Continuing a flow that was deliberately broken off (via a Link Throw) to avoid a long crossing line or to jump to a different part of the same diagram/page.

8. Link Throw

Icon: Arrow pointing right (filled)

Behaviour: Sends control to a matching Link Catch elsewhere in the same diagram, effectively acting as a "go to" connector.

Typical use case: Cleaning up diagram layout by connecting two points without drawing a long or crossing sequence-flow line,  purely a modelling/readability tool, with no real-world waiting or messaging involved.

9. Escalation Throw

Icon: Triangle-arrows (double chevron)

Behaviour: Raises an escalation at this point in the flow, typically to notify a parent process or a broader scope that something needs attention, then continues.

Typical use case: A sub-process throws an escalation to flag an issue up to the parent process (e.g., "this step is taking too long" or "manual intervention needed") without necessarily stopping the sub-process itself.

10. Compensation Throw

Icon: Double-arrow (rewind-style)

Behaviour: Triggers compensation,  i.e., invokes the "undo" logic associated with a previously completed activity,  at this point in the flow, then continues.

Typical use case: Rolling back a previously completed step after a later step fails (e.g., a booking is cancelled and a compensating "release seat" activity is triggered after payment fails downstream).

11. Multiple Catch

Icon: Circle with dot (unfilled/outline)

Behaviour: The process pauses and waits for any one of several defined triggers (OR logic),  whichever happens first resumes the flow.

Typical use case: Waiting for either a message reply or a timeout, whichever comes first, before proceeding down different paths.

12. Multiple Throw

Icon: Circle with dot (filled)

Behaviour: Raises several different triggers simultaneously at this point (e.g., a message and a signal together), then continues.

Typical use case: Simultaneously notifying one specific participant (message) and broadcasting to any listeners (signal) at the same point in the flow.

13. Parallel Multiple Catch

Icon: Circle with plus

Behaviour: The process pauses and waits until all of several defined triggers have occurred (AND logic) before continuing.

Typical use case: Resuming only once both an expected message has arrived and a required condition has been satisfied,  neither alone is enough to proceed.

Event

Icon

Catch or Throw

Logic

Behaviour

Message Catch

Envelope

Catch

Single

Waits for a specific message

Message Throw

Envelope (filled)

Throw

Single

Sends a message

Timer Catch

Clock

Catch

Single

Waits for a duration/date

Signal Catch

Triangle

Catch

Single

Waits for a broadcast signal

Signal Throw

Triangle (filled)

Throw

Single

Broadcasts a signal

Conditional Catch

Lines/list

Catch

Single

Waits for a condition to be true

Link Catch

Arrow

Catch

Single

Receives from a Link Throw

Link Throw

Arrow (filled)

Throw

Single

Sends to a Link Catch

Escalation Throw

Chevrons

Throw

Single

Raises an escalation upward

Compensation Throw

Rewind arrows

Throw

Single

Triggers rollback/compensation logic

Multiple Catch

Circle dot

Catch

OR (any one)

Waits for any one of several triggers

Multiple Throw

Circle dot (filled)

Throw

Multiple at once

Sends several triggers at once

Parallel Multiple Catch

Circle plus

Catch

AND (all)

Waits for all defined triggers

3. End Events

Overview

An End Event marks the point where a process path terminates. End events are drawn as a thick-bordered circle, with an icon inside indicating how or why the process (or that particular path through it) is ending. A single process can have multiple end events representing different outcomes,  success, failure, cancellation etc.

1. Message End

Icon: Envelope

Behaviour: The process path ends by sending a final message to another participant.

Typical use case: Notifying a customer or external system that the process has completed (e.g., "order fulfilled" confirmation sent as the last step).

2. Terminate End

Icon: Filled circle (solid dot)

Behaviour: Immediately ends the entire process instance, abandoning any other active parallel paths without waiting for them to finish naturally.

Typical use case: A cancellation or "abort everything" outcome,  e.g., a fraud check fails partway through order processing, and all other in-flight branches (payment, shipping prep, notifications) need to stop immediately rather than run to their own completion.

Notes:

  • This is the most forceful end event,  it doesn't just end the current path, it tears down the whole instance.

3. Error End

Icon: Lightning bolt

Behaviour: Ends the current path by throwing a named error, which propagates up and can be caught by an error boundary event on an enclosing sub-process or activity.

Typical use case: A validation step fails in a way that should be handled by error-handling logic elsewhere in the model (e.g., a sub-process throws an error that the parent process catches and routes to a remediation path).

4. Escalation End

Icon: Triangle (outline)

Behaviour: Ends the current path by raising an escalation, intended to be caught by an escalation boundary event on an enclosing scope,  signalling "something notable happened" without necessarily treating it as a failure.

Typical use case: A sub-process completes but needs to flag something upward for visibility or follow-up (e.g., "completed, but manual review recommended") rather than a hard error.

5. Signal End

Icon: Triangle (filled)

Behaviour: Ends the current path by broadcasting a signal, which any number of other processes may be listening for.

Typical use case: Announcing "batch job finished" so that multiple unrelated downstream processes can react, without needing to know who (if anyone) is listening.

6. Cancel End

Icon: X in circle

Behaviour: Ends the current path specifically in the context of a transaction sub-process, signalling that the transaction should be cancelled and any compensation logic for already-completed steps within it should run.

Typical use case: Used exclusively inside BPMN transaction sub-processes,  e.g., a multi-step booking transaction is cancelled partway through, triggering rollback of steps already completed within that transaction.

Notes:

  • This event type is meaningful only within a transaction sub-process; it isn't used in ordinary process flows.

7. Compensation End

Icon: Double-arrow

Behaviour: Ends the current path by triggering compensation,  invoking the "undo" logic associated with previously completed activities.

Typical use case: A process branch that exists specifically to handle rollback: once compensation has been triggered and handled, this end event closes out that rollback path.

8. Multiple End

Icon: Circle with dot

Behaviour: Ends the current path by throwing several different results simultaneously (e.g., a message and a signal together).

Typical use case: Ending a path that needs to both notify a specific participant (message) and broadcast completion to any listeners (signal) at the same time.

Event

Icon

Result thrown

Typical scope

Message End

Envelope

A message

Notifying a specific participant

Terminate End

Solid dot

Immediate full stop

Entire process instance

Error End

Lightning bolt

A named error

Caught by an enclosing error boundary event

Escalation End

Triangle (outline)

An escalation

Caught by an enclosing escalation boundary event

Signal End

Triangle (filled)

A signal

Broadcast to any listening processes

Cancel End

X in circle

Transaction cancellation

Transaction sub-processes only

Compensation End

Rewind arrows

Compensation trigger

Rollback/undo paths

Multiple End

Circle dot

Several results at once

Combined notification

4. Tasks

Overview

Tasks are the atomic units of work within a BPMN process,  a single step that isn't broken down further in the diagram (as opposed to a sub-process, which contains its own nested flow). BPMN defines several task types specifically to communicate who or what performs the work and how it's performed, rather than leaving every step as a generic, undifferentiated box.

Tasks are drawn as a rounded rectangle, with a small icon in the top-left corner indicating the task type.

1. User Task

Icon: Person

Behaviour: Work performed by a human, typically through a task list or form presented by a workflow engine (e.g., "review and approve this request").

Typical use case: A manager approves a purchase request through a task inbox; an agent manually reviews a flagged transaction.

2. Service Task

Icon: Gear

Behaviour: Work performed automatically by a system or service,  no human involvement. Usually represents a call to an API, an automated script execution, or an internal system operation.

Typical use case: Automatically calling a payment gateway API to charge a customer; running an automated data validation check.

3. Script Task

Icon: Pen/script

Behaviour: Work performed automatically by executing a script directly within the process engine itself (as opposed to a Service Task, which typically calls out to an external service).

Typical use case: Running a small inline calculation or data transformation,  e.g., formatting a date field or computing a derived value,  using an embedded scripting language rather than an external system call.

4. Manual Task

Icon: Hand

Behaviour: Work performed by a human, but outside the process engine's visibility,  there's no task list, form, or system interaction involved. The engine simply waits for this step to be marked complete.

Typical use case: A physical, offline activity like packing a box for shipment, or a phone call made outside any tracked system,  something a human does, but not through a digital task interface.

Notes:

  • The distinction from User Task is important: User Task implies the engine presents work via a task list/form; Manual Task implies the work happens entirely off-system.

5. Send Task

Icon: Envelope

Behaviour: A specialized task whose sole purpose is sending a message to an external participant, then completing immediately (fire-and-forget).

Typical use case: Sending a confirmation email or notification as a discrete process step.

Notes:

  • Functionally similar to a Message Throw intermediate event, but modeled as a task rather than an event,  often used when the "send" is a first-class step in the process rather than a side-effect of passing through a point in the flow.

6. Receive Task

Icon: Envelope (outline)

Behaviour: A specialized task that pauses the process until a specific message is received, then completes.

Typical use case: Waiting for a reply from an external system or partner before continuing,  e.g., waiting for a supplier's order confirmation.

Notes:

  • Functionally similar to a Message Catch intermediate event, but modeled as a task,  often used to represent "waiting for a reply" as a discrete step in a request/response task pairing (Send Task followed later by Receive Task).

7. Business Rule Task

Icon: Table/grid lines

Behaviour: Work performed by evaluating a business rule or decision table (often via a decision engine such as DMN,  Decision Model and Notation) to produce an output based on input data.

Typical use case: Determining a discount tier based on customer purchase history, or evaluating eligibility rules for a loan application, where the logic is best expressed as a rules/decision table rather than a script.

Task Type

Icon

Performed By

Key Distinction

User Task

Person

Human, via task list/form

Engine tracks and presents the work

Service Task

Gear

System/automated

Calls an external service/API

Script Task

Pen

System/automated

Runs an inline script within the engine

Manual Task

Hand

Human, off-system

No engine visibility into how it's done

Send Task

Envelope

System/automated

Sends a message, fire-and-forget

Receive Task

Envelope (outline)

System/automated

Waits for an incoming message

Business Rule Task

Grid/table

System/automated

Evaluates a decision table/rule set

5. Gateways

Overview

Gateways control how a process branches and merges, they determine which path (or paths) the flow takes based on conditions, events, or combination logic.

Where a task represents work, a gateway represents a decision point, it does no work itself, it only routes the flow.

1. Exclusive Gateway (XOR)

Icon: X (or sometimes shown blank, with the X as the defining shape marker)

Behaviour: Routes the flow down exactly one of several outgoing paths, based on evaluating conditions in order. Only one branch is taken.

Typical use case: "If order value > $100, apply free shipping; otherwise, charge standard shipping",  only one of the two outcomes happens.

Notes:

  • The most common gateway type. Conditions are typically evaluated in a defined order, with a default path often configured in case no condition matches.

2. Parallel Gateway (AND)

Icon: Plus (+)

Behaviour: Splits the flow into all outgoing paths simultaneously (fork), or, when used to merge, waits for all incoming paths to complete before continuing (join). Not conditional,  every path is taken.

Typical use case: After an order is placed, simultaneously trigger "prepare shipment" and "send confirmation email" as two parallel branches that both must happen.

3. Inclusive Gateway (OR)

Icon: Circle (solid dot)

Behaviour: Routes the flow down any number of outgoing paths (one, several, or all) based on evaluating conditions independently,  each condition that's true activates its corresponding path. When merging, it waits only for the paths that were actually activated.

Typical use case: "Notify by email if the customer opted in; notify by SMS if the customer opted in",  both, one, or neither might apply depending on the customer's preferences, and any combination is valid.

Notes:

  • The trickiest gateway to model correctly at the merge point, since the engine needs to know how many of the possible paths were actually activated before it can safely proceed.

4. Complex Gateway

Icon: Asterisk (*)

Behaviour: Used when the branching or merging logic can't be expressed with the standard Exclusive/Parallel/Inclusive semantics,  the condition is a custom expression defined by the modeler (e.g., "proceed once at least 2 of these 4 paths have completed").

Typical use case: Advanced synchronization logic that doesn't fit a simple AND/OR/XOR pattern,  e.g., quorum-style rules ("continue once any 3 of 5 approvals are in").

Notes:

  • Rarely used compared to the other gateway types, and typically requires custom configuration since BPMN doesn't standardize the expression syntax for it.

5. Event-Based Gateway

Icon: Pentagon/circle outline (thin double-ring, distinguishing it from other gateways)

Behaviour: Routes the flow down exactly one path based on which event occurs first, rather than evaluating data conditions. Each outgoing path is attached to a different catching event (e.g., a message, a timer).

Typical use case: "Wait for either a customer reply (message) or a 48-hour timeout (timer), whichever happens first, and proceed down the corresponding path",  this is the gateway equivalent of racing multiple triggers against each other.

Notes:

  • Functions similarly to a Multiple intermediate catch event, but expressed as a gateway with separate downstream paths per possible event, rather than a single event node with combined OR logic.

Gateway

Icon

Logic

Paths Taken

Exclusive (XOR)

X

Data condition

Exactly one

Parallel (AND)

Plus

None (unconditional)

All

Inclusive (OR)

Solid dot

Data condition (independent)

Any number (1 to all)

Complex

Asterisk

Custom expression

Defined by custom logic

Event-Based

Double-ring

First event to occur

Exactly one, decided by timing

Gateway Behaviour in relation to Quality Modeller Test Generation

There are only 2 gateways that have an effect on the optimiser within Quality Modeller, Parallel (AND) and Inclusive (OR)

Parallel (AND)

  • Produces one test path that includes steps from both/all branches

  • Steps execute in order: all steps on one branch, then all steps on the other (order within branches is currently random)

Inclusive (AND)

  • Generates all possible combinations of branches that could be true