Call Activity
A reference to a separately-deployed process — runs it as a child process instance, rather than embedding its steps inline.
A call activity (drawn as a task-shaped rectangle with a thick double border) invokes another, independently-deployed process definition by ID as a child instance, then waits for it to complete before continuing. This is different from a sub-process, whose steps are embedded directly inside the parent diagram.
Call activities are useful for genuinely reusable process fragments — a "send invoice" flow used by several different parent processes, for example — that are deployed, versioned, and maintained as their own process definitions rather than being copy-pasted into every process that needs them.
Example
Bpmn.createProcess("order-flow")
.startEvent("start")
.serviceTask("charge", { taskType: "payment-charge" })
.callActivity("shipping", {
name: "Shipping",
processId: "shipping-process", // a separately-deployed process
propagateAllChildVariables: false,
})
.endEvent("end")
.withAutoLayout()
.build();