Power Automate vs Custom Automation: Where Microsoft's Tool Falls Short
Power Automate is Microsoft’s answer to Zapier and Make. If your business runs on Microsoft 365 — Outlook, Teams, SharePoint, Excel, Dynamics — it’s bundled with your subscription and the integrations between Microsoft products are genuinely tight. Moving an email attachment to SharePoint, creating a Planner task from a Teams message, or populating an Excel table from a Forms submission: these work smoothly and reliably.
The problem is that very few businesses run entirely on Microsoft. The moment your automation needs to reach outside the ecosystem — connecting to your CRM, accounting software, or industry-specific tools — Power Automate becomes a different product entirely. More expensive, more limited, and harder to work with than it first appears.
Licensing Is Genuinely Confusing
Power Automate’s licensing model is one of the most complex in the automation space:
- Included with Microsoft 365 — “standard” connectors only (Microsoft products plus a limited set of third-party tools), with daily API call caps
- Power Automate Premium — US$15/user/month for “premium” connectors (Salesforce, SAP, Oracle, custom HTTP connectors). Per user, not per flow.
- Power Automate Process — US$150/month per unattended flow that runs on a schedule
- Pay-as-you-go — available through Azure, charged per flow run
The confusion starts with “standard” versus “premium” connectors. A connector that’s standard today could become premium tomorrow — Microsoft has reclassified connectors before. And the moment a single step in your flow uses a premium connector, every user who triggers that flow needs a premium licence.
For a team of 20 where 5 people trigger flows using Salesforce data, you’re paying an extra US$900/year. Scale that to 50 people interacting with premium flows and you’re at US$9,000/year on top of your existing M365 subscription.
Outside Microsoft, Connectors Are Shallow
Power Automate has over 1,000 connectors, which sounds impressive. Microsoft-to-Microsoft connectors are deep and reliable. Third-party connectors are often a different story:
- Limited trigger options — a connector might support “when a new record is created” but not “when a record is updated” or “when a field changes”
- Missing actions — the Xero connector handles basic invoices but not credit notes, manual journals, or bank reconciliation
- Authentication headaches — OAuth connections to third-party services expire or break. Microsoft’s own connections refresh automatically; third-party ones are less reliable.
- Data format mismatches — Power Automate handles Microsoft data types natively but struggles with the JSON structures and nested objects that non-Microsoft APIs return
The HTTP connector is the escape hatch — it lets you call any REST API directly. But once you’re writing raw HTTP requests and parsing JSON responses, you’ve left the “no-code” promise behind.
The Logic Builder Gets Unmanageable
Power Automate’s visual flow designer works in a linear, top-to-bottom layout. For simple sequential flows, it’s fine. For anything with real logic, the interface becomes a liability:
- Nested conditions are unreadable — three levels of if/then/else branching creates a visual tree that requires horizontal scrolling and repeated clicking to inspect
- Loops degrade — the “Apply to each” action iterates over arrays, but nested loops are unreliable and performance drops sharply past 100 items
- Expression syntax is proprietary — when the visual builder can’t do what you need, you write expressions in Power Automate’s own syntax. It’s not JavaScript, not Python, not Excel formulas — it’s unique to this tool.
- No version control — there’s no diff view, no meaningful change history, and no way to review changes across flows
Error Handling Is an Afterthought
Power Automate’s “run after” settings let you configure steps to run after a failure. This is better than Zapier’s approach, but still primitive:
- No try/catch blocks — each step’s failure handling is configured individually, unmanageable at 20+ steps
- No automatic retries with backoff — you have to build retry logic manually using loops and delays
- Partial completion is the default — a flow that fails on step 8 of 12 has already completed steps 1-7 with no rollback
- Error notifications are cryptic — especially for HTTP connector failures
For critical processes — order processing, invoicing, payroll — this level of error handling isn’t sufficient.
Performance and Throttling
Power Automate imposes throttling limits that catch teams off guard:
- 6,000 API calls per flow per 5 minutes on premium plans
- 100,000 actions per day per user across all flows
- Concurrent flow runs are limited — high-volume triggers queue up
- Individual action timeout of 2 minutes for HTTP calls
A flow processing 500 records at 3 API calls each needs 1,500 calls. Run that hourly and you’ll hit daily limits by mid-afternoon. The throttling doesn’t fail your flow — it slows it down with unpredictable delays.
When Power Automate Is the Right Choice
Power Automate earns its place when:
- You’re entirely in Microsoft’s ecosystem — the M365 integrations are genuinely excellent and effectively free
- Automations are simple and low-volume — moving files, sending notifications, basic approval workflows
- You need desktop automation (RPA) — Power Automate Desktop’s ability to automate legacy Windows applications is a genuine strength competitors lack
- IT governance is a priority — integration with Azure Active Directory gives IT teams visibility and control
Power Automate at Scale
- ✕ Premium licensing at US$15/user/month for non-Microsoft tools
- ✕ Shallow third-party connectors with missing actions
- ✕ Visual flow builder that's unreadable at scale
- ✕ No proper error handling or rollback
- ✕ Proprietary expression syntax
- ✕ 6,000 API calls per 5 minutes throttle
Custom Automation
- ✓ One-time build cost, no per-user licensing
- ✓ Direct API integrations with full functionality
- ✓ Clean, readable code with proper documentation
- ✓ Error handling with retry, rollback, and logging
- ✓ Standard programming languages
- ✓ No artificial throttling on your own infrastructure
Making the Move
Separate Microsoft from non-Microsoft. The flows connecting Microsoft products are probably fine. Focus on flows that reach outside the ecosystem — that’s where the pain, cost, and fragility concentrate.
Audit your licensing. Many businesses pay for premium licences they don’t need, or have users triggering premium flows unknowingly. Understanding your actual situation often reveals savings.
Calculate the full cost. Add up premium licences, debugging time, manual workarounds, and error costs. Most businesses spending over $10,000/year on Power Automate premium find custom automation pays for itself within 12 months.
Migrate incrementally. Replace the most expensive or fragile flows first. Power Automate can run alongside custom integrations during the transition.
The best thing Power Automate does is demonstrate which integrations matter. Every flow you’ve built is a map of how data moves between your systems. That map is valuable — and the next tool should work equally well with every system in your stack, not just the Microsoft ones.
Aaron
Founder, Automation Solutions
Building custom software for businesses that have outgrown their spreadsheets and off-the-shelf tools.
Keep Reading
Why Zapier Breaks at Scale
Zapier is perfect for simple automations — until you have 50 Zaps, a $750/month bill, and errors you can't debug. Here's where the breaking point hits.
Make vs Zapier: Which Automation Tool Is Better?
An honest comparison of Make and Zapier — pricing, complexity, reliability, and the scenarios where each wins. Plus when neither is enough.
No-Code vs Custom Software: When to Switch
An honest decision framework for choosing between no-code tools and custom software. When each makes sense, based on complexity, scale, and ROI.