Home & Global Resources
Blueprint Assess
Getting Started
Settings & Administration
Analyze
Overview
Scenario Demonstration
Features
Process Details
Blueprint Migrate
Getting Started
The Blueprint User Interface
Change Your Password
Open a Project
Organize Artifacts and Assets
Close a Project
Status Indicators
Jobs
Exporting from Source RPA Tools
How to export a UiPath Automation Project from UiPath Orchestrator
How to export .bprelease files from Blue Prism
Blue Prism VBO Matching on Import
How to Export .zip files from Automation A360 Control Room
Importing
Exporting
RPA Export from Blueprint
Variable Prefixing
Why We Create Multiple Similar Subflows During Migration
Understanding Wrapper Flows in Power Automate Desktop
Setting up defaultRunDotNetScriptReferences
AsEnumerable Support
XmlDocument Support
Bulk Reimport/Recalculate
Metabot Migration - Best Practices
Artifacts Management
Base Artifact Types
Creating and Managing Artifacts
View and Edit Artifacts in the Utility Panel
Concurrent User Activity in Artifacts (Steal Lock)
Using Descendants View
Global Actions
Rules
Introduction to Rules
Using Rules
Using Rules CSV
Common Procedures
Custom Action Mapping
Reuse Mapping to Power Automate Desktop
Manual Reuse
TODO, Error, and Robin Mapping
Script Mapping
Variable Name Dependency Mapping
Variable Renaming and Initialization
DLL/Method Invocation Mapping
Unresolved References
AA Metabots
Work Queues Mapping
Rules Wizard
Solutions & Best Practices
Working with Migration Output in Power Automate Desktop (PAD)
Blueprism to PAD Migration Output Details
UiPath to PAD Migration Output Details
AA to PAD Migration Output Details
RPA Value-Mapping Assessments
Why Choose Blueprint Cloud vs. On Premise ?
Setting up SAP for RPA
API & Developer Resources
REST API Request Header and Parameters
REST API Request Body and Parameters
REST API - Listing Artifacts in the Request Body
REST API - Defining an Artifact in the Request Body
REST API - Defining a Comment in the Request Body
REST API - Defining a Reply in the Request Body
REST API - Defining a Trace in the Request Body
REST API - Filter Parameter
REST API - Defining a User in the Request Body
REST API Requests
REST API - Add Attachment to Subartifact Request
REST API - Get Artifact Request
REST API - Add Traces Request
REST API - Get Project by Id Request
REST API - Update Custom Choice-Property Type Request
REST API - Publish Comments Request
REST API - Publish Artifact Request
REST API - Update Comment Request
REST API - Delete User Request
REST API - Add Comment Request
REST API - Close Review Request
REST API - Get Discussion Status Request
REST API - Update Reply Request
REST API - Get Attachment Request
REST API - Delete Comment Request
REST API - Create Project Request
REST API - Get Group Request
REST API - Rate Comment Request
REST API - Get Child Artifacts of Artifact Request
REST API - Discard Artifacts Request
REST API - List Artifacts Request
REST API - Rate Reply Request
REST API - Move Artifact Request
REST API - Delete Attachment Request
REST API - List Projects Request
REST API - Get Blueprint Product Version Request
REST API - Update Standard Choice Property Request
REST API - Get Review Request
REST API - Reply to Comment Request
REST API - Update User Request
REST API - Get Collection Request
REST API - Delete Artifact Request
REST API - List Collections Request
REST API - Authenticate Request
REST API - Get Artifact Type Request
REST API - List Artifact Types Request
REST API - Delete Reply Request
REST API - Get Root Artifacts of Project Request
REST API - Add Attachment Request
REST API - Create User Request
REST API - List Reviews Request
REST API - List Groups Request
REST API - Get User Request
REST API - Delete Traces Request
REST API - Add Artifact Request
REST API - List Users Request
REST API - Get Artifact Image Request
REST API - Update Artifacts Request
REST API - List Unpublished Artifacts Request
REST API HTTP Methods
REST API - HTTP HEAD Method
REST API - HTTP DELETE Method
REST API - HTTP GET Method
REST API - HTTP POST Method
REST API HTTP Status Codes
REST API - HTTP PATCH Method
Blueprint REST API
REST API Quick Start Example
REST API Requests and Responses
REST API Security and Authentication
REST API Known Issues & Constraints
REST API Requests
REST API Resources
REST API - Defining an ALM Job in the Request Body
Dashboards & Reports
Statistics Report Options
Using Scope and View
Statistics Dashboard
Statistics Reports
Applications Dashboard
Applications Report
Estimator Dashboard
Estimator Reports
How to Change the Main Process Label for Estimations
Bulk Reporting
Call Trees
Blueprint + PowerBI Dashboards
How to Create Microsoft Power Automate RPA Migration Estimates with Blueprint
Licensing
Settings & Administration
Overview of Blueprint Settings
System Reports
System Reports
License and Activity Reporting
User List
Project Activity
User Roles
Artifact Map
Project Usage
User Activity Report
Audit Log
System Logs
User Management
Creating and Managing Users
Creating and Managing Groups
Creating and Managing Instance Administrator Roles
Creating and Managing Project Administrator Roles
RPA Management
Microsoft 365 Authentication Settings
Integration Reporting
Migrate - Import/Export
Migrate - Dashboards
Migrate Settings
Advanced Settings
Projects
Installation
Blueprint Installation Guide
System Requirements
Supported Third-Party Components
Azure App Registration (Power Automate Export)
Release Notes
Table of Contents
- Why does my code in PAD look different?
- Blueprint Generated Code
- Variable Prefixes
- Wrapper Sub-flows
- Environment Variable Rules
- Logic Flattening Using Go To
- Rules for Custom Actions
- Rules for Unsupported/Unmapped Actions
- One to Many Conversions
- .NET Scripts
- Variable Type Conversions
- Generated Subflows
- Platform Specific Differences
- All Categories
- Blueprint Migrate
- Solutions & Best Practices
- Working with Migration Output in Power Automate Desktop (PAD)
Working with Migration Output in Power Automate Desktop (PAD)
This article describes some of the more commonly asked aspects of the Power Automated Desktop flows generated by Blueprint migrated from other RPA tools. Why does my code in PAD look different? The t…
- Why does my code in PAD look different?
- Blueprint Generated Code
- Variable Prefixes
- Wrapper Sub-flows
- Environment Variable Rules
- Logic Flattening Using Go To
- Rules for Custom Actions
- Rules for Unsupported/Unmapped Actions
- One to Many Conversions
- .NET Scripts
- Variable Type Conversions
- Generated Subflows
- Platform Specific Differences
This article describes some of the more commonly asked aspects of the Power Automated Desktop flows generated by Blueprint migrated from other RPA tools.
Why does my code in PAD look different?
The top priority when migrating to PAD is making each action behave exactly the same way it did in the previous platform. Moreover, Power Automate has a number of key differences from other platforms that require workarounds in order to maintain logic consistency when migrating. Below is a list of those key differences and how Blueprint deals with them.
Variable Scope
- Power Automate: Only has global variable scope. This means that all variables are visible in all sub-flows.
- Other platforms: Varying degrees of variable scoping. Also have environment variables
- Migration Result:
Program Flow
- Power Automate: Program flow is linear, one command is executed after another line by line
- Other Platforms: Use process diagrams that can have loops, state machines, and jump or return to any part of the process
- Migration Result:
Native and Custom Actions
- Power Automate: New to the RPA space, not that many available actions. Also the availability of 3rd party custom actions is small
- Other Platforms: Have large, mature activity palettes and robust 3rd party custom action ecosystems.
- Migration Result:
Data Types
- Power Automate: New to the RPA space, not that many available data types.
- Other Platforms: Have access to almost all .NET data types
- Migration Result:
Selectors
- Power Automate: Support Java, SAP, Browser, and UIA selectors
- Other Platforms: Support Java, SAP, Browser, UIA, and AA selectors
- Migration Result:
Blueprint Generated Code
- Power Automate: Support Java, SAP, Browser, and UIA selectors
- Other Platforms: Support Java, SAP, Browser, UIA, and AA selectors
- Migration Result:
Variable Prefixes
Because variables cannot be scoped to sub-flows in PAD, Blueprint adds a prefix to variables being passed to a sub-flow. This prefix is unique to each sub-flow. The sub-flow acts upon these prefixed variables and then where applicable the output is assigned again the main flow.
This approach has the unfortunate side-effect of adding many variables to the global scope. These prefixes and assignments can be removed during export by toggling "Variable prefix" to off as seen below

