“Some users are taking really long to complete their tasks, how can I add escalation to Power Automate approval flow?”
When working on an approval process, there’s a very long checklist of functionality it should cover. Sending the tasks, creating logs, error handling, delegations… and much more, as summarised in a previous article. However, one situation I didn’t cover yet is escalation. If a task is taking too long, how can you “motivate” the user to finish it?
Send “escalation” reminder
One way to push the task is to include the user’s manager in the reminder emails. It starts as a basic reminder flow, but with one more condition – if a task is opened for longer than you’d like, get the user manager and add him to the email CC.
After filtering all user tasks, check if there’re any open tasks deserving an escalation, e.g. after 3 days.

Get the user’s manager, just in case.

And if there’re any tasks that need escalation, add the manager to the email CC.
if(empty(body('Filter_array_-_very_old_tasks')), outputs('Get_manager_(V2)')?['body/mail'], null)

It can be the manager or it can be some other user from a configuration list, it’s up to you who should learn about the delay.
Create escalated task
The downside of the solution above is that it’s still up to the original approver to complete the task. The manager was informed, but that might be not enough. Wouldn’t it be better to send the whole task instead of just an email?
One way of escalation is to delegate the open task to somebody else, let it be with a flow or through an application. Change the approver from the unresponsive user to another one, hopefully more responsive, let it be his manager or somebody else.
The other option is to create a new task for both. This solution uses the same principle as when resubmitting expired flows – the possibility to define expiration time for an action. Go into the ‘…wait for an approval’ action and define duration for the first period, the time you want to give to the main approver (3 dots on the action -> Settings -> Timeout). For example, 5 days.

Add a parallel branch that’ll trigger only if the task expires. If it does, remove that task using the ‘Delete a row’ Dataverse action (if you have a premium license, otherwise you can’t remove the task).

Once deleted, create a new task assigned to the original approver and the “escalation” user.

That’s it. The first task took too long, expired (due to your configuration), and the flow continued by creating another task. And it doesn’t have to end there. You can use the same principle to escalate the new task too!
Just don’t forget about two things. Firstly, you must evaluate outcome from all the tasks later in the flow, even if they’re not used very often. Secondly, keep in mind the 30 days flow run limit. If the tasks can take longer you’ll have to build the flow differently, e.g. as a state machine.
Summary
This article explained two ways to add escalation to Power Automate approval flow. The first one is more “people” related, you don’t do much different, just include somebody else in the reminder with the hope that it’ll be motivational enough. If it’s not, the task won’t move.
The second one is a deterministic one – is the task taking too long? Create a new one for more users. More users means higher chance that one of them will do it. Which you can combine with the reminder too, making the pressure even bigger.