Guides
1 / 12
Start hereintermediate30 min

Build a Power Automate Approval Flow Without Code

By

A Power Automate approval flow sends a request to a named approver in Outlook or Teams, waits for their yes or no, and then runs the next step for you. You build it from a trigger, an Approvals action, and a Condition, all picked from a list rather than written. The part most first flows get wrong is what happens when nobody answers, so set a timeout and a second approver before you switch it on.

Swipe up to begin
Concept

The chore worth killing

Every team has one request that moves at the speed of somebody remembering. A holiday form, a discount over ten percent, a new supplier, a purchase that needs a second pair of eyes. The work itself takes a minute. The waiting takes four days, because the request is sitting in an inbox behind ninety other emails and nobody knows whose turn it is.

An approval flow does not make the decision faster to reach. It makes the request impossible to lose, and it makes the answer permanent.

Concept

Request, wait, act

Every approval flow, whatever it approves, is the same three beats:

  1. A request arrives — a form is submitted, an item is created in a SharePoint list, an email lands.
  2. A named person is asked — and the flow genuinely stops here, holding its place until an answer comes back.
  3. The answer drives what happens next — approved goes one way, rejected goes another, and both get written down.

The middle beat is the one that makes this different from a notification. A notification tells somebody a thing happened. An approval waits for them, and everything downstream depends on what they say.

Concept

Why Power Automate fits this

If you already run Microsoft 365, approvals are close to a solved problem inside it. The Approvals action is first-party, so the request renders as a proper card in Outlook and in Teams with Approve and Reject buttons on it. The approver never opens Power Automate, never learns a new tool, and never needs their own automation licence. Their answer, their comment and the timestamp are all recorded against the run, which is the audit trail most approval processes are missing.

That is worth more than it sounds. Most homemade approval processes fail not because the routing is wrong but because six months later nobody can prove who said yes.

Concept

Set the trigger

Start with where the request actually begins. The three that cover most cases:

  • When an item is created (SharePoint) — the request lives in a list, which is the tidiest option because the list doubles as your record.
  • When a new response is submitted (Microsoft Forms) — good when the requester should not see the list.
  • When a new email arrives (Outlook) — use a shared mailbox and a subject filter, not a personal inbox.

If you are starting from a form, the SharePoint list route is worth the extra ten minutes. It gives you somewhere to write the decision back to, which the Forms-only route does not. We walk through that pairing in sending Microsoft Forms responses to a SharePoint list.

Concept

Add the Approvals action

Add Start and wait for an approval. Three fields matter:

Approval type. Approve/Reject – First to respond is the right default for routine sign-off. Switch to Everyone must approve only when every named person genuinely has to see it, because each extra required approver is another place the request can stall.

Assigned to. Type the email address, or click a token from the trigger so the approver is chosen by the request itself. A token here is what turns one flow into a flow that handles every department.

Details. This is the body of the card, and it is worth more care than people give it. Put the actual decision in it: what is being asked for, how much, by whom, and a link back to the item. An approver who has to go and find the context will not answer today.

Request: [Title]
Raised by: [Created By DisplayName]
Amount: [Amount]
Open the request: [Link to item]
Concept

Handle the silence

This is the step that separates a flow people trust from one they route around.

Set a Timeout on the Approvals action, in ISO 8601 duration format — P3D for three days. When the timeout fires, the action stops waiting and the run moves on, which means you now have somewhere to put an escalation.

Then add the escalation itself: a second Start and wait for an approval assigned to the backup, or a Teams message to the requester saying it has been chased. Either is fine. What is not fine is the default, where an unanswered request waits forever and the requester assumes it is still moving.

A flow that quietly waits forever is worse than no flow at all, because at least an email in an inbox is visible. This is the same failure shape as an automation that silently stops firing, and it is worth reading about once in general before you build several of these.

Concept

Branch on the answer

