# BPMN Activity

**In short:** A BPMN activity is a unit of work in a process. It can be a single task or a subprocess that groups further steps. Call activities reuse separate processes, and markers show repetition.

## Explanation

An activity is a piece of work in a process model. The facts cover several kinds.

**Embedded subprocess.** It groups process elements inside the parent process. It must have exactly one none start event, which is a start event with no trigger.

**Collapsed subprocess.** The diagram hides its inner steps to reduce complexity. This is for display only. It does not make the content reusable.

**Call activity.** It invokes another process that is stored as a separate BPMN file. Several processes can invoke that file. For reusable processes, call activities are the recommended choice.

**Event subprocess.** It sits inside its scope, much like a boundary event (see the article Boundary Event). A boundary event is attached to the edge of an activity. An event subprocess can be interrupting or non-interrupting. An interrupting one fires only once and ends the active instances of its containing scope. A non-interrupting one can fire many times.

**Multi-instance markers.** A multi-instance activity runs several times, either in sequence or in parallel. Three horizontal lines at the bottom mean sequential. Three vertical lines mean parallel. In the parallel case, all instances are created when the multi-instance body activates.

**Task types.** A service task is a work item with a specific type. The article BPMN Task Marker and Task Type covers task types in general.

## Example

An order process contains a step "Check customer". Its inner steps sit behind a collapsed subprocess, so the main diagram stays readable. "Calculate shipping" is a call activity, and other processes call the same stored shipping process. "Pack item" carries a parallel multi-instance marker, so all items in an order are packed at once. A non-interrupting event subprocess answers "customer asks for status" as often as needed.

## Trade-offs

A collapsed subprocess keeps a diagram simple, but it is for display only. It gives no reuse. A call activity gives reuse across processes, but the logic lives in a separate file. Readers must open that file to see the steps. An interrupting event subprocess ends the active work in its scope and fires only once. A non-interrupting one can fire repeatedly.

BPMN diagram: [A process with a collapsed-style embedded subprocess, a call activity and a parallel multi-instance task.](https://arc.fuet.ch/diagrams/concepts/modeling-bpmn/bpmn-activity/diagram-1.bpmn)

## Checks

- Reusable process logic is modeled as a call activity, not as a collapsed subprocess.
- Each embedded subprocess has exactly one none start event.
- Each event subprocess is marked clearly as interrupting or non-interrupting.
- Multi-instance activities show the correct marker: horizontal lines for sequential, vertical lines for parallel.

## Related

- [BPMN Task Marker and Task Type](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-task-marker.md)
- [BPMN Ad Hoc Sub-Process](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-ad-hoc-sub-process.md)
- [Boundary Event](https://arc.fuet.ch/concepts/modeling-bpmn/attached-boundary-intermediate-event.md)
- [BPMN Event](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-event.md)
- [BPMN Core Elements](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-core-elements.md)
- [BPMN Compensation Event](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-compensation-event.md)
- [Levels of Process Modeling](https://arc.fuet.ch/concepts/modeling-bpmn/levels-of-process-modeling.md)
- [BPMN 2.0 Notation](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-2-0-notation-overview.md)

## Sources

- [Call activities | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/call-activities/) — docs.camunda.io, accessed 2026-11-09
- [Multi-instance | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/multi-instance/) — docs.camunda.io, accessed 2026-11-09
- [Event subprocess | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/event-subprocesses/) — docs.camunda.io, accessed 2026-11-09
- [Embedded subprocess | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/embedded-subprocesses/) — docs.camunda.io, accessed 2026-11-09
- [Service tasks | Camunda 8 Docs](https://docs.camunda.io/docs/components/modeler/bpmn/service-tasks/) — docs.camunda.io, accessed 2026-11-09
