How to Create Multilevel Approvals in Power Automate? [Step-By-Step Tutorial]

I worked on a Reimbursement Approval System where approvals must go through multiple levels. For example, an employee’s claim was approved by their manager, then checked by the finance team, and finally approved by the department head for more significant amounts. This made me realize how helpful multilevel approvals are for keeping things organized.

In this article, I’ll show you how to create a simple multilevel approval process in Power Automate. This can make handling reimbursements or similar tasks much easier and faster.

Power Automate Multilevel Approvals

Multilevel approvals in Power Automate involve setting up a sequence of approval steps, where each level of approval is triggered only after the previous one is completed. This type of workflow is ideal for processes that require hierarchical decision-making.

For example, a request might need to be approved by your manager first, then by the finance team, and finally by a director. Each approval step happens one after the other, ensuring that the request is reviewed by the right people at each level before moving forward.

Create Multilevel Approvals in Power Automate

Here’s how the Power Automate flow works:

Employee Submits a Reimbursement Request

The employee submits their reimbursement request on the SharePoint list. Once the request is submitted, Power Automate automatically triggers the flow.

Employee Gets Notified of Manager Approval

The manager receives the approval request, and once the manager approves or rejects it, Power Automate notifies the employee that it was approved or rejected by the manager.

Employee Gets Notified of Finance Team Review

The reimbursement request is sent to the finance team for review if the manager approves. After the finance team approves or rejects it, Power Automate notifies the employee about the status.

Employee Gets Notified of Department Head Approval (if greater than $2,500)

The request is sent to the department head for final approval if needed. The employee is notified once the department head either approves or rejects the request.

Final Notification to Employee

Once all approvals are completed, the employee gets a final notification confirming whether their reimbursement has been fully approved or rejected.

For this example, I created two SharePoint lists, Reimbursement Requests and Reimbursement Approver with the below column:

Reimbursement Requests:

ColumnsData types
TitleSingle line of text
Employee NamePerson or Group
Reimbursement AmountCurrency
Reimbursement ReasonMultiple lines of text
Manager ApprovalChoice (Pending/Approve/Reject)
Manager CommentsMultiple lines of text
Finance ApprovalChoice (Pending/Approve/Reject)
Finance CommentsMultiple lines of text
Department Head ApprovalChoice (Pending/Approve/Reject)
Department Head CommentsMultiple lines of text
Final StatusChoice (Manager Pending/Manager Approve/Manager Reject/Finance Pending/Finance Approve/Finance Reject/Department Head Pending/Department Head Approve/Department Head Reject)
Submission DateDate and Time
power automate multi level approval

In the above SharePoint list, the default value of the Final Status column is Manager Pending, and the default value of Manager Approval is Pending.

Reimbursement Approve:

multi level approval flow in Power Automate

Follow the below steps to create flow:

Create an automated cloud flow. Give the flow name and select the trigger When an item is created or modified. Also, provide the Site Address and List Name.

power automate purchase order approval

To avoid the flow from triggering multiple times (which could lead to infinite loops), you can set a trigger condition based on a field in the SharePoint list, such as the “Final Status” column. This ensures that the flow only triggers when the relevant conditions are met and not when the item is updated or modified during the approval process.

@not(equals(triggerOutputs()?['body/FinalStatus/Value'], 'Manager Approve'))
@not(equals(triggerOutputs()?['body/FinalStatus/Value'], 'Manager Reject'))
@not(equals(triggerOutputs()?['body/FinalStatus/Value'], 'Finance Approve'))
@not(equals(triggerOutputs()?['body/FinalStatus/Value'], 'Finance Reject'))
@not(equals(triggerOutputs()?['body/FinalStatus/Value'], 'Department Head Approve'))
@not(equals(triggerOutputs()?['body/FinalStatus/Value'], 'Department Head Reject'))
multi level approval workflow in power automate

Now, I need to create a variable that stores the approver’s email address, so add the Initialize variable action, provide the name, type it as a string, and leave the value blank.

powerautomate multiple approvals

Add a Switch control flow action. Provide the below parameter:

By default, it displays with the Add Case icon and Default section.

power automate multi stage approval

Add First level Approval in Power Automate Switch Control

For the first case, check if the Final Status Value equals Manager Pending, then send an approval request to the manager.

Click + Add case to add the first switch case. Manually enter the value Manager Pending inside the parameter.

power automate approval workflow multiple approvers

Now, I need to add get items action to get the manager’s email address from the Reimbursement Approve SharePoint list. So add Get items and provide the Site Address and List Name. Then add Filter Query below expression:

Which only gives the Manager info.

ApproverTitle eq 'Manager'
start and wait for an approval power automate

Then, add a set variable action to the store manager’s email address.

configure run after power automate

It will automatically add a For each loop.

