Easy Tech Tuts
Power Automate

How to Create an Approval Flow in Power Automate, Build Approval Workflow Process Easily 2026

By Impran M NLast checked against official docs

Almost any process where one person needs a yes or no from another, a leave request, an invoice, a purchase order, is a candidate for an approval flow. Power Automate builds one without a line of code.

The part that trips people up isn't the concept. It's the plumbing: which trigger to pick, where the approval action lives, and how to branch the rest of the flow once someone responds.

This guide builds one from a blank canvas, using the same screens you'll see in the Power Automate maker portal, so you can go from an empty Approvals hub to a working, notifying, branching flow. Approvals run on Dataverse behind the scenes, which brings its own small setup step the first time your organization uses them, so that's covered too.

Before you start

  • A Power Automate license, or a Microsoft 365 or Dynamics 365 plan that already includes standard-connector access (approvals is a standard connector, not a premium one)
  • For the very first approval flow built in an environment: an administrator role in that environment, unless it's the default environment, which provisions the required Dataverse database automatically

01Start from the Approvals hub

Power Automate has a dedicated Approvals area in the left-hand navigation, separate from My flows, with its own Received, Sent, and History tabs. On a fresh account it's empty, "You don't have any pending approvals," because this hub only shows activity generated by flows you build.

It isn't where you create them. That's a common first mistake.

People look here for a "new approval" button and don't find one. The actual build happens under Create, and the Approvals hub is what your requesters and approvers use afterward to track responses.

The Approvals hub, with its Received, Sent, and History tabs. It stays empty until a flow generates an approval request.
The Approvals hub, with its Received, Sent, and History tabs. It stays empty until a flow generates an approval request.

02Create an instant cloud flow

From Create, choose Build an instant cloud flow. A dialog opens asking for a flow name and, more importantly, how the flow should start.

For a manual approval, someone clicking a button to kick off a request, pick "Manually trigger a flow." The trigger list also includes Power Apps, Power Virtual Agents, Dataverse rows, and selected messages. Those matter if you want the approval to fire automatically from a form submission or a new list item instead of a manual click. Name the flow something specific, like "Expense Approval," so it stays identifiable in a list full of flows.

The Build an instant cloud flow dialog. Name the flow and choose its trigger from options including manual, Power Apps, and Dataverse.
The Build an instant cloud flow dialog. Name the flow and choose its trigger from options including manual, Power Apps, and Dataverse.

03Add the approval action and choose its type

With the trigger in place, add a "Start and wait for an approval" step underneath it. This is the core action, and its most important setting is Approval type, a dropdown listing five options in Microsoft's own documentation: Approve/Reject - Everyone must approve, Approve/Reject - First to respond, Custom Responses - Wait for all responses, Custom Responses - Wait for one response, and Sequential approval.

Everyone-must-approve suits sign-offs that need every stakeholder on record. First-to-respond suits a request any one of several people can clear, when you don't want to wait on the slowest. Sequential approval routes the request through approvers one at a time, in order, which a multi-stage process like manager-then-finance needs.

The Start and wait for an approval action, with its Approval type dropdown open showing Everyone-must-approve, First-to-respond, Custom Responses, and Sequential approval.
The Start and wait for an approval action, with its Approval type dropdown open showing Everyone-must-approve, First-to-respond, Custom Responses, and Sequential approval.

04Fill in title, assigned approvers, and details

Below the approval type, the action asks for a Title, an Assigned to field for one or more approver email addresses, and Details, a free-text box for whatever context the approver needs: the requester's name, the amount, a link to the document. Dynamic content from the trigger, like a submitter's name or a form field, can be inserted directly into these fields so each request explains itself without the approver digging through email or SharePoint.

Keep the title short. It's what shows up in the approver's Teams and email notification, and a vague one gets skimmed past.

05Branch the flow with a condition on the outcome

Every approval action returns an Outcome value, and the standard next step is a Condition control checking whether that outcome equals Approve. The condition builder splits into a green True branch and a red False branch, each with its own actions you add independently.

In the True branch, you'd typically update a record, send a confirmation, or trigger the next stage of work. In the False branch, you'd notify the requester of the rejection, often including the approver's comments. This one condition turns a flow that just asks a question into one that acts on the answer.

A Condition step wired to the approval outcome, splitting into a green True branch and a red False branch that each hold their own follow-up actions.
A Condition step wired to the approval outcome, splitting into a green True branch and a red False branch that each hold their own follow-up actions.

06Add notifications for both outcomes

