Activities

Call Activity

Invokes a reusable, separately defined global process (or global task). Drawn with a thick border. The called process runs with its own context and returns when finished.

The Call Activity (Call Activity) is BPMN's function call: define “Verify customer identity” once as a global process, then call it from onboarding, credit review and support flows alike. The thick border signals *defined elsewhere*.

Data crosses the boundary explicitly — inputs are mapped in, outputs mapped back — which keeps the called process independent of its callers.

When to use and avoid

When to use

  • For logic shared by several processes: identity checks, standard approvals, billing routines.

  • To version and govern common procedures in one place.

  • To keep parent diagrams small while the detail lives in the called model.

When NOT to use

  • For blocks used only here — an embedded sub-process avoids the mapping overhead.

  • When the caller's data should be shared implicitly — call activities isolate context on purpose.

  • As a mere visual grouping — that's what embedded sub-processes and groups are for.

Business example

Reusing a global identity-check process

Diagrama BPMN: Reusing a global identity-check process
Reusing a global identity-check process

Open this example in the HEFLO process editor and explore the diagram from the inside.

Open in the HEFLO editor →

Step by step

  1. Account opening reaches the Call Activity (highlighted, thick border) “Verify customer identity”.
  2. The globally defined identity process runs with the mapped-in customer data; this parent waits.
  3. On completion, results map back and Open account proceeds.

Credit and support processes call the very same global process — one definition, many callers.

Differences

Call Activity vs Embedded Sub-Process

Reusable and isolated vs local and data-sharing. If two processes need the block, it must be a Call Activity; if only one does, embedded is simpler.

FAQ

What can a Call Activity call?

A global process or a global task defined independently in the repository — referenced by the calledElement attribute.

What happens if the called process throws an error?

It propagates to the call activity, where an Error Boundary Event on the caller can catch it — clean separation of concerns.

Related elements