Add the “Start and wait for an approval” action and provide the below parameters:

  • Approval type: Select an approval type as “Approve/Reject – First to respond” from the drop-down.
  • Title: Enter the title field value from the Dynamic content.
  • Assigned to: Add varApproverEmailAddress variable from the Dynamic content.
  • Details: Enter the details about your request from the Dynamic content.
power automate sequential approval

Now, we will add the Condition action to check whether the request is approved or Rejected.

In this Condition action, select the Outcome (from Start and wait for an approval action) value equal to Approve.

power automate sharepoint approval

Next, add the update item action under the True condition and provide the below parameters:

  • Site Address: Select a specific SharePoint site from drop-down.
  • List Name: Choose a particular list.
  • Id: Select Id from dynamic content when an item is created or modified.

Then, click Show all to display the advanced parameters.

  • Manager Status Value: Select an Approve from the drop-down.
  • Manager Comments: Select Responses comments from dynamic content under Start and wait for approval.
  • Final Stage Value: Select Finance Pending from the drop-down.

It will automatically add a for each loop.

power automate multiple approvals

Then, add a ‘Send an email‘ action to notify the requester that the manager has approved their request. After that, I will move on to the next approver.

sharepoint document approval workflow power automate

Then add the update item action under the false condition and provide the below parameters:

  • Site Address: Select a specific SharePoint site from drop-down.
  • List Name: Choose a particular list.
  • Id: Select Id from dynamic content when an item is created or modified.

Then, click Show all to display the advanced parameters.

  • Manager Status Value: Select Reject from the drop-down.
  • Manager Comments: Select Responses comments from dynamic content under Start and wait for approval.
  • Final Stage Value: Select Finance Reject from the drop-down.

It will automatically add a for each loop.

sharepoint purchase order approval workflow

Then, add a ‘Send an email‘ action to notify the requester that the manager has rejected their request.

send approval email power automate

First stage approval completed, and here I rename all the Action names for better understanding:

Create automated cloud flow in Power Automate

Add Second-level Approval in Power Automate Switch Control

For the second case, check if the Final Status Value equals Finance Pending, then send an approval request to the Finance team.

Click + Add case to add the first switch case. Manually enter the value Finance Pending inside the parameter.

power automate approval email

Add Get items and provide the Site Address and List Name. Then add Filter Query below expression:

Which only gives the Finance team info.

ApproverTitle eq 'Finance'
start and wait for an approval power automate

Then, add a set variable action to the store finance team email address.

approval flows in power automate

Add the ‘Start and wait for an approval’ action and set the following parameters:

  • Approval type: Select ‘Approve/Reject – First to respond’ from the drop-down.
  • Title: Enter the title field value from Dynamic content.
  • Assigned to: Add the varApproverEmailAddress variable from Dynamic content.
  • Details: Enter the details of your request from Dynamic Content.
approval action in power automate

We will add the Condition action to check whether the request is approved or rejected.

In this Condition action, select the Outcome (from the ‘Start and wait for an approval’ action) and set it to ‘Approve.’

approval flow in power automate

Then, inside the true section, add again a Condition action that checks whether the Reimbursement Amount is greater than $2,500.

In this Condition action, select the Reimbursement Amount (from the ‘when an item is created or modified’ action) and set it to ‘2,500.’

power automate approvals external users

Next, add the update item action under the True condition and provide the below parameters:

  • Site Address: Select a specific SharePoint site from drop-down.
  • List Name: Choose a particular list.
  • Id: Select Id from dynamic content when an item is created or modified.

Then, click Show all to display the advanced parameters.

  • Finance Status Value: Select an Approve from the drop-down.
  • Finance Comments: Select Responses comments from dynamic content under Start and wait for approval.
  • Final Stage Value: Select Department Head Pending from the drop-down.
multiple approvals in power automate

Then, add a ‘Send an email’ action to notify the requester that the finance team has approved their request. After that, I will move on to the next approver.

power automate approval outcome

Then add the update item action under the false condition and provide the below parameters:

  • Site Address: Select a specific SharePoint site from drop-down.
  • List Name: Choose a particular list.
  • Id: Select Id from dynamic content when an item is created or modified.

Then, click Show all to display the advanced parameters.

  • Finance Status Value: Select Apprve from the drop-down.
  • Finance Comments: Select Responses comments from dynamic content under Start and wait for approval.
  • Final Stage Value: Select Finance Approve from the drop-down.
Multi-Level Approval using Power Automate

Then, add a ‘Send an email’ action to notify the requester that all approvals are Approved, the Reimbursement Request.

How to create multiple approval flows in Power Automate

Then add the update item action under the false condition and provide the below parameters:

  • Site Address: Select a specific SharePoint site from drop-down.
  • List Name: Choose a particular list.
  • Id: Select Id from dynamic content when an item is created or modified.

Then, click Show all to display the advanced parameters.

  • Finance Status Value: Select Reject from the drop-down.
  • Finance Comments: Select Responses comments from dynamic content under Start and wait for approval.
  • Final Stage Value: Select Finance Reject from the drop-down.
