Quick answer
Robotic process automation drives application user interfaces the way a person would: clicking, typing, reading the screen. Workflow automation moves structured data between systems over APIs. Reach for RPA only when a system exposes no API, no database and no file export, because every UI bot is a permanent dependency on a screen layout you do not control.
Most of what ranks for robotic process automation is either 2018 vintage hype about digital workforces or a vendor page that ends in a demo booking form. Neither tells you the thing that matters operationally: RPA is not a strategy, it is an integration method of last resort, and the organisations drowning in it are the ones that treated it as the default.
The demotion is real and it is correct. It is also not the same thing as death. There are systems in production right now, in banks, insurers, hospitals and logistics firms, where a screen-scraping bot is genuinely the only supported route in. Pretending otherwise is how consultants lose credibility in the first meeting.
This post gives you the decision hierarchy that tells you when to reach for a bot, the honest cost of each rung below it, a vendor table with actual published prices where they exist, and the governance controls that stop an estate of 30 bots becoming an estate of 300 that nobody owns.
Robotic process automation is software that operates another application through its user interface, replaying the same clicks, keystrokes and screen reads a human operator would perform. The bot has no privileged access. It sees a window, locates a control by selector or by image, and acts on it.
That is the whole distinction. Workflow automation and iPaaS tools operate on structured payloads: a webhook fires, a JSON object moves, a record is created through a documented endpoint. API integration operates on a contract that the vendor versions and deprecates on a published schedule. RPA operates on pixels and DOM nodes that nobody promised would stay put.
The practical consequence: an API integration breaks when a contract changes, and you usually get advance notice. A bot breaks when someone moves a button, and you get no notice at all. This is the single fact that should drive every RPA decision you make.
Work down this ladder in order and stop at the first rung that works, because each step down buys you a permanently higher maintenance cost. The ladder is the spine of any sane automation policy, and writing it into your standards document is worth more than any tooling decision you will make this year.
If the two systems already speak to each other through a vendor-built connector, use it. The vendor owns the breakage. When Salesforce changes an object model, the connector maintainer fixes it and ships an update. Your maintenance cost is reading release notes.
You now own the integration logic, but you are building against a contract with versioning and deprecation notices. Maintenance is real but bounded: auth token rotation, rate limit handling, occasional schema migration. Budget a few engineer-hours per integration per year, plus whatever incident response your error handling does not cover.
Direct reads against a replica, a nightly SFTP drop, a scheduled CSV export. This is uglier because there is no contract at all, only a schema that the vendor can alter in a point release without telling you. It is still deterministic and it is still testable, which puts it well above the next rung.
Watch the licence terms. Some enterprise vendors explicitly forbid direct database access and will void support if they detect it. That is a contractual problem, not a technical one, and it is one of the legitimate reasons teams end up on rung four.
No API, no data access, no export. You drive the UI. Accept up front that you have created a dependency on a screen layout you do not control, that the vendor has no obligation to preserve, and that will change without warning during a routine patch cycle.
Watch out
The most expensive RPA projects are the ones built on rung four when rung two was available. Before approving any bot, require the requester to document which API they checked and what specifically was missing. Half the time the endpoint exists and nobody looked.
The four approaches differ mainly in what layer they touch and therefore what change breaks them. Cost follows from that: the closer you sit to a contract the vendor maintains, the less you pay in ongoing engineering time.
| Dimension | RPA | Workflow automation / iPaaS | Direct API integration | Custom code |
|---|---|---|---|---|
| Operates on | Application UI: windows, DOM nodes, screen regions | Prebuilt connectors and structured payloads | Documented HTTP or SOAP endpoints | Whatever you choose, including private protocols |
| Breaks when this changes | Screen layout, selector, locale, screen resolution, login flow | Connector version, platform limits, auth scopes | API contract version, auth scheme, rate limits | Any upstream dependency, including your own |
| Typical cost shape | High per-bot licence plus continuous repair labour | Per-operation or per-seat subscription, low build cost | Engineer build time, then low steady maintenance | Highest build cost, lowest per-run cost at volume |
| Who maintains it | A dedicated bot support function, in practice | Ops or RevOps, with vendor owning connectors | Whoever owns the consuming service | Your engineering team, forever |
| Best fit | Closed legacy systems with no programmatic access | SaaS-to-SaaS glue, approvals, notifications, routing | High-volume or latency-sensitive system-to-system flow | Core differentiating logic, unusual scale, strict SLAs |
For most B2B teams the middle two columns cover the overwhelming majority of work. RPA belongs in the first column only, and only when the fourth rung of the hierarchy has been reached honestly.
RPA wins wherever the target system is genuinely closed and the alternative is a human doing the same clicks. These are not edge cases invented to justify a licence, they are common in regulated and long-lived enterprise estates.
One case that looks like RPA but is not: an old system that speaks SOAP. A WSDL is an API, and a workflow platform can call it. Before scoping a bot against a legacy application, check whether it exposes a service endpoint. Our walkthrough on connecting to legacy SOAP APIs covers the envelope construction and auth patterns that make this workable.
An attended bot runs on a person’s machine while they are logged in and typically starts on their action; an unattended bot runs on a server or VM on a schedule with no human present. That single distinction drives licensing cost more than feature set, vendor choice or bot complexity.
Microsoft publishes the clearest illustration of the gap. Power Automate Premium, which includes attended desktop flows, is listed at 15 US dollars per user per month billed yearly. Power Automate Process, which unlocks unattended desktop flows, is listed at 150 US dollars per bot per month, and the hosted variant with a Microsoft-managed VM at 215 US dollars per bot per month, according to the Power Automate pricing page. That is an order of magnitude for the same automation logic, differing only in whether a human is present.
Worked example, stated assumptions. Suppose you have one process taking 20 minutes per run, running 8 times a day, 250 days a year. That is 667 hours of manual work a year. Run it unattended on a single Power Automate Process bot at the published 150 dollars per month and the licence costs 1,800 dollars a year, plus a Premium seat for the developer at 180 dollars. Ignore build and maintenance for a moment and the licence alone breaks even against roughly 3 dollars per hour of loaded labour cost, which is trivially met. Now add a conservative 40 hours a year of bot repair at a loaded 75 dollars an hour and the total becomes 4,980 dollars. Still fine at 667 hours saved. Halve the volume, double the repair load, and the maths inverts. The repair term, not the licence, is what decides these cases, and it is the term every vendor ROI calculator omits. If you want to model this properly, the inputs are laid out in our automation ROI and TCO benchmarks.
The operational tax on unattended bots is separate from licensing. An unattended bot needs a machine that stays logged in, a credential that never expires interactively, a session that survives Windows updates, and a policy exception so the screen does not lock. Every one of those is a security review.
The market has consolidated and repositioned around AI agents, but the classic platforms are all still shipping. What has changed is the marketing: every vendor now leads with agentic orchestration and mentions RPA further down the page. SS&C Blue Prism, for example, states that both Blue Prism Enterprise and its Next Gen platform continue to receive investment alongside the newer agentic layer in its 2026 platform roadmap.
| Platform | Licensing model and published price | Attended / unattended | Learning curve | Honest caveat |
|---|---|---|---|---|
| UiPath | Basic tier listed from 25 USD per month with capped users and 2 unattended robots; Standard and Enterprise are contact-sales only | Both, with unattended gated by tier | Moderate: visual designer, but Orchestrator concepts take real training | Real cost lands in the quote-only tiers. The published entry price tells you almost nothing about an enterprise bill. |
| Automation Anywhere | Quote-only. No per-seat list price published; sold as an enterprise agreement | Both | Moderate, cloud-native control room | You cannot budget from public information. Expect a procurement cycle before you know the number. |
| Microsoft Power Automate Desktop | Fully published: 15 USD per user per month for attended, 150 USD per bot per month unattended, 215 USD hosted | Both, split cleanly by SKU | Lowest of the commercial four, especially for Microsoft-shop teams | Desktop flows are Windows only and the free trial excludes them. Premium connector and Dataverse consumption add up separately. |
| SS&C Blue Prism | Quote-only, enterprise agreement; roadmap references new burst capacity licensing | Unattended-first heritage, server-centric | Steepest: strong governance model, correspondingly heavy process | Best-in-class control model, but the smallest sensible deployment is still an enterprise programme. |
| Robot Framework or Playwright scripting | Free and open source, Apache 2.0 and MIT respectively; you pay in engineering time and infrastructure | Whatever you build; unattended is just a scheduler | Requires actual engineers. No citizen-developer path. | No control room, no credential vault, no bot register, no audit trail unless you build them. That absence is where sprawl starts. |
UiPath publishes a Basic tier starting at 25 US dollars per month covering a small capped user count and two unattended robots, with Standard and Enterprise both requiring a sales conversation, per its pricing page. Treat published entry prices across this market as marketing artefacts. The number that matters arrives after procurement.
The open-source column deserves a specific warning. Robot Framework with its browser and desktop libraries will do the automation perfectly well. What it will not do is tell you which bots exist, who owns them, or which one silently stopped running in March. If you go this route, budget for building that layer, because you will need it.
Bot sprawl is what happens when RPA succeeds locally and is never governed centrally, and it is the failure mode every vendor page omits. The pattern is consistent and it takes about three years to fully develop.
The silent-failure case is the expensive one. A bot that crashes loudly gets fixed. A bot that half-completes, writes partial data and reports success is a data integrity incident that surfaces weeks later. The same detection principles apply here as anywhere else in an automation estate, and they are catalogued in our reference on automation failure modes.
Put these in before the estate reaches 20 bots, because retrofitting them at 200 is a project rather than a policy.
The register does not need a product. A YAML file in the same repository as the bot source, validated in CI, is enough for most estates:
- bot_id: fin-portal-invoice-pull
purpose: Downloads daily invoice PDFs from the carrier portal
target_system: AcmeCarrier web portal (no API as of last review)
business_owner: a.okafor@example.com
technical_owner: platform-ops@example.com
mode: unattended
schedule: "0 6 * * 1-5"
credential_ref: vault://rpa/acme-carrier/svc-invoice
downstream_consumers:
- ap-reconciliation-workflow
alert_channel: "#ops-rpa-alerts"
alert_on: [failure, missed_run]
api_check_last_done: 2026-05-14
api_check_result: none_published
review_due: 2026-11-14
decommission_when: AcmeCarrier ships the announced billing API Two fields there do the real work. The api_check pair forces someone to re-ask whether rung four is still necessary, which is how bots get retired rather than inherited. The decommission_when field makes every bot conditional by default instead of permanent by default.
LLM-driven computer use changes how brittle a UI automation is, and changes nothing about whether it is auditable. Both halves of that sentence matter, and most coverage picks one and ignores the other.
What genuinely improves: tolerance of layout drift. A model that reads the screen and reasons about what a button does will often survive a redesign that would have shattered a selector-based bot. Task specification in natural language also lowers the build barrier meaningfully. These are real gains and dismissing them is as lazy as overselling them.
What does not change: the system is probabilistic. The same input can produce different actions on different runs. Cost per run is measured in tokens and inference latency rather than a flat licence, and it scales with volume in a way a bot licence does not. Auditability is harder because the reasoning is not a diagram you can hand to a compliance officer.
A deterministic bot that fails 2 percent of the time fails the same way every time and you can code around it. A probabilistic agent that fails 2 percent of the time fails differently each time, which is a different class of problem entirely.
For a finance or clinical workflow, that difference is not a tuning problem, it is a risk category change. The honest position for 2026: use agents for the classification and extraction steps inside a workflow where a wrong answer is recoverable, and keep deterministic execution for the step that moves money or writes to a system of record. We covered where the current agent frameworks actually sit against production requirements in our reality check on CrewAI for client production.
Migrate incrementally, ranked by fragility multiplied by business criticality, and never as a big-bang replacement programme. A wholesale RPA-to-API migration fails for the same reason wholesale rewrites fail: you spend a year building before anything improves.
Pro tip
Count retirements as migration progress and report them that way. A programme measured only in bots rebuilt looks stalled; a programme measured in bots removed from the estate shows the risk reduction that actually happened.
Pick by what the target system exposes, not by what a vendor calls its product category.
RPA earned its demotion by being sold as a general automation strategy when it is a specific integration technique for closed systems. Used that way, deliberately, with a register and an exit plan per bot, it is a perfectly reasonable tool. Used as the default, it produces an estate that costs more to maintain than the work it replaced. If you are building out the broader layer above it, our guide to enterprise workflow automation covers where the durable orchestration should sit.
No, but it has been demoted. The major platforms are all still shipping and now lead their marketing with agentic orchestration rather than bots. RPA remains the correct answer for closed legacy desktop applications, mainframe terminals and third-party portals with no export. What has ended is the idea that RPA is a general automation strategy rather than a narrow integration technique.
RPA drives an application user interface, clicking and typing the way a person does, so it breaks when a screen layout changes. Workflow automation and iPaaS tools move structured data between systems through connectors and documented APIs, so they break when a contract or connector version changes. The second kind gives you advance notice; the first does not.
Only when there is no API, no permitted database or replica access, and no file export. Work down the hierarchy of native connector, documented API, database or file access, then RPA, and stop at the first rung that works. Also consider RPA where a vendor contract or certification forbids programmatic access to anything but the approved client.
Unattended execution is licensed per bot rather than per user because it replaces a machine running around the clock rather than assisting a person. Microsoft publishes Power Automate Premium at 15 USD per user per month for attended desktop flows and Power Automate Process at 150 USD per bot per month for unattended, which is roughly an order of magnitude for identical logic.
Bot sprawl is an estate of undocumented bots with no named owners, embedded credentials and failures nobody notices until finance finds a gap at month end. Prevent it with four controls: a version-controlled bot register with named business and technical owners, credentials fetched from a vault at run time, alerting on failure and missed runs rather than completion, and a twice-yearly review that retires unused bots.
Partially. Model-driven computer use tolerates layout drift far better than selector-based bots and lets you specify tasks in natural language. It does not fix non-determinism, auditability or per-run cost. A probabilistic system that fails differently each time is a different risk category from a deterministic bot, which matters for anything touching money or a system of record.
Yes. Robot Framework under Apache 2.0 and Playwright under MIT will both drive browsers and desktop applications competently, and unattended execution is just a scheduler. What they do not give you is a control room, credential vault, bot register or audit trail. Budget engineering time to build that governance layer, because its absence is exactly where sprawl begins.
Incrementally, never as a big-bang programme. Inventory every bot and map it to an owner and a downstream consumer, score each one on fragility and business criticality, then re-check the top quartile for an API that may not have existed when the bot was built. Rebuild the high-scoring bots, retire the tail with no recent runs, and diff both paths for one business cycle before cutover.
A practical Triumphoid guide to gemini gems vs chatgpt custom gpts: my blogging automation use…
A practical Triumphoid guide to claude projects vs custom gpts for wordpress content systems, with…
Advanced short-term vs long-term vector-backed context persistence across asynchronous execution runs.
A practitioner comparison of marketing automation platforms for 2026: HubSpot, Marketo, ActiveCampaign, Brevo, Klaviyo, Pardot,…
ChatGPT cannot watch video, it summarises transcripts. Which video types work, the four methods ranked,…
How to let tools like Claude or local agents communicate natively with your custom workflows.