Open-source alternative to Power Automate Desktop RPA

Desktop flows that click through legacy Windows apps can often be replaced by Robot Framework or by a direct API integration in n8n. This page explains how to choose, what bot machines you run, and what the migration involves.

On this page

Open-source alternative to Power Automate Desktop RPA: the short answer

If your Power Automate desktop flow replays keystrokes and mouse clicks against a legacy Windows application, and each bot now carries a renewal cost you want to avoid, the open-source option is Robot Framework for the flows that truly need UI automation. Many of those desktop flows should not be rebuilt as UI automation at all. If the target system exposes an API or database access, an integration built in n8n is usually the better fix, because it removes the screen-scraping layer entirely. n8n does not provide desktop RPA, so it cannot replace a flow that only works by driving a window.

Robot Framework describes itself as an open source automation framework for test automation and robotic process automation, free to use with no licensing fees. Its development is funded by the non-profit Robot Framework Foundation, which is a different model from a per-bot subscription. Your costs move to the machines that run it, the people who write and maintain the automation, and the support you choose to buy. Confirm the current license terms and the supported Windows versions directly on the Robot Framework site before you commit.

Start with a short inventory. For each desktop flow, ask the owner whether the target application has a documented API, a read or write database interface, or a file export that a workflow could use instead. Flows that answer yes to any of these are candidates for an n8n integration. Flows that depend only on the user interface, especially those built on older clients with no interface access, stay on the RPA track. Record which flows fall into each group before you size any replacement, because that split drives both the licensing you still need and the bot machines you run.

Which open-source option covers each desktop flow capability

This table maps each capability of a Power Automate desktop flow to the open-source option that can cover it, with coverage notes where the fit is partial. Read it row by row, and treat every entry as a starting point to confirm against the specific Windows applications and bot machines you run.

CapabilityOpen-source optionCoverage and notes
UI element recognitionRobot Framework with a Windows UI library such as a UI automation libraryPartial. Element locating depends on the application's accessibility or automation support. Confirm library support against each legacy app before committing.
Unattended bot executionRobot Framework run on a dedicated Windows bot machine under a service accountRobot Framework runs suites from the command line, but it has no built-in bot orchestrator or queue. You must add scheduling and dispatch yourself.
Scheduling and triggersTask Scheduler or an orchestrator that launches Robot Framework runsCovered by Windows or a scheduler you operate. Triggers from business systems usually need an API flow in n8n that starts the bot job.
API-based triggers and data syncn8n API integrationsStrong fit where the target system exposes an API. n8n does not drive a desktop UI, so it cannot replace screen-level steps.
Credential handlingRobot Framework with a vault or secrets manager, such as an open-source secrets storeCredentials must be stored outside test code. Confirm how your chosen vault delivers secrets to bot machines and what audit trail it keeps.
Logging and error retriesRobot Framework logs and reports, plus retry keywords or custom retry logicRobot Framework produces run logs and reports, but retry behavior and alerting for failed bots usually need custom code or a monitoring stack.
File and spreadsheet handlingRobot Framework libraries for files and spreadsheets, or n8n nodes for file processingTypically covered. Confirm library support for your file formats, especially older Excel macros or proprietary exports.
Custom capabilitiesCustom Python libraries built for Robot FrameworkSome legacy controls, terminal emulators or vendor-specific dialogs need custom libraries. Budget for development and testing of these gaps.

When Robot Framework fits and when n8n is the better fix

Robot Framework fits when the system you need to automate has no usable API, no database access you are permitted to use, and no export path, so the only way in is the screen. It describes itself as an open source automation framework for test automation and robotic process automation (RPA), with no licensing fees, which makes it a common choice for teams that already write test suites. Its keyword-driven syntax lets testers and analysts read a suite, while the Python or Java libraries handle the UI automation underneath.

  • Best fit: Legacy Windows or terminal applications with stable screens and no integration layer.
  • Maintenance cost: UI selectors break when a vendor changes a button, field label or layout, so someone must own selector updates after every application release.
  • Skills needed: Someone who can write and review keyword-based suites, debug element locators and manage test data, plus a reviewer who understands the business process.
  • Operational detail: Suites run on a bot machine that needs a logged-in session, display access and a stable screen resolution.
  • Test value: The same suites can verify the automated steps, which helps when auditors ask how a manual process was replaced.

Before committing, confirm with the application owner whether an API or export is planned, because that would make a UI bot a temporary bridge rather than a long-term design.

How the bot machines fit into a self-hosted setup