How do I assign approval to multiple users in Power Automate

Then, add a ‘Send an email‘ action to notify the requester that the Finance team has rejected their request.

Manage sequential approvals with Power Automate

Add Third level Approval in Power Automate Switch Control

For the third case, check if the Final Status Value equals Department Head Pending, then send an approval request to the Finance team.

Click + Add case to add the first switch case. Manually enter the value Department Head Pending inside the parameter.

Hidden Multi Level Approval Feature in Power Automate

I need to add the ‘Get items’ action to retrieve the Department Head’s email address from the ‘Reimbursement Approve’ SharePoint list. Add the ‘Get items’ action and provide the Site Address and List Name. Then, use the following expression in the Filter Query field:

ApproverTitle eq 'Department Head'
Multilevel Approval Process with Power Automate

Then, add a set variable action to the store department head’s email address.

Power Automate Multilevel Approval Process

Add the ‘Start and wait for an approval’ action and configure the following parameters:

  • Approval type: Select ‘Approve/Reject – First to respond’ from the drop-down.
  • Title: Use the title field value from Dynamic content.
  • Assigned to: Add the varApproverEmailAddress variable from Dynamic content.
  • Details: Provide the request details from Dynamic content.
Making a multi level and dynamic approval system in Power automate

We will add the Condition action to check whether the request is approved or rejected.

In this Condition action, select the Outcome (from the ‘Start and wait for an approval’ action) and set it to ‘Approve.’

Build Multi-Step Approval Workflows with Power Automate

Next, add the ‘Update item’ action under the True condition and set the following parameters:

  • Site Address: Select the specific SharePoint site from the drop-down.
  • List Name: Choose the appropriate list.
  • Id: Select Id from Dynamic content (from ‘When an item is created or modified’).

Then, click Show all to display the advanced parameters and configure the following:

  • Department Head Status Value: Select ‘Approve’ from the drop-down.
  • Department Head Comments: Select ‘Responses comments’ from Dynamic content (under ‘Start and wait for an approval’).
  • Final Stage Value: Select ‘Department Head Approve’ from the drop-down.
Multi Level Approval Workflow using Approval

Then, add a ‘Send an email’ action to notify the requester that all approvals are Approved, the Reimbursement Request.

Dynamic Approvers with Multi Level Approval Flow in Power automate

Then add the update item action under the false condition and provide the below parameters:

  • Site Address: Select a specific SharePoint site from drop-down.
  • List Name: Choose a particular list.
  • Id: Select Id from dynamic content when an item is created or modified.

Then, click Show all to display the advanced parameters.

  • Department Head Value: Select Reject from the drop-down.
  • Department Head Comments: Select Responses comments from dynamic content under Start and wait for approval.
  • Final Stage Value: Select Department Head Reject from the drop-down.
Multiple Approval Process with Power Automate

Then, add a ‘Send an email‘ action to notify the requester that the department head has rejected their request.

Microsoft Power Automate Multi-Level Approvals integrate

Now, our multilevel approval flow is ready. We can save and test it. Click on Test -> Select Manually. Add an item to the SharePoint list: Reimbursement Requests.

Microsoft Flow Approval Multiple Approvers

Then, the Manager receives an approval email about Reimbursement Requests.

How to set multiple approvers in Power Automate

Once the manager approves the request, the requester gets an email about the manager’s approval.

Create An Approval Flow Using Microsoft Power Automate

After the manager approves the request, the finance team will receive the request.

Multi-Level Approvals and Parallel Pathways in Workflow

When the Finance team approves, the flow checks the reimbursement currency. If it is greater than 2500, the Department Head needs to approve.

The Hidden Multi Level Approval Feature in Power Automate

In the meantime, the department head will receive a request to approve the reimbursement.

Power Automate Create Multilevel Approvals

When the Department Head approves the request, the requester will receive an email stating that all approvers have approved their reimbursement.

How to Create Multilevel Approvals in Power Automate

The requester will receive an email notification if the Department Head rejects the request.

power automate multi level approval request

Conclusion

In this tutorial, we created a multilevel approval system in Power Automate, using a reimbursement process as an example. We set up a flow that handles approvals in three stages: manager, finance team, and department head (for larger amounts). Along the way, we covered vital steps such as triggering the flow when a SharePoint item is created or updated, using conditions to check approval outcomes, and notifying the requester at each stage.

>

Build a High-Performance Project Management Site in SharePoint Online

User registration Power Apps canvas app

DOWNLOAD USER REGISTRATION POWER APPS CANVAS APP

Download a fully functional Power Apps Canvas App (with Power Automate): User Registration App

Power Platform Tutorial FREE PDF Download

FREE Power Platform Tutorial PDF

Download 135 Pages FREE PDF on Microsoft Power Platform Tutorial. Learn Now…