How to pause Power Automate flow until SharePoint column has a value
Posted On June 27, 2021
“Is there a way to pause my Power Automate flow and let it continue only after a specific SharePoint column has a value?”
When you build multiple step processes on SharePoint lists, you might need also some input from users. Not only an approval task, but an actual update of the SharePoint item. It can be selection of the next approver, a date for the next action, or a business unit that should take over… But how can you tell the flow to pause and continue only after user provides the input?
‘Do until’ action
Since Power Automate doesn’t have an action to wait for a column update, you must use a workaround. It’s a similar workaround with the ‘Do until’ action as used in the parallel approval task reminder.
‘Do until’ action will repeat the actions inside until the condition is true, or until it reaches the loop limits. That means that the condition is the ‘end‘ condition, not the ‘keep running’ condition. For example, the ‘Do until’ action below will stop looping once the variable has a value (is not equal to <empty value>).
The loop limits are hidden under the ‘Change limits’ button. You can define either number of runs or a timeout period, and it’ll stop once it reaches one of them. The ‘Count’ is a simple count of the loops, 5000 being the maximum, the ‘Timeout’ is a time period in the ISO 8601 duration format. On the screenshot below you can see a configuration that will move out of the ‘Do until’ after 600 loops or 20 days, whichever comes first.
Initialize a variable to store the column value
Now, for the actual flow, you’ll need a variable to store the value from the SharePoint column, e.g. user email. It’s needed because you can’t use the dynamic content directly. If you used a dynamic content, it would always have the same, original value. Variable will allow you to work with the latest value. It’s the variable you’ll use in the ‘Do until’ condition.
Delay the loop for a while
Since you don’t want to consume all the loops in the limit at once, you should ‘Delay’ the loop for a moment. It’s the pause that will give users some time to update the item, until you check it again, e.g. in 1 hour.
Get the updated item
After the ‘Delay’, get the item again with the ‘Get item’ action. With this action you’ll always get the latest version of the item, with all the current values.
Update the ‘condition variable’ with the new value
The last step in the ‘Do until’ action is to update the variable with the new value. This ‘Set variable’ action will be the last step in the loop, and the flow will go back to the beginning. It’ll check again if the variable has a value, and if not, it’ll repeat the steps inside ‘Do until’.
With the ‘Do until’ from above you can pause your Power Automate flow until column has a value. It’s a workaround, it has a few limitations, but if the whole process is fast and not too urgent, it’s a fine solution.
One limitation is that you can’t check the item real time. If you need to process the update item in real time, you’ll need separate flows with trigger conditions for each step. The solution above will check the item only once per the ‘Delay’ period.
You must also consider the limitation of 30 days for a flow run. You can’t wait in the ‘Do until’ actions for more than 30 days, the flow will stop itself. The limits for all ‘Do until’ actions in your flow shouldn’t go over 30 days (loop count * delay).
And the last one is that the ‘Do until’ will always run at least once. If it’s possible that the column will already have a value, you should add a ‘Condition’ before the ‘Do until’ and skip it if it’s not needed.