maestro
latest
false
UiPath logo, featuring letters U and I in white

Maestro user guide

Last updated Feb 19, 2026

Subprocesses and modularity

Subprocesses support model clarity by grouping related activities into a single reusable structure. They help reduce diagram complexity, isolate business logic, and encourage reuse.

In BPMN, a subprocess can be modeled either inline (collapsed or expanded within the same diagram) or as a reusable call activity.

In Maestro:

  • Inline subprocesses (collapsed or expanded) are supported for grouping and structuring logic within the same diagram.
  • Call activities are supported for invoking a separate agentic process (project).
  • Calling a different BPMN file from the same project is not supported. For reusable cross-process logic, create a separate agentic process and invoke it using a Call Activity.
  • When using a Call Activity, the calling process passes input and receives output via explicitly defined parameters.

Why use call activities?

A call activity references a subprocess defined elsewhere in the project or environment. It behaves like a reusable function. call activities improve process modeling by:

  • Reducing duplication across diagrams
  • Isolating reusable logic (e.g., approvals, validations, dispatching)
  • Keeping the main diagram concise
  • Supporting consistent behavior across process variants.

How to model subprocesses

In Maestro, you can model subprocesses in two ways:

  • As an inline subprocess (collapsed or expanded within the same diagram)
  • As a reusable subprocess using a Call Activity

Model an inline subprocess

Use an inline subprocess when you want to group related steps within the same process instance.

  1. Insert a SubProcess element into your BPMN diagram.
  2. Choose whether to display it in collapsed or expanded view.
  3. Model the internal logic directly inside the subprocess.
  4. Use the subprocess to group related steps while keeping the main diagram readable.

Inline subprocesses execute within the same process instance and share the same execution context.

Model a reusable subprocess using a Call Activity

Use a Call Activity when you want to reuse logic across multiple processes.

  1. Create a separate Agentic process (project) that contains the reusable logic.
  2. In the parent diagram, insert a Call Activity.
  3. Select the target Agentic process to invoke.
  4. Configure input and output variables to exchange data between the parent process and the called process.

A Call Activity invokes a separate Agentic process instance. Data must be explicitly mapped between the parent and called processes.

Modeling examples

Use case: An onboarding workflow uses the same Collect Documents subprocess in both employee and vendor onboarding processes. Instead of duplicating steps, a call activity is added in each parent process referencing the same subprocess.

subprocess-example

Use case: This subprocess example shows a conditional file download and upload workflow in Maestro. The process begins with a message start event and branches using an exclusive gateway. Depending on the condition, it either downloads an email attachment or a file from a record field. Both paths converge into an Upload File task, followed by a SubProcess element named Sub-Process1. This subprocess encapsulates additional steps related to post-upload actions before completing the workflow at the end event.

subprocess

Naming conventions

Subprocess and call activity names should:

  • Use business language, not technical terms
  • Describe the outcome (e.g., Collect Customer Data, not Form Step 2)
  • Reflect what the subprocess accomplishes, not how.
  • Participant lanes are not supported inside subprocesses.

Not supported

  • Calling a separate BPMN file within the same project is not supported.
  • For reusable logic across multiple processes, create a separate agentic process (project) and invoke it using a Call Activity.
  • Ad-hoc subprocesses are not supported.
  • Implicit variable sharing across process boundaries is not supported. Data must be explicitly mapped through input/output bindings.
  • Participant lanes are not supported inside subprocesses.

Multi-instance markers

Inline subprocesses support multi-instance execution.

Call Activities also support multi-instance execution when invoking a separate Agentic process.

Ad-hoc subprocesses and event subprocesses are not supported.

Nested markers

The following string variables are supported as nested iterators:

CategoryAttributesHow to use/access
OuterSP - Get Contact Information for each userInputCollectionvar.GetUsers
OuterSP - Get Contact Information for each userIterator Itemiterator.item.gid
InnerSP - Get all emails for each contactInputCollectioniterator[0].item.contactArray
InnerSP - Get all emails for each contactIterator Itemiterator[1].item.ContactId
Send EmailInputCollectioniterator[1].item.EmailArray
Send EmailIterator Itemiterator[2]item.emailAddress

For more details about the BPMN elements supported in Maestro, see BPMN support.

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo
Trust and Security
© 2005-2026 UiPath. All rights reserved.