“The manual task delegation is quite useless when the approver is on holiday, is there some way of automated task delegation in Power Automate?”
One of the reasons to automate processes is to make them faster. Instead of sending emails or exchanging papers you can create a task and approvers can swiftly complete it. Which works fine if the approver is in the office at that time. But what happens if he goes on a holiday? If he’s not available for the next two weeks, will all his tasks stop and wait? Or would it be better to assign the task also to his temporary replacement?
Create a configuration list for the delegations
Unlike some other workflow engines, Power Automate approvals don’t have any automated delegations. While you can delegate a task manually, it’s not very helpful if the approver is out of office…
To delegate a task automatically you must build the functionality into your flow by yourself.
The first step is creation of a new SharePoint list to store the delegation information. You need 4 pieces of information – the approver and his substitute, and the dates when tasks should be delegated.
It can be a single list shared across the whole organisation, or it can be a separate list for each department – the choice is yours. The important part is to keep this information updated, either by some flow or manually.
Once you have such list you can use it in the flow.
Get the approver substitute
Usage of this list is very similar to the other configuration lists. Each time before you assign a task, check whether the approver has an entry in the configuration list. Continuing with the configuration list above, you should do a lookup into the list using the current approver and current date. If there’s an entry for the approver and the task is assigned between the dates, flow should send it also to his substitute.
Lookup for the corresponding item…
FromUser/EMail eq 'xxx@tomriha.com' and FromDate le '@{utcNow('yyyy-MM-dd')}' and ToDate ge '@{utcNow('yyyy-MM-dd')}'
… and if it’s not empty assign the task to the delegatee too.
Get the substitute for multiple approvers
But what if there’s more than one approver? In that situation you don’t want to check all the approvers one by one…
And you don’t have to. As already explained in previous article, you can find missing or overlapping values in two arrays using the ‘Filter array’ action. Start by listing all the delegations that are currently active.
FromDate le '@{utcNow('yyyy-MM-dd')}' and ToDate ge '@{utcNow('yyyy-MM-dd')}'
Select email addresses of all the users…
… and check any overlap between the array with approvers and the items recovered from the delegations list.
Note: the approvers are a string with semicolon separated email addresses – the input expected by the Approval actions, hence the split(…) expression.
Such filter will give you only the items with active delegations. Select email addresses of the ‘ToUser’ and assign them the task as well. Your delegations solution is ready.
Summary
Power Automate doesn’t have any automated task delegation solution, but you can build one by yourself. The main part is having a reliable source of the absence information, in this example it’s a SharePoint list. Once you have such a list (and keep it up to date!) you can check it before each task. If the task approver has an active item in the list, if he’s away and selected his delegatee, you can assign the task to both of them.
1 thought on “Add automated task delegation to your Power Automate flow”