Tutorials / Glossary / Call Activity

Call Activity

A reference to a separately-deployed process — runs it as a child process instance, rather than embedding its steps inline.

Shipping

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();