---
title: Wrapper Subflows
slug: blueprint/wrapper-subflows
docTags: yO7XZ9PJxDCKZ-Mf4TSYB
createdAt: 2026-04-17T18:28:53.268Z
---

:::CtaButton{label="🟢 Migrator" openInNewTab="false"}

:::

# Wrapper Subflows

If you notice extra **Run Subflow** actions in your migrated PAD flow, this is expected. Subflows prefixed with "w" are **Wrapper Subflows** — Blueprint generates them to handle argument passing, which PAD does not support natively in subflow calls.

***

## Why Wrapper Subflows Exist

Power Automate Desktop's **Run Subflow** action has no mechanism for passing arguments directly. When the source process requires argument passing between subflows, Blueprint creates wrapper subflows to handle it, ensuring the migrated flow behaves the same way as the original.

Wrapper subflows are only created when a subflow call passes **more than five arguments**. Calls with five or fewer arguments are handled inline — no wrapper is created.

:::BlockQuote
**Example:** If Main calls Subflow A, and Subflow A calls Subflow B, and each call passes more than five arguments, Blueprint generates two wrapper subflows — one for each call.
:::

***

## What a Wrapper Subflow Does

A wrapper subflow runs immediately before the subflow it wraps. It performs three functions in sequence:

1. **Variable Initialization** — Initializes internal variables from the source RPA tool. Variables with no default value are set to NULL.
2. **Argument Assignment** — Assigns input and output argument values for the subflow call.
3. **Subflow Execution** — Calls the target subflow as its final step.

If multiple calls share the exact same arguments, the same wrapper is reused rather than duplicated.

***

# Naming Conventions

All wrapper subflow names begin with **"w"**, followed by a prefix derived from the calling flow's name and then the called subflow's name.

| **Scenario**                                                           | **Prefix logic**                         |
| ---------------------------------------------------------------------- | ---------------------------------------- |
| Main is the caller                                                     | No additional prefix — just "w"          |
| Called subflow name has multiple words separated by special characters | "w" + first 2–3 letters of each word     |
| Called subflow name is a single camelCase word                         | "w" + first 2–3 uppercase letters        |
| Called subflow name has one uppercase letter or is all lowercase       | "w" + first 2–3 letters of the flow name |
| Flow name starts with a special character or number                    | "w" + underscore added as prefix         |

**Examples:**

| **Caller subflow**    | **Called subflow** | **Wrapper name**     |
| --------------------- | ------------------ | -------------------- |
| Subflow\_A            | Subflow\_B         | wSA\_SubflowB        |
| subflow\_a            | subflow\_b         | wSA\_SubflowB        |
| subflowa              | subflowb           | wSUB\_subflowb       |
| Main                  | \_5550 Subflow     | w\_\_5550 Subflow    |
| \_5550\_Main\_Process | Extract\_Data      | wMP\_\_Extract\_Data |

:::hint{type="info"}
ⓘ If the same caller subflow calls the same target subflow multiple times with different arguments, Blueprint creates a separate wrapper for each variation, distinguished by a numeric suffix — e.g., wSA\_SubflowB, w1SA\_SubflowB, w2SA\_SubflowB.
:::