Wrapper Sub-flows
If a sub-flow has many inputs or outputs, occasionally calls to this sub-flow will be wrapped by another sub-flow. The reason for this is because there is a lot of boilerplate code required to setup and teardown a call to the underlining sub-flow.
Environment Variable Rules
PAD has a concept of environment variables however, the permissions and scope are vastly different than what's typical and expected from other platforms therefore, Blueprint mimics the behaviour of environment variables using Rules. Where possible, environment variable rules will be automatically enabled, in other cases, follow the instructions outlined here.
Logic Flattening Using Go To
PAD flows are intended to execute in a linear fashion however, other platforms allow for triggers and more complex program flow. For example, state machines, and returning to previous statements. In order to maintain cyclical logic in a linear framework, Blueprint takes advantage of Labels and Go To's. A user will see labels typically starting with L_, such as:

Rules for Custom Actions
For 3rd party or custom actions, Blueprint's Rules engine provides a mechanism to map these actions. See our in-depth article: Custom Action Mapping
Rules for Unsupported/Unmapped Actions
There are certain situations where either Blueprint does not support the migration of a given activity, or there's no generic solution. For these cases our Rules engine enables users to migrate these actions. For more detail read: Unmapped Actions
One to Many Conversions
PAD is still growing in its capabilities and has its own set of design principles. As a result, not all functionality in other platforms have a direct conversion. In these situations Blueprint will try its best to use only native PAD actions to replicate the original action. This may require many native actions. In some cases these actions will be put in a Region or in their own subflow entirely.
.NET Scripts
Certain functions cannot be converted natively and the only option is a .NET Script. Blueprint goes to great lengths to avoid using .NET Scripts however, in order to maintain logical consistency it is required.
Variable Type Conversions
PAD has a small set of native data types: Number, Text, List, DataTable, Boolean, Custom Object, and DateTime. In most cases other data types will be converted to a Custom Object. For example, a Dictionary<T,U> will be converted to a Custom Object. For platform specific data type conversions check our platform specific pages.
Blueprint also allows for explicit variable type conversions and initializations. Read: Variable Renaming and Initialization
Generated Subflows
When migrating from another RPA platform to Power Automate Desktop, Blueprint will create various subflows if needed based on the contents of the migrated bot
These Subflows will be generated for every Migrated Flow :
- Init_Variables - All variables declared in your source RPA file will be declared within this subflow:
One or more of these Subflows will be generated depending on content of the Migrated Flow:
These subflows will be created if the corresponding flag within the error handling of the source RPA tool was enabled:
- Err_TakeScreenshot - Captures and saves a screenshot at time of error
- Err_LogToFile - Logs capture error and current date time to provided file path
- Err_SendEmail - Sends an email to provided users
- Err_DumpVariables - Dumps values of all variables into a dictionary variable
Platform Specific Differences
How did we do?
Blueprism to PAD Migration Output Details