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

Maestro user guide

Last updated Aug 12, 2025

Accessing variables across subprocesses

In Maestro BPMN workflows, subprocesses provide a structured way to encapsulate logic and reuse parts of a process. To ensure smooth data flow between activities and across subprocess boundaries, Maestro uses a scoping model similar to lexical scoping in programming languages.

This section explains how variables are accessed within and across subprocesses—whether you need to pass data between activities in the same subprocess, expose internal outputs to a parent process, or retrieve variable values during debugging and runtime.



Accessing inputs within a subprocess

To access the output of a previous activity within the same subprocess, no additional configuration is required.

Example: If activity foo sets an output variable called foo_op, and a subsequent activity bar exists in the same subprocess, bar can reference foo_op directly.

Key rule: Variables defined in an activity are accessible to any downstream activity within the same subprocess, including nested elements. You do not need to pass them explicitly as subprocess inputs.

Exposing outputs from a subprocess

When a parent process needs access to output data from an activity inside a nested subprocess, you can expose that data using one of two approaches.

Approach 1: Using Output Variables
  1. In the inner subprocess, define an output variable—for example, inner_sp_op—and assign it the value of the internal activity's output (bar_op).
  2. In the outer subprocess (or parent process), define another output variable—for example, outer_sp_op—and assign it the value of the inner subprocess output (inner_sp_op).
  3. Downstream activities (e.g., qux) in the parent process can now reference outer_sp_op.
Approach 2: Using End Event Variables
  1. In the inner subprocess, configure the end event to declare an output variable such as ee_inner_op, and assign it the value of bar_op.
  2. In the outer subprocess, configure the corresponding end event to declare an output variable such as ee_outer_op, and assign it the value of ee_inner_op.
  3. Activity qux in the parent process can now reference ee_outer_op.
Tip: End event variables automatically propagate to the parent scope without needing separate output variable configuration.

Inspecting subprocess variables

You can inspect variable values at design time (via the debug API) or runtime (via the instance API) to verify scoping and data propagation.

Debug API - View variables
GET /v1/debug-instances/{instanceId}/variables?parentElementId=outer_subprocessGET /v1/debug-instances/{instanceId}/variables?parentElementId=outer_subprocess
Available variables:
  • foo_op
  • inner_subprocess_op
  • ee_outer_op
GET /v1/debug-instances/{instanceId}/variables?parentElementId=inner_subprocessGET /v1/debug-instances/{instanceId}/variables?parentElementId=inner_subprocess
Available variables:
  • bar_op
  • ee_inner_op
Runtime API – View variables
GET /v1/instances/{instanceId}/variables?parentElementId=outer_subprocessGET /v1/instances/{instanceId}/variables?parentElementId=outer_subprocess
Available variables:
  • foo_op
  • inner_subprocess_op
  • ee_outer_op
GET /v1/instances/{instanceId}/variables?parentElementId=inner_subprocessGET /v1/instances/{instanceId}/variables?parentElementId=inner_subprocess
Available variables:
  • bar_op
  • ee_inner_op
  • Accessing variables across subprocesses
  • Accessing inputs within a subprocess
  • Exposing outputs from a subprocess
  • Inspecting subprocess variables

Was this page helpful?

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