Approvals With Majority In Power Automate

In a business process, there are many scenarios where a decision is made based on majority. For example, a contract is awarded to a particular vendor if the majority in the board approve it. If you are familiar with other workflow tools like K2 and Nintex, you would know that these tools provide native capability to implement majority-based approvals. What if, you want to implement the same in Power Automate? Is it possible? Let’s find out.
 

Getting Started

 
To start with this scenario, let’s consider that we have an Approvers list in SharePoint. List schema will be as follows,
 
Column Name
Type
Title
Single Line of Text
Approver
People Picker
 
I am using a simple list schema for explanation in this article. However, we can implement the same using SharePoint Groups or other list schema that filters approvers based on certain conditions. So, let’s start with the implementation of Flow.
  1. Navigate to here
  2. Click on “Create” and select “Instant flow”
  3. Give flow a name, like, “Majority Approval”. Select “For a Selected Item” as trigger and click on “Create”.
  4. Configure the step with “Site Address” and “List Name”
  1. Now add “Get Item” step, this will get all the properties associated with selected item that can be used later in the flow.
  1. Add “Get Items” step to get the list of approvers.
  1. Initialize two variables to count number of approvals and rejections.
  1. Use an “Apply to each” step and loop through all the approvers as collected in #6 above
  1. Add “Start and Wait for an approval” step and configure the email as desired
  2. Inside the same “Apply to each” step, add a condition to check the “Outcome” of approval step and increment the variable accordingly.
  1. Finally outside the “Apply to each” step, check if the Approval Count is greater than Rejection Count, based on the result, apply necessary next steps. I have kept a simple email notification step to show if the item was approved or rejected by majority approvers.
 

Summary

 
I hope you would find this scenario useful. I have explained the process with simple steps, however, it can be expanded to implement complex logics. Happy Learning!!