Microsoft Flow : How to Escalate Approvals
Most approvals require an escalation if the approver doesn’t react on time.
I had to adapt one of my oldest flow (an expense request flow that I created in 2016) to integrate the escalation process.
So basically the use case is classic : a user submit an expense in a SharePoint list, directly or via from PowerApps.
Then if the amount is < 500 euros, the expense is automatically approved, otherwise it must be approved. A discussion is therefore created in a specific Microsoft team channel, where members of the procurement department can start discussing the matter.
The Flow retrieves the user main manager (the one defined in Azure Active Directory), let’s call him the Big Boss, and the user line manager (stored in a SharePoint list, so to retrieve it I have to perform an OData query.
Then the line manager is asked to approve/reject the expense. He can take his decision based on the channel discussion. If the line manager doesn’t approve/reject within 2 days, the approval is escalated to the Big Boss and to the line Manager until one of them reacts.
Here is the high level view of my flow (click to have a bigger picture)
But I will focus on the approval part :
How does the escalation work?
When I ask the Line Manager to approve (1st approval level), I define a 2 days timeout in the "Ask Line Manager to approve" action settings:
For the sake of the demo, I set it to 2 minutes : PT2M ( this is defined in ISO 8016).
After this action I add 2 scopes in parallel branches:
In order to have the "escalate to Big Boss" action running when the timout is triggered, you just need to set the "Configure run after" :
to :
As you will notice the left branch is associated with a red arrow, which means that it will run only if the previous action ("Ask Line Manager to approve") fails; and it will fails if the line manager doesn't not react within 2 days (timeouts).
The right branch will run if everything is fine, which means if the line manager reacted on time.
Let's focus more on the Escalate to Big Boss scope (2nd level of escalation):
No mercy here : the Big Boss (main manager) or the Line Manager will have to react; the loop (Do Until Main Manager reacts) runs until someone reacts.
Here again, I use the timeouts mechanism : every 2 days the Big boss or the Line Manager will be asked to react.
But there is also something else. The next action : "Checks if Expense has been approved".
I wanted it to run after an escalation OR when the Line Manager reacted on time. So for both actions the settings must be :
Comments
-
Microsoft Flow : How to Escalate Approvals
Hello really new to flow here. I'm pretty good at modifying existing templates but starting from scratch I am off to a rough start, especially in trying to duplicate what you have here. I am curious if you could publish this as a template?
-
Microsoft Flow : How to Escalate Approvals
Hi Serge Luca,
I'm still new to Flow, I can see that you set a variable to the Find Line Manager scope, could it be "MainManagerReacts" variable, how did you add it? I can see that it can be assigned a value.
Or do you have a link to the first workflow you did in 2016.
Thanks in advance
regards,
Steven
-
-
Microsoft Flow : How to Escalate Approvals
Here is my list of managers
...and here is my code (including the Odata query) :
Kind regards
Serge Luca
-
Microsoft Flow : How to Escalate Approvals
How did you retrieve the Line Manager from the sharepoint list using Odata query?
*This post is locked for comments