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 :
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.