Apps & Automation

From the field archive · Learned in 2024

Moving From UiPath or Blue Prism to Power Automate: What I Look At First

Before anyone converts a single bot, these are the questions I ask. Most of them have nothing to do with the conversion tool.

Kaustubh Giri··9 min read

Hero image for Moving From UiPath or Blue Prism to Power Automate: What I Look At First

In 2024 I spent a good part of the year in conversations with customers who were running UiPath or Blue Prism and wanted to know whether Power Automate could take over. The question usually arrived as "can Power Automate do what our bots do?" That's a fair question, but in my experience it's the second question you should ask, not the first.

The first question is what your bots actually do today, and whether all of them still need to exist. In this post I walk through how I approach an RPA migration, what I learned from the customers I worked with, and what has changed in Power Automate since then. I'm not here to compare vendors. The platforms these customers used are capable. The goal is to help you move with fewer surprises.

What's changed since 2024

A few things make this conversation easier today. Hosted machine groups let you run unattended desktop flows at scale without building or patching your own VMs; Power Automate provisions and autoscales the bots, within the Hosted Process capacity assigned to the environment. Work queues give you prioritized, SLA-aware queues for transactional work. Process mining and task mining are built into Power Automate for discovery. The Automation Kit has a migration module with planning guidance and conversion samples. And Copilot Studio now has a computer use tool that lets an agent operate websites and desktop apps from natural-language instructions. Some of its hosting options are still in preview, so check current status on Microsoft Learn before you plan around them.

01Start with an inventory, not a converter

Almost every migration conversation I had in 2024 started with a demo of a conversion tool. I understand why. But converting a bot you should have retired is wasted effort, and converting a bot whose process has drifted just moves the problem to a new platform.

Here's how I approach it. Before anything is converted, I ask for a simple inventory of every production bot with a few columns filled in:

  • Business owner and the team that depends on the output.
  • Run frequency and volume, plus what happens when it doesn't run.
  • Systems touched, and whether each one has an API or connector today.
  • Credentials used, and whether they belong to a person or a service account.
  • Last change date, and who on the team can still explain the logic.

That last column matters more than people expect. If nobody can explain what a bot does, you're not migrating a process, you're reverse-engineering one.

My tip

If you have event logs from the systems your bots touch, run them through process mining in Power Automate first. It's a quick way to see whether the process you automated years ago still matches how the work is done now.

02Sort every bot into one of four buckets

Once the inventory exists, I sort each bot into one of four buckets. One clear decision per bot keeps the project honest.

BucketWhen it fitsWhat I recommend
RetireLow volume, no clear owner, or the underlying system has changedTurn it off, confirm nobody notices for a cycle, then archive the definition
Rebuild with connectorsEvery system involved now has an API or a Power Platform connectorUse a cloud flow. It's easier to maintain and doesn't need a machine
Move to a desktop flowAt least one step only works through a user interfaceUse a desktop flow for the UI steps, called from a cloud flow
Redesign with an agentThe work involves judgment, unstructured input, or a conversationConsider Copilot Studio, with desktop flows or computer use as tools

In my experience, the "rebuild with connectors" bucket is bigger than customers expect. Many bots were built years ago because an API didn't exist yet. It often does now.

03Map the concepts, not the actions

Teams that know another RPA platform well sometimes look for a one-to-one action mapping. I'd temper expectations there. The better exercise is to map the operating concepts, because that's where your runbooks, monitoring, and support model live.

Concept you already runWhere it lives in Power Automate
Central orchestration and schedulingCloud flows trigger desktop flows; machines and machine groups are managed in the Power Automate portal
Bot runtime machinesYour own registered machines, hosted machines, or hosted machine groups
Transaction queuesWork queues, with priority, SLA settings, and auto-retry on IT exceptions
Run queue and priorityDesktop flow queues, with High or Normal priority per run
Credential vaultPower Automate credentials backed by Azure Key Vault or CyberArk
Reusable componentsSubflows and child desktop flows, packaged in solutions
Release managementSolutions, connection references, and pipelines across environments

One thing worth knowing about work queues: Microsoft documents that only some work queue actions can currently be classified in data loss prevention policies, and cloud flow usage of work queues can't be restricted by them. If DLP coverage is part of your design, check the current list before you commit.

04The email question

The most common functional question I got was about email. Many finance and operations bots start with a mailbox: read new messages, save attachments, pull data from an Excel file, update a system, reply.

From the field

A customer's finance team shared what their accounts receivable bots did and asked, step by step, how Power Automate would handle each one. I walked through each step with them, starting with email: Power Automate for desktop includes actions to work with Outlook and Exchange mailboxes, so a straight port is possible. The refinement I'd add for any team in that position is a split: let a cloud flow own the mailbox trigger and the attachments, and keep the desktop flow for the steps that truly need the user interface.

