How to add a delay between runs of a Power Automate flow

“When 2 or more instances of the same Power Automate flow are running at the same time, the data manipulation turns into a complete mess, how can I add a delay between the flow runs?”

When you use an automated trigger in a flow, it’ll trigger every time the event happens. In most situations it’s a desired functionality, even if that means running multiple flows at the same time. There’s no need to wait for anything, all flows can run right away.

But in some situations it’s unwanted behaviour. If the flow works with some shared data, or if it uses some external service, parallel runs of multiple instances can lead to a problem. Multiple flows manipulating the same data at the same time can easily turn it into a complete mess. Calling an external service from multiple flows at the same time can lead to requests rejection and flow failures. In such cases it’s better to run only one flow instance at a time.

Run only one flow at a time

Since we’re talking about triggering a flow, the configuration must be done in the trigger. Go to the trigger ‘Settings’ under the 3 dots.

The ‘Concurrency Control’ section allows you to limit the number of flow instances running at the same time. As you want to run only one flow, switch the Limit on and set the parallelism to 1 flow.

Power Automate add delay between flow runs

With this configuration there’ll be always only 1 flow running. All the other flow runs will wait in the queue until the previous one finishes.

Note: just to make sure: the setting applies only to the specific flow, not all your flows.

Add a delay between the flow runs

All you need to add a delay between the flows is to add the ‘Delay’ action at the end of the flow. The parallelism will allow flows to run one by one, and the ‘Delay’ will delay the end of the flow. Until the current flow ends, until it completes the ‘Delay’, no other flow instance will be started.

Power Automate add delay between flow runs


Adding a delay between multiple Power Automate flow runs has 2 steps. Firstly, configure the trigger to run only 1 flow at a time. Secondly, add the actual delay as the ‘Delay’ action at the end of the flow. You’ll have always maximum 1 instance of the flow running, the next one triggering earliest after the previous one finishes.

Since you’ll be running flows one by one with a delay, you might see a long queue from time to time. If so, I’d add a trigger condition to run the flow only if necessary and reduce the number of runs.

I use the solution above (without the delay) in a SharePoint based task management process. When a task is closed, I need to check if all the related tasks were also already closed. If it was the last open task, flow will create the subsequent task(s). I can’t risk that users would close the last e.g. 2 tasks at the same time, the flow would trigger twice, it would twice confirm that there’s no other open task, and create twice the subsequent tasks. For that reason there’s always running only one task processing flow, the others waiting for it to finish.

Do you struggle with the various expressions, conditions, filters, or HTTP requests available in Power Automate?

I send one email per week with a summary of the new solutions, designed to help even non IT people to automate some of their repetitive tasks.

All subscribers have also access to resources like a SharePoint Filter Query cheat sheet or Date expressions cheat sheet.

Zero spam, unsubscribe anytime.


Add a Comment

Your email address will not be published. Required fields are marked *