The bot machine is the Windows host or virtual machine where Robot Framework suites run unattended after you migrate. Keep these hosts separate from the desktops people use every day. Each bot should have its own local account with only the application rights its suites need, and it should not sit in a user's interactive session. Put the bots in a dedicated network segment, allow them outbound only to the systems they automate, and keep them on the same patching and logging baseline as your other servers. Confirm with your security team how many bots you need and how many run in parallel in your own environment, since that depends on the applications under test and the job volume. Treat any sizing figure from a vendor or a blog as a starting hypothesis, not a plan. Jobs reach the bots in one of two ways. A scheduler on the bot host, such as the Windows Task Scheduler or a CI runner, can start robot at fixed times. For event-driven work, n8n can trigger the run through an API call or a queue. In n8n queue mode, the main instance handles triggers and webhooks and passes executions through Redis to workers that read and write workflow data in PostgreSQL. A bot host that runs an n8n worker must therefore share the main instance's encryption key, because that key is what lets workers decrypt credentials stored in the database. Store that key in your secrets manager, restrict who can read it, and confirm the worker and webhook processors all receive the same value before you test a trigger. Credentials and session state need the most attention. Do not let suites read passwords from plain files or from the bot's shared profile. Pass secrets at runtime from a vault, scope them to one job, and avoid writing them to Robot Framework logs or output files, which are retained by default. Clear browser profiles and temporary folders after each run, and keep one run's cookies or sessions away from the next. Ask your identity team whether the bot accounts can use service identities or certificates instead of interactive passwords, and whether multi-factor prompts will block unattended runs.

Running the bots alongside the rest of the Power Platform

Desktop bots rarely run alone. They sit beside Microsoft 365 cloud flows, API integrations and the databases and files that other teams read. The cards below cover the decisions that keep these pieces from conflicting while bots are replaced one at a time, and they are not a full migration plan.

Keep Microsoft 365 connectors in cloud flows

Flows that depend on Outlook, SharePoint, Teams or Dataverse connectors often have no equivalent in a self-hosted tool, and rebuilding them can cost more than the bot it touches. Leave these flows in Power Automate until you confirm which connectors your self-hosted platform supports and which credentials it can use. Record each flow's connectors and owner in one inventory so the decision is made per flow.

Keep desktop flows until each bot is replaced

Do not switch off a desktop flow because its replacement exists on paper. Run the Robot Framework suite and the existing bot against the same test inputs, compare outputs on the target application, and retire the bot only after the team that depends on it signs off. Keep the original flow and its machine available for rollback until the replacement has run through a full business cycle.

Use n8n for API integrations

When a desktop flow scrapes a web page or copies data between two systems that both expose an API, an API integration in n8n is usually the better fix. Confirm that the target system offers an API with the scopes you need and that the service account is limited to the actions the bot performed. Keep a bot only where no API exists and the application can be driven through its interface.

Share outputs through files or databases

Bots and workflows often exchange data through a shared folder, a CSV drop or a table. Define one owner, one location, one schema and one file naming rule for each handoff before either side writes to it. Check that the storage location is inside your network and that access follows the same role model as the source system.

Separate platform and automation ownership

A platform team should own the runtime, credentials, backups, patching and access to the bot machines, while business or process teams own the logic of each automation. Write down who approves a new bot, who can change its credentials and who responds when it fails at night. Without this split, bots and workflows drift into unsupported states that no team is accountable for.

Prevent two systems updating one record

The main risk of running old and new automation side by side is a duplicate or conflicting write to the same record. Assign each record type a single system of record and mark the other path read-only during the overlap. Add a reconciliation check that compares counts and key values between systems and alerts on mismatches before anyone trusts the new flow.

Migrating desktop flows to Robot Framework or n8n

