Yesterday, Melissa Hubbard posted a great intro to Microsoft Flow approvals in her Flow Approval Fundamentals blog post. Make sure to check her blog post before reading this one. Her blog post is focussed on the basics and I will be highlighting a bit more of an advanced feature: timeouts for Microsoft Flow approvals. It will be a short post, but it will hopefully be a useful one for you guys!
Imagine having a process where you want to give someone a couple of days to reply to an approval. If that someone doesn't respond in time, you want to assign a new approval to another person or group of people. To achieve this you can set the timeout in the action settings. First, you have to select the ellipsis on the top right corner of the action and then select settings in the pop-out menu.
Next, you will see the settings of the approval action, which has a couple of settings - at the moment of writing there are three settings: timeout, retry policy and tracked properties. In this case, we will only touch on the timeout one. The values you can use for this setting are a duration in ISO 8601 format. To learn more about the ISO 8601 format, go to this Wikipedia page. Below you can find some examples:
- PT30M - 30 minutes
- P1D - 1 day
- P5D - 5 days
Remember that there is currently a limit for Approvals of 30 days. This means an approval will timeout after 30 days.
So, when you have set a timeout, you have to configure a run after scenario for the timeout and you also have to configure a condition as a parallel path for when someone responds to the approval request. To do this, add an action after the start an approval action, select the ellipsis in the top right corner and select "Configure run after". Make sure to select the "has timed out" option and deselect the "is successful" option, just like the image below.
I used the update item because I want to update the status in a SharePoint list. This makes it easier to see that someone didn't respond within the timeout time. When you have selected "Done" in the run after configuration, you will see the arrow above the action turn into a red dotted line to make it easier to see that there is an alternative run after configuration active.
To configure the scenario for when someone responds within the timeout time, you should add a condition to a parallel branch. This can be easily done by clicking the plus above the action you just configured as a run after action and selecting the right option, as you can see in the image below:
When you configured your Flow in the right way, it will look like this:
Of course, you can go wild and create another approval process below the update item action, but I won't do this for this blog post.