Add a Condition and compare the Approvals Outcome to Approve.

  • If yes — do the thing. Update the SharePoint item's status, file the document, post to Teams, send the confirmation.
  • If no — write the rejection back too, and include the approver's Comments. A rejection with no reason generates a follow-up email, which is the work you were trying to remove.

Write the outcome back to the source item in both branches. That single habit is what makes the list, rather than somebody's memory, the answer to "what happened to my request?"

Concept

Test before you trust

Hit Test, submit a real request as yourself, and answer it from the Outlook card rather than from inside Power Automate. Then do the harder test: submit one and ignore it, and confirm the timeout fires and the escalation lands where you expected.

Most people test the happy path and ship. The happy path is not what breaks.

Concept

Own it in n8n instead

If your approvers are outside Microsoft 365, or the approval record needs to live in your own database, build the same shape in n8n. There is no first-party approvals card, so you assemble it: a notification node, a wait node, and a webhook URL the approver clicks to record the answer. More wiring, and in exchange you decide where the record lives and who can read it. If you have not used it before, start with the n8n basics guide.

Concept

Build your first version now

Open Power Automate, pick the one request you chase most often, and build only the straight path: trigger, one approval, a condition, and a status written back. Skip routing, skip escalation, skip the second approver. Send yourself a test request and answer it from Outlook.

Once that single path works end to end, the timeout and the backup approver take ten more minutes, and every other approval in the business is a copy of the same four steps.

Try this now

Try this now

Write down the one request you chase most often, who signs it off, and what should happen on a no. Build the flow for that single path first, without routing or escalation, and send yourself a test request before anyone else sees it.

That’s the whole lesson. Try it on a real task while it is fresh, then come back for the next one.

Our recommendation

If your company runs Microsoft 365, build approvals in Power Automate. The Approvals action is first-party, the request lands in Outlook and Teams where people already are, and the audit trail lives in your tenant with no extra licence. If your approvers sit outside Microsoft 365, or you want the approval record in a database you control, build the same wait-for-an-answer shape in n8n instead.

When something else fits better

  • n8n — when your approvers are outside Microsoft 365, or you want the approval record in your own database rather than in the tenant
  • A builder you already use — when the request starts in a tool outside Microsoft, such as a Google Form or a Slack message; the trigger changes but the wait-then-branch shape does not

Questions people actually ask

What is a Power Automate approval flow?
A Power Automate approval flow is an automated flow that pauses on an Approvals action, sends a request to one or more named approvers, and waits for their response before continuing. The approver answers from Outlook, Teams or the Power Automate app without opening the flow itself, and their answer, comment and timestamp are recorded against the run.
Do approvers need a Power Automate licence?
Approvers do not need their own Power Automate licence. The person who builds and owns the flow needs the licence; approvers respond from the Outlook or Teams card using the Microsoft 365 licence they already have. Check current terms on Microsoft Learn before you roll a flow out widely, because licensing details change.
What happens if nobody responds to an approval request?
By default an approval request waits indefinitely, which is how requests quietly disappear. Set a timeout on the Approvals action, then add a parallel branch or a second Approvals action that reassigns to a backup approver when the timeout fires. A flow without a timeout is the single most common reason an approval process stalls.
Can one request go to several approvers?
Yes. The Approvals action offers two multi-approver types: "Everyone must approve", which waits for all named approvers, and "First to respond", which continues as soon as any one of them answers. First to respond suits routine sign-off where any manager will do; everyone must approve suits spend or legal review where each name matters.
When would I use n8n instead of Power Automate for approvals?
Use n8n when your approvers are outside Microsoft 365, or when you want the approval record stored in your own database rather than in the tenant. n8n has no first-party Approvals card, so you build the same shape from a notification, a wait node and a webhook the approver clicks. You trade the polished Outlook card for control over where the record lives.

Drafted with AI assistance from our own research and Search Console data, and reviewed by Rahul A before publishing. Tools and prices change; check the linked official source before you act.