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.
| Capability | Open-source option | Coverage and notes |
|---|---|---|
| UI element recognition | Robot Framework with a Windows UI library such as a UI automation library | Partial. Element locating depends on the application's accessibility or automation support. Confirm library support against each legacy app before committing. |
| Unattended bot execution | Robot Framework run on a dedicated Windows bot machine under a service account | Robot 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 triggers | Task Scheduler or an orchestrator that launches Robot Framework runs | Covered 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 sync | n8n API integrations | Strong fit where the target system exposes an API. n8n does not drive a desktop UI, so it cannot replace screen-level steps. |
| Credential handling | Robot Framework with a vault or secrets manager, such as an open-source secrets store | Credentials 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 retries | Robot Framework logs and reports, plus retry keywords or custom retry logic | Robot 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 handling | Robot Framework libraries for files and spreadsheets, or n8n nodes for file processing | Typically covered. Confirm library support for your file formats, especially older Excel macros or proprietary exports. |
| Custom capabilities | Custom Python libraries built for Robot Framework | Some 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.
n8n is the better fix when the target system exposes an API, webhook or database that your team is allowed to use. n8n is a fair-code workflow automation platform built with TypeScript and Node.js that combines a visual canvas with custom JavaScript or Python code, and it advertises more than 1,500 integrations. Calling a documented interface avoids the fragility of screen scraping, and the flow keeps working when the front end changes.
- Best fit: Systems with a stable REST or SOAP API, a database you can query, or a vendor webhook.
- Maintenance cost: API versions change less often than screens, and contract changes are usually announced, which makes upkeep more predictable.
- Licensing check: n8n's Sustainable Use License permits internal business use, but confirm with counsel whether your use fits its terms before a wider rollout.
- Scaling limit: Queue mode and multi-main high availability are reserved for Enterprise self-hosted deployments, so confirm which edition you need before design.
- Gap: n8n does not run desktop sessions, so a system that only has a screen still needs a different tool.
Confirm that the API covers every field and action the process needs, including write operations and error responses, before you choose n8n over a UI bot.
Many processes need both approaches. A common pattern is to let n8n handle the parts that have an API, such as intake, approvals, notifications and records, and call a small Robot Framework job only for the single step that exists only on a legacy screen. The UI step then becomes a narrow, well-documented task instead of the backbone of the whole process.
- Boundary design: Define clearly which step is performed by the bot, what input it receives and what result it returns to the workflow.
- Error handling: The workflow should record a failed UI step, retry only where that is safe, and route the case to a person.
- Ownership: Separate owners for the n8n flow and the bot suite keep API changes and selector changes from blocking each other.
- Security: Give the bot a dedicated, least-privilege account and keep its credentials out of workflow definitions.
- Migration path: As the legacy system gains an API, replace the bot step and retire its suite.
Write the hand-off contract between the two parts down before building, and test failure paths as carefully as the success path.
Whichever approach you choose, UI bots need dedicated machines, and those machines become a recurring operational responsibility. Desktop automation depends on a logged-in session, display access and a predictable environment, so a bot machine is not the same as a server. Plan the hardware, licensing for the target software, and patching schedule together, because the bot is only as reliable as the desktop it runs on.
- Dedicated hosts: Run each bot on a separate machine or virtual desktop with its own account, so sessions do not collide.
- Application versions: Freeze or test the target application version on the bot image and treat an upgrade as a change that requires suite testing.
- Monitoring: Log every run with timestamps, outcomes and screenshots of failures, and alert on repeated errors.
- Access control: Restrict who can start, stop or edit bots, and store bot credentials in a secrets manager.
- Cost drivers: Machine count, software licenses for the target application and staff time for suite maintenance are the main recurring costs.
Ask your vendor or application owner which versions and licenses apply to a bot machine, since terms for running a desktop application unattended vary.
The choice of tool is also a choice of who will maintain the automation. Robot Framework suites are written and reviewed by people who understand test design and selectors, while n8n flows are usually built by integration or operations staff who understand APIs, data mapping and error handling. Mixing the two without clear ownership is a common source of stalled changes after the first team member leaves.
- Robot Framework skills: Keyword design, locator strategy, Python basics and reading test reports.
- n8n skills: Working with APIs, credentials, expressions, webhooks and, for self-hosting, container and database operations.
- Review practice: Require a second person to review every suite and flow before production, and keep a changelog.
- Documentation: Record each process, its owner, its target system version and its failure runbook.
- Hiring and training: Confirm whether internal staff can own the work or whether an external team will provide training and handover.
Before you commit, ask whether the people who will maintain each automation are named, trained and available for the life of the process.
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.
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.
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.
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.
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.
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.
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.