This sequence turns each Power Automate desktop flow into a documented decision, a tested replacement and a bot machine that runs it, with the old flow kept as a reference until the replacement has run in parallel. Power Automate desktop flows cannot be imported into another tool, so the work is a rebuild.

  1. Inventory every desktop flow

    Someone who administers the Power Automate environment lists every desktop flow with its owner, the target application, its schedule, the credentials it uses and the data it reads or writes. Include flows that run unattended on bot machines and flows that business users start by hand. Confirm the inventory with each owner, because flows that are not on a shared list tend to surface only after the license lapses. The output is a single register that every later step refers to.

  2. Classify each flow by replacement path

    The automation lead, with the business owner, marks each flow as API-replaceable, UI-only or retire. An API-replaceable flow reaches the system through a documented interface that n8n can call, such as a REST endpoint or a database. A UI-only flow only works through the screen, so it is a candidate for Robot Framework. A retired flow no longer serves a purpose. The output is a classified register that names the replacement for each flow.

  3. Build Robot Framework suites or n8n workflows

    Engineers rebuild each UI-only flow as a Robot Framework suite, using keywords for the application's screens, and each API-replaceable flow as an n8n workflow. Credentials are re-created manually in the target tool, because Power Automate credentials cannot be exported. Store secrets in your approved secrets manager rather than in workflow definitions. The output is a versioned source tree and a set of workflows, each with test inputs and expected results.

  4. Provision bot machines and access

    Infrastructure staff prepare Windows machines that run the Robot Framework suites, with the same application versions, display settings and network paths the original bots used. Assign a dedicated service account to each bot, limit it to the systems it needs and record where the machines sit. Confirm with the platform team that the machines can reach the target applications and that scheduled runs are logged. The output is a bot inventory with documented access and a successful test run on each machine.

  5. Run old and new flows in parallel

    The operations team runs the Power Automate flow and its replacement side by side against the same inputs, then compares outputs, record counts, error handling and timing. Differences are logged and fixed in the new build, and each fix is rechecked. Where a flow writes to a shared system, run the replacement against a test copy first. The output is a comparison report signed off by each business owner for every flow.

  6. Switch off flows and bot licenses

    After the owner signs off, disable each Power Automate desktop flow, remove its schedule and document the date it stopped. Then release the attended and unattended bot licenses that no longer have a flow to run, and confirm the change with your Microsoft account team or licensing contact. Keep the exported flow definitions and the register as reference records. The output is an environment with no active desktop flows and a licensing record that matches the new bot inventory.

What the cost of replacing desktop bots actually includes

Robot Framework carries no licensing fee, so the cost of replacing Power Automate Desktop bots sits almost entirely in the machines, people and operations that run the suites. Start by listing each component separately in the quote: the bot machines or virtual machines that run unattended desktop sessions, the Windows licenses those machines need, the engineering time to build and maintain the keyword-driven suites, the time spent repairing selectors when a legacy application changes its interface, the monitoring and logging stack that shows which runs failed and why, and any paid support you choose to buy. Ask the implementation partner to state which of these are one-time costs (initial build, hardening, documentation) and which recur every month or every year (infrastructure, Windows renewals, maintenance, support). Confirm the Windows licensing terms for your own virtualization platform with your licensing advisor, since they depend on how your machines are deployed and accessed.

The main cost drivers are the number of legacy applications being automated, how often their user interfaces change, and how many bots must run in parallel. Each additional application adds build and upkeep work, a frequently changing interface multiplies maintenance, and parallel bots multiply machines, Windows licenses and monitoring capacity. Keep the orchestration side in view as well. n8n Community is free to self-host under the terms of its Sustainable Use License, which covers internal business use, but licensing alone does not settle whether your organization may use it in every context, so confirm that against the n8n LICENSE file. If you need Business features, the n8n pricing page lists the Business plan at 667 euros per month billed annually, currently self-hosted only. Whether any part of that tier is needed depends on whether SSO, environments with Git or log streaming are requirements, not on the desktop bots themselves.

Questions buyers ask before replacing desktop flows

Does Robot Framework replace every Power Automate desktop flow?

No. Robot Framework replaces the desktop flows that can be expressed as scripted, repeatable steps on Windows applications, but it does not replace every flow one for one. Flows that only move data between web APIs or SaaS products are usually better rebuilt as API integrations in n8n, which needs no bot machine at all. Flows that depend on a desktop application with no API, a terminal session or a vendor client are the strongest candidates for Robot Framework. Flows that need attended, human-in-the-loop interaction on a user's own screen may still need a different design. Inventory each flow by the systems it touches before choosing a tool, and expect a mix of outcomes. Robot Framework is free to use with no licensing fees, but that does not remove the cost of building and maintaining the automations.

How much effort and time does a desktop RPA migration need?

The effort depends on the number of flows, how stable the target applications are, and how many of them have an API that can replace the UI automation. Each flow needs to be recorded or documented, rebuilt as keywords and test-style cases, run against a non-production copy of the application, and then scheduled on a bot machine. Flows that break whenever a vendor updates a screen layout take the most maintenance. Ask any provider, including DeployOpen, for a written scope that lists flows, systems, environments and deliverables before agreeing a timeline. DeployOpen works on fixed-scope engagements, so the schedule follows from that agreed scope rather than from an estimate made in advance.

What does the client team have to provide for the migration?

The client team supplies the knowledge and access that an outside team cannot infer. In practice this means:

  • A flow inventory with owners, business purpose, frequency and the systems each flow touches
  • Test accounts and non-production copies of the Windows applications, with the same versions as production
  • Named approvers for change, security review and go-live
  • Access to the target bot machines, service accounts and any credential store the automations will use
  • Business users who can confirm that rebuilt flows produce the same results

