What is Concurrency Control in Power Automate?
Power Automate is a cloud-based service by Microsoft that allows users to streamline repetitive tasks, integrate systems, and trigger actions based on specific events or conditions. While Power Automate can do a lot, speed can become an issue if the task you're trying to achieve is being applied to multiple rows. The good news is that using concurrency control has the potential to save you, and your business, a lot of time in these cases.
Concurrency control in Power Automate refers to the mechanism that allows multiple runs or loops of a Flow to run at the same time. When concurrency control is enabled, it then gives the option to set the degree of parallelism, or number of items it will process at once. Currently users are allowed to set the degree of parallelism anywhere from 1 to 50. You can look for this option on triggers or apply to each steps.
Why should you consider using Concurrency Control?
Simply put, it can shorten the amount of time it takes Flows to run. The idea being if you are updating a list of 50 accounts without it turned on, the Flow will make each update one at a time. If you turn it on, it will update up to 50 of them at once. If your Flow relies on list records steps this can reduce the run times greatly.
Example of Efficiency Improvement
As an example, we have a Flow that is going to list 10 accounts and update their owners in an apply to each step. Then within that apply to each, we are going to list all contacts at that account and update their owners as well.
First, we will enable concurrency control and set the degree of parallelism.
Then, the flow was run twice with concurrency control turned on and twice with it off. In the screenshot below, the top two rows have it enabled to 20 degrees of parallelism. The bottom two rows have it disabled entirely. We can see even for a smaller list of records doing a basic task, we saved around a minute. If we increased the rows or complexity of the Flow, we could easily save hours.
When should you not use it?
As you may expect there are some limitations that prevent this from being practical for all Flows. The first is that it will consume more system resources when the Flow is running since it performs more actions at once instead of performing them once by one over a longer period of time. Second, we need to make sure using it doesn’t cause issues with other parts of the Flow. For example, if the Flow is cycling through a list of records and making updates that are being referenced in future loops you may want to avoid it all together. Another example is if steps within that apply to each are making updates to the same record. You wouldn’t want them to interfere with each other; potentially messing up the data or causing errors.
If using concurrently control makes is an option for a Flow, it's a great way to improve the run time. If you keep in mind the downstream impact it be the difference between a Flow needing half a day to run instead of a whole weekend.
We love to implement Microsoft Dynamics 365 and Power Platform solutions here at Beringer. We’ve been working with Microsoft Dynamics since its inception, and we’re always finding innovative ways to implement the latest tools and help automate business processes.
Beringer Technology Group, a leading Microsoft Partner specializing in Microsoft Dynamics 365 and CRM for Distribution also provides expert Managed IT Services, Backup and Disaster Recovery, Cloud Based Computing, Email Security Implementation and Training, Unified Communication Solutions, and Cybersecurity Risk Assessment.