Cloud flows are better at waiting for events, and desktop flows are better at driving screens. Don't tie up a machine polling a mailbox.

05Conversion tooling: accelerator, not finish line

Automated conversion is useful, and I've seen it save real time. The Automation Kit's migration guidance describes a typical pattern: assess and scan your existing automations to size the effort, convert them to equivalent Power Automate for desktop actions, and mark anything that needs a developer's attention with TODO comments so the remaining work is visible. Partners offer tooling that follows this approach.

From the field

A utility running a large Blue Prism estate wanted to understand its options. I arranged a demo and discussion with a migration partner so the customer's automation team could see assessment and conversion tooling for themselves. The part I point teams to first is the assessment scan. It turns a vague "how big is this?" into a list of processes ranked by complexity, which makes the pilot much easier to choose.

Here's what I recommend once you have conversion output:

  1. Pick three to five processes for a pilot: one simple, one complex, one business-critical.
  2. Treat every TODO as a design decision, not a typo. Some are better solved with a connector.
  3. Run the old and new bots in parallel on real data before cutting over.
  4. Measure run time, failure rate, and the effort to fix TODOs. Use those numbers to estimate the rest.
My tip

Validation gates help here. The Automation Kit guidance describes using ALM checks to make sure TODO items are removed and DLP checks pass before a solution moves to production. Even a simple checklist in your pipeline catches a lot.

06Infrastructure, licensing, and identity

This is where I see the most avoidable delays, because it involves infrastructure, security, and procurement teams. Start early.

Machines

Your own or hosted?

Registered machines give you full control. Hosted machine groups remove VM setup and autoscale bots across groups, up to the Hosted Process capacity assigned to the environment.

Licensing

Attended vs unattended

Attended and unattended runs are licensed differently, and hosted machines need Hosted Process capacity. Check the current Power Platform licensing guide before you size anything.

Identity

Who does the bot run as?

Decide early which accounts sign in to machines and which identities own the cloud flows. Service principal ownership keeps flows running when people leave.

Identity is the one I'd spend the most time on. In 2024, several customers planned to reuse the same service accounts their old bots used, which is reasonable, but those accounts were often subject to password rotation. I wrote about how to handle that in a separate archive post on service accounts and password rotation.

From the field

A telecom provider asked me how RPA fit with their broader Copilot strategy. The underlying worry was finishing an RPA migration only to redo it for agents a year later. My advice to teams with that worry is to keep UI automation modular: build desktop flows as small, single-purpose units with clear inputs and outputs. That way a cloud flow can call them today, and an agent can use them as tools later.

That advice holds up even better now. Copilot Studio agents can call agent flows and desktop automation, and computer use can operate an application from instructions when there's no API at all. I'd still use deterministic desktop flows for high-volume, rules-based steps, and reserve computer use for work where screens change often or the steps need some interpretation.

07Governance from day one

An RPA platform tends to accumulate privileged access: machine credentials, system accounts, and broad connectors. Set the guardrails before the first production run, not after.

  • Put every migrated automation in a solution, in a dedicated environment, not the default environment.
  • Store machine and application credentials as Power Automate credentials backed by Azure Key Vault or CyberArk, not in flow variables.
  • Use data policies to classify desktop flow action groups and block what you don't use.
  • Use connection references so production connections are mapped on import, not edited by hand.
  • Turn on monitoring in the admin center and review failed runs weekly during the first months.

For the wider toolbox, including inventory, monitoring, and data policies, see my governance tools guide. For environment strategy, see Environment Strategy and DLP.

Where I'd start

Build the inventory first and sort every bot into retire, rebuild, desktop flow, or agent. Map your operating concepts, not individual actions. Run a scan to size the work, pilot a handful of processes in parallel, and sort out machines, licensing, and identity before the pilot ends. Conversion tools are a real help, but the decisions you make before conversion matter more.

Happy to go deeper on any of this.

— K.G

Sources

  • Microsoft Learn: Introduction to the Power Automate hosted RPA; Hosted machine groups; Hosted machines
  • Microsoft Learn: Work queues overview; Work queues actions; Monitor desktop flow queues
  • Microsoft Learn: Overview of process mining and task mining in Power Automate
  • Microsoft Learn: Secure your data (desktop flow coding guidelines); Create an Azure Key Vault credential
  • Microsoft Learn: Support for service principal owned flows
  • Microsoft Learn: Automate web and desktop apps with computer use (Copilot Studio); Configure where computer use runs
  • Automation Kit for Power Platform: RPA migration module; Microsoft Power Platform Blog, "Begin your Robotic Process Automation modernization journey"
Kaustubh Giri

Kaustubh Giri · Sr Solution Engineer at Microsoft. 22 years in tech, 18 at Microsoft, helping enterprises build and govern AI agents on Copilot Studio and Power Platform.