Power Automate came with your Microsoft 365 licence, so nobody had to ask permission. Somebody built a few flows, they mostly work, and now the business quietly depends on them. We rebuild them so they survive a leaver, a licence review and the day Microsoft starts enforcing its published action limits.
Because Power Automate is bundled with Microsoft 365, it never goes through procurement. Somebody in accounts builds a flow that files an email attachment into SharePoint and posts a message to Teams. It works, so they build another. Eighteen months later there are forty of them, made by nine different people, and not one is written down anywhere.
Then it breaks in a way no other automation platform breaks. A flow’s connections authenticate as the individual who created them, and a background flow’s throughput is drawn from the licence of whoever owns it. When that person changes role or leaves, the connections stop authenticating and Microsoft’s own documentation says the flow drops to the lowest performance profile. Nothing announces any of this. A flow that keeps failing for fourteen days is simply switched off.
The fix is not more flows, it is deciding who owns them. We take what is already running, move ownership off personal accounts, work out which flows genuinely need a premium licence and which only used the generic HTTP action out of habit, and put the ones that matter into solutions so they can be moved, versioned and handed over.
Built around what Microsoft actually charges for.
Licence-Aware Build
Most small-business automation runs on standard connectors, so SharePoint, Outlook, Teams, OneDrive, Excel Online and Planner are already covered by the Microsoft 365 licence you pay for. We keep flows on that side of the line where it is honest to do so, including reaching for Send an HTTP request to SharePoint instead of the generic HTTP action, which is premium and pulls the whole flow with it.
An Action Budget First
Power Automate meters Power Platform requests, and it counts actions rather than runs: a Compose, an Initialize variable, a step that failed, every automatic retry, each page of a paginated result. We work out actions per run multiplied by runs per day before building anything, because that single number decides whether you need a Premium licence per person or a Process licence sitting on the flow.
Ownership Off One Account
A connection belongs to the person who authenticated it, so a flow built on somebody’s own sign-in stops the day their Entra ID account is disabled. We move the flows that matter onto a service account, add co-owners, and put the ones that must never stop on a Process licence so they no longer depend on any individual’s entitlement.
The Microsoft 365 Joins
Approvals routed through Teams, a SharePoint list that drives a process instead of just storing it, Outlook handling that survives a busy inbox, Excel Online as the sheet everybody already edits. This is where Power Automate genuinely beats the alternatives, because the connectors are first-party and your people are already signed in.
SharePoint Lists Or Dataverse
A SharePoint list costs nothing and works well until it crosses the 5,000-item view threshold, after which filters and sorts on unindexed columns start failing on lists that were fine last month. We index the right columns and filter at the trigger first, and only move you to Dataverse when you truly need relationships and row-level security, because Dataverse is a premium connector with metered storage attached to it.
Solutions, Environments, Handover
Flows built loose in the default environment cannot be promoted, versioned or handed over cleanly. We build inside solutions with connection references so the same flow moves from development to test to production, and we work within whatever data loss prevention policy your IT team has already set rather than asking them to relax it.
We already pay for Microsoft 365. Does that mean Power Automate is free?
The licence is already sitting there, which is exactly why the cost gets underestimated. What Microsoft 365 seeds you is cloud flows on standard connectors, so SharePoint, Outlook, Teams, OneDrive, Excel Online and Planner really do cost nothing more. The moment a flow touches a premium connector, which includes SQL Server, Salesforce, Dataverse, any custom connector and the generic HTTP action, it needs either a Power Automate Premium licence for the owner or a Process licence allocated to the flow itself. So the honest answer is that internal Microsoft-to-Microsoft automation is free, and the first flow reaching outside Microsoft’s own products is where the invoice starts. Working out which side of that line each flow actually needs to sit on is one of the first things we do, and it is usually fewer flows than people assume.
What is a Power Platform request, and how quickly do we use them up?
It is the unit Microsoft meters you on, and it counts an action rather than a run. Every step counts: a Compose, an Initialize variable, a connector call, a step that failed, each automatic retry, and every page of a paginated result. So an Apply to each looping over two hundred rows with twenty actions inside it spends four thousand requests in one execution, which is not the scale most people expect from a flow that finishes in a minute. The allowance runs on a rolling twenty-four hours, it does not carry over to the next day, and its size comes from the licence of whoever owns the flow rather than from the flow. It is also worth knowing that Microsoft is still running a transition period with more generous enforcement than the published limits, so anything sized against how it behaves today is sized against grace rather than against the rules.
What happens when the person who built our flows leaves the company?
This is the most common way Power Automate breaks, and the shape of it is specific to this platform. Connections authenticate as an individual, so when that account is disabled in Entra ID every connection they created stops working and the flows using them begin failing. Microsoft’s own documentation is blunt about the second half: if the original owner leaves the organisation, the flow reverts to the lowest performance profile, which means smaller loop and pagination limits and only two retry attempts where a licensed owner would get twelve. Nothing tells you this has happened, and a flow that keeps failing for fourteen days is turned off automatically. The remedy is unglamorous and it works: ownership on a service account, co-owners added, the important flows in solutions with connection references, and anything that must not stop given its own Process licence so it depends on no individual at all.
Can Microsoft switch our flows off without asking?
Yes, and three separate rules can do it. A flow whose trigger or actions fail continuously is turned off after fourteen days, a flow that is consistently throttled is turned off after fourteen days, and a flow that has not been triggered at all for ninety days may be suspended as well, though flows owned by premium-licensed users or carrying a Process licence are exempt from that last one. Owners are notified before the ninety-day suspension, which helps only if the owner still works for you. We point failure alerting somewhere a person genuinely reads rather than at a mailbox nobody opens. It is also worth planning around the fact that Power Automate keeps only thirty days of run history, so if you need proof of what a flow did for an audit or a dispute, that record has to be written out to somewhere durable while it still exists.
Should our data live in SharePoint lists or Dataverse?
Start with a SharePoint list, because you already own it and it costs nothing, but know where it stops. Once a list passes five thousand items, SharePoint’s view threshold means filters and sorts on columns that were never indexed start failing on a list that worked perfectly last month, and the failure is not always loud. Indexing the right columns and filtering at the trigger instead of inside the flow buys you a long way past that point. Dataverse is the correct answer when you genuinely need relationships between tables, row-level security or a real audit trail, and we will tell you when you have reached that. What we will not do is move you there by default, because Dataverse is a premium connector and its database, file and log storage is metered against a tenant-wide allowance you then top up in one-gigabyte increments.
What does it take to run a desktop flow unattended, overnight?
More than most people plan for, so it is worth settling early. A scheduled cloud flow is straightforward and needs nothing special beyond the right connector licensing. Desktop flows are different: that is the robotic process automation side, where Power Automate drives a Windows application by clicking and typing, and running one unattended needs a Process licence allocated to a machine that was registered by somebody holding a Premium licence. Each Process licence carries one unattended bot running one desktop flow at a time, so two jobs running in parallel overnight means two licences, or Microsoft-hosted machines if you would rather not maintain the hardware. Our honest advice is to treat desktop automation as the last resort it is, because a robot clicking through a user interface breaks the moment the vendor moves a button, and a real API or even a scheduled file export will outlive it.
When is Power Automate the wrong tool?
Three cases, and we would rather say so now than after an invoice. The first is heavy data work: because the meter counts every action, a job that loops over thousands of rows and transforms them is both slower and dearer here than in a script or in a platform that bills per run, and you will also meet the hard ceilings of five hundred actions in a single flow and eight levels of nesting. The second is anything that must answer a caller or a web request promptly, because a synchronous request times out at two minutes and an Apply to each processes one item at a time unless somebody deliberately raises its concurrency. The third is simply not being a Microsoft business: if your work does not live in SharePoint, Teams, Outlook and Excel, the main argument for Power Automate has gone. In those cases we will point you at n8n or at plain code instead, which we also build, rather than sell you something that spends its life fighting the product.
Send us the flow that keeps failing.
Tell us what you have running and whose name is on it. We will tell you which flows need a premium licence, which do not, and what would happen to each one if the person who built it left tomorrow.