Inside each branch, add a "Send an email (V2)" or "Post message in a chat or channel" action addressed back to the original requester. Pull in the approver's response and comments through dynamic content, so the notification explains what happened instead of just stating a status.

Add a notification on the False branch too, not only for approvals. A request that silently disappears when rejected is one of the most common complaints about homegrown approval processes, and one extra action here avoids it entirely.

07Save, test, and connect it to where work happens

Save the flow and run a manual test end to end. Watch each step's run history to confirm the approval email reaches the approver and the condition branches correctly on both an approve and a reject.

Once it works, connect the trigger side to wherever requests originate: a Microsoft Form, a SharePoint list, or a Teams button, so people never have to open Power Automate directly. The flow itself stays the same. Only the trigger and the fields feeding Details change per use case, which is why one approval pattern covers leave requests, invoices, and purchase orders alike.

Approval type options for Start and wait for an approval
Approval typeWhat happens
Approve/Reject - Everyone must approveEvery approver must respond before the flow continues; a single rejection ends it.
Approve/Reject - First to respondThe flow continues as soon as any one approver responds.
Custom Responses - Wait for all responsesYou define the response options; every approver must still answer.
Custom Responses - Wait for one responseYou define the response options; the flow continues after the first answer.
Sequential approvalApprovers respond one at a time, in order; each must answer before the next is asked.

Taken from Microsoft's own approvals documentation, which labels this "four approval types" in its text while listing five rows in the table above it.

When it doesn't work

The flow can't be saved, or the first run never finishes, the first time anyone in the organization builds an approval flow

Why: Approvals are stored in Dataverse. If this is the very first approval flow in a non-default environment, Microsoft has to provision a Dataverse database for it, and only a user with an administrator role in that environment can trigger that provisioning.

Fix: Build the first approval flow as, or alongside, an environment admin. In the default environment this happens automatically, though it can still take a few minutes the first time.

The adaptive card or approver-response data you expected isn't available to a later step

Why: "Create an approval" was used instead of "Start and wait for an approval." Create an approval starts the request but doesn't block the flow, so responses and comments aren't available as outputs unless a separate "Wait for an approval" step reads them back.

Fix: For a flow that just needs to pause until someone responds, use "Start and wait for an approval" on its own. Reach for "Create an approval" plus "Wait for an approval" only when you need to post an adaptive card to Teams, or log request data, before the response comes in.

An approver says they never received the request

Why: They may be a guest user who never accepted the Microsoft 365 B2B tenant invitation, or ad-hoc guest access is disabled in Microsoft Entra for the tenant.

Fix: Confirm the approver accepted their guest invitation, or check with a tenant admin whether ad-hoc subscriptions (AllowAdHocSubscriptions) are enabled.

FAQ

Frequently asked questions

Is the approval flow built inside the Approvals hub?

No. The Approvals hub only shows approvals that flows have already generated. Build the flow itself from Create, Build an instant cloud flow (or another trigger type), then add a Start and wait for an approval action.

Can I build multi-stage approval workflows?

Yes. Choose Sequential approval as the approval type, or chain multiple Start and wait for an approval actions one after another, so a request moves through several approvers in order.

What happens after an approver responds?

The action returns an Outcome value. A Condition step checks that value and routes the flow into a True (approved) or False (rejected) branch, where you add whatever follow-up fits: notifications, record updates, anything else your process needs.

Can approval flows be used for things other than leave requests?

Yes: invoices, purchase orders, expense claims, document sign-off, or any process needing a recorded yes or no. Only the trigger and the details passed into the approval change between use cases.

Do approvers need a Power Automate license to respond?

No. Approvers respond through the email or Teams notification they receive, not by opening Power Automate, so a license is only required to build the flow, not to approve or reject a request.

Do I need any special setup before my first approval flow?

The first approval flow in a Power Automate environment needs Dataverse, which Microsoft provisions automatically in the default environment. In any other environment, whoever builds that first flow needs an administrator role there, or the provisioning step fails.

Sources and last check

Click path and screens come from a recorded walkthrough. The approval type list, the Outcome and Condition behaviour, and the Dataverse and licensing prerequisites were checked against Microsoft's official Power Automate documentation in September 2026. That check is also where the Create-approval-versus-Start-and-wait distinction in the troubleshooting section comes from; the original draft only covered Start and wait for an approval and didn't mention the Dataverse provisioning requirement at all.

About the author

Impran M N
Written by

Impran M N

I've been hooked on technology for as long as I can remember — especially the new tools and AI apps that seem to land every other week. Easy Tech Tuts is where I write up whatever I've just worked out: I do the task in the real product, record the screen, and turn it into the guide I wish I'd found first.