Identify these owners before the work starts. Delays usually come from missing access or unclear ownership, not from the automation code itself.

Can n8n run bots that automate desktop applications?

No. n8n is a workflow automation platform for APIs, databases, webhooks and SaaS applications, and it does not mimic keyboard and mouse input on Windows desktops. Where a Power Automate desktop flow exists only because a legacy application has no API, n8n cannot replace it directly. The usual split is that n8n handles flows built on system-to-system integration, while Robot Framework or another desktop automation tool handles the UI-only cases. Confirm this split with your own inventory, because some applications expose APIs or database access that make a desktop bot unnecessary.

How should the bot machines running Robot Framework be secured?

Treat each bot machine as a privileged workstation. Build them from a hardened, patched image, keep them in a segmented network zone, and restrict outbound access to only the systems each flow needs. Give each bot a dedicated service account with the least privilege required, rotate its credentials, and store secrets in a vault rather than in test files. Log every run and retain the output, and restrict who can change the automation code. Remember that a bot can read any data its screen shows, so review what each bot can see. Confirm your organization's own control requirements with your security and compliance teams, since they set the baseline for these controls.

Does the Robot Framework Foundation affect support for the framework?

Robot Framework is developed with funding from the non-profit Robot Framework Foundation, and it is free to use with no licensing fees. The Foundation's funding model means you do not pay a license to use the framework, but it also means there is no vendor contract that guarantees support response times. Support for a production bot estate typically comes from an internal team, a service partner, or a support retainer that you agree in writing. Ask any provider which versions they support, how they handle upgrades and who is accountable when a library breaks. Check the Foundation's own site for current information about the project.

Can we replace desktop flows without outside help?

Yes, if you have engineers who can write and maintain Python-based automation, a team that owns the bot machines, and time to run tests and handle change. Many organizations start with an internal pilot on one or two flows to learn the maintenance cost before deciding on a wider plan. Outside help is most useful for the inventory, the security design of the bot estate, and the handover of runbooks and tests. DeployOpen offers fixed-scope implementation, hardening, documentation and support as retainers, and it does not offer a price list. A written scope is the basis for a quote.

Licensing and support obligations to check before you commit

Robot Framework is the open source piece of this stack, and the licensing question is mostly about who pays for support, not about the software itself. Robot Framework describes itself as free to use with no licensing fees, with development funded by the non-profit Robot Framework Foundation. Your costs will be the people who build and maintain bots, the machines they run on, and any commercial support you choose to buy. Confirm with the Robot Framework project, or with a support provider, what level of assurance your organization needs for a framework your bots depend on.

If the design includes n8n for API integrations, its license is more restrictive than the framework's. n8n's main codebase is under the Sustainable Use License, which permits use only for your own internal business purposes or for non-commercial or personal use. Files with .ee in their name or directory are outside that license and require a valid n8n Enterprise License. Before you deploy, check whether a planned use, such as offering automations to customers or to a partner, falls outside internal business use, and check whether any module you plan to use sits under an .ee path. Have counsel review these terms against your intended use.

Support and SSO are separate purchasing decisions. According to n8n's pricing page, SSO and LDAP are included only in the Business and Enterprise plans, and Enterprise adds dedicated support with an SLA. If your bot operators must sign in through your identity provider, budget for a plan that includes SSO, and ask n8n which support tier covers your incident response needs. Write down the support model you need, including who answers when a bot machine or a workflow fails overnight, before you choose between a community approach and a paid plan.

How DeployOpen scopes and delivers desktop RPA replacement

DeployOpen plans and implements self-hosted open-source automation inside your own infrastructure, including the Robot Framework bot machines that replace Power Automate desktop flows. Engagements start with a written scope that separates legacy screen automations from API integrations, so each workflow is handled with the right tool.

How we scope

  • Inventory each desktop flow by owner, application, Windows version and the data it touches.
  • Classify each flow as a Robot Framework candidate, an n8n API integration or a retirement candidate.
  • Agree deliverables, timelines and responsibilities in writing before any build work starts.

How we build

  • Implement Robot Framework suites in your own repository with reviewed, version-controlled keywords and locators.
  • Set up bot machines in your network with dedicated service accounts and least-privilege credentials.
  • Build n8n workflows for API-capable systems, testing each against staging data before production use.

How we hand over

  • Document each automation, its trigger, its credentials, its owner and its failure handling.
  • Provide runbooks for bot machine patching, credential rotation and restarting failed jobs.
  • Run parallel operation with the original flows, then confirm cutover with your named owners.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after handover.
  • Retest bots after application updates, since screen changes are the usual cause of breakage.
  • Confirm with your team which upgrade and patch responsibilities stay internal and which move to the retainer.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.