A Power Automate flow beats a Copilot Studio agent whenever the job has one trigger and one fixed set of steps, with no judgement call and no messy input to interpret first. Flows run on the Microsoft 365 licence you probably already pay for. Agents are metered by usage, so a flow wearing a chat window is an expensive way to do simple work.
I get asked to build a lot of "agents" that don't need to be agents. Someone's heard Copilot Studio can build a bot, they've got a repetitive job on their plate, and the two ideas get glued together. What they need is a trigger and a set of steps that run the same way every time. This is the post where I talk you out of it, before you build the expensive version of something a flow already does.
The tell: does someone need to ask, or does the thing just need to happen
Before I quote anything, I ask one question: does a person need to ask this in their own words and get an answer that varies, or does the same event always need the same reaction? If a new job in Xero should always trigger the same three steps, nobody is asking a question there. It's a rule. Rules are what flows are for. And the most common rule of all, someone needs to sign this off, has a tier below flows entirely: the Teams Approvals app covers one-step sign-offs before a single flow gets built.
An agent pays for itself when the input is unpredictable: someone's own phrasing, a scanned form, a half-finished sentence in a support ticket, where working out what to do next takes some reading. A flow is the right call when the input is already known, a status changed, a form was submitted, a date arrived, and what happens next has never varied.
Three jobs that look like agent work and aren't
These come up constantly with small Canterbury firms, accountants, engineering consultancies, small legal practices, and every one of them got pitched to me at some point as "an AI agent."
New client onboarding. A firm wants a bot that "handles onboarding": create the client folder, fire off the engagement letter, add them to Xero, notify the account manager. Nice idea, wrong tool. The onboarding form already collected structured data, name, entity type, engagement type, so there's nothing left for an agent to interpret. That's a Power Automate flow triggered on form submission, five steps, no conversation anywhere in it.
Payment chasing. "An agent that follows up on overdue invoices" sounds sophisticated. Underneath it: check Xero on a schedule for anything overdue, and send an escalating reminder at 7, 14 and 21 days. The rule never changes and nobody is asking the invoice a question. A scheduled flow with a third-party Xero connector does this exactly as well as an agent, for little beyond a Power Automate Premium licence and the connector vendor's own subscription.
Document filing. A practice wants incoming client files "intelligently" renamed and routed. Most of the time the naming rule is already fixed, client code and matter number sit right there in the subject line or the filename, and the destination folder follows the same code every time. That's a flow with a condition branch, not a document-reading agent. The one version of this that needs an agent is when the file arrives with none of that structure attached, a scanned letter with the client's name written by hand somewhere in the body.
What you give up with a flow
Flows have real limits. A flow can't read a free-text email and work out what someone wants. It can't ask a follow-up question when the input is ambiguous, it either matches the rule or it doesn't. Feed it something it wasn't built to expect, an unusual file type, a blank field, a client who emails instead of using the form, and it stops. Quietly, usually, which is worse than failing loudly.
So a flow only works when something upstream, a form, a connector, a person, hands it data in a shape it already understands. If that translation step doesn't exist yet, building the flow first and adding the translation later is still usually cheaper than building an agent to skip it, but the translation has to happen somewhere.
What an agent buys you when the input varies
An agent earns the extra cost in exactly the case a flow can't handle: the input arrives in someone's own words, and working out the right response takes reading and judgement, not matching. A support agent I built for a large internal system takes a whole support ticket, or a screenshot, pasted straight in. Nobody has to translate the problem into the right fields first. That's the job an agent is built for, and a large part of why it cut troubleshooting time so sharply. A flow could never have taken that input in the first place.
There's a middle option before you commit to either extreme. A Power Automate flow can include a single AI Builder or Copilot action to handle one judgement call inside an otherwise fixed process, reading a free-text field and pulling out a category, say, then handing the rest back to ordinary flow logic. You pay for that one AI action, not for a whole conversation, which is usually a lot cheaper than building a full agent around a job that's 90% fixed steps and 10% judgement.
A decision path you can run in five minutes
Run the job through this before anyone writes a spec.
| If this is true | Build this |
|---|---|
| Same trigger, same steps, every single time | Flow |
| The input arrives already structured (a form, a status change, a schedule) | Flow |
| The whole job is fixed except for one judgement call in the middle | Flow, plus a single AI step |
| The right response depends on reading and judging free text or an image | Agent |
| Someone genuinely needs to ask a follow-up question to get the right answer | Agent |
If you land on "flow" for a job you were about to spec as an agent, that's the cheaper build, running on infrastructure you already own, and it'll still be running unattended next year without a usage bill creeping up behind it. That's assuming Power Automate is the right flow tool in the first place, if your stack lives outside Microsoft 365 the calculation changes, and I've covered that separately in Power Automate, Zapier, or Make.

Flow or agent?
Free 30-minute call. Describe the job and I'll tell you which one it is, including when that means the cheaper answer.
If you're not sure which one your job needs
This is most of what happens on a first call with me. Someone's got a job in mind and an assumption about what kind of build it needs, and half the time the answer is the cheaper one. If you've got a repetitive task and you're not sure whether it's a Copilot Studio agent, a Power Automate flow, or something simpler again, book a free 30-minute call. I'll tell you which one it is, even when that means I've talked you out of the more expensive build.