Introduction
Power Automate flows often use Apply to each to process multiple records, files, or items. By default, these items are processed one at a time, which can make your flow slow when working with large datasets.
With Concurrency Control, you can allow multiple iterations of an Apply to each loop to run simultaneously, significantly improving flow performance.
What Is Concurrency in Apply to Each?
By default, Power Automate processes items in an Apply to each loop sequentially:
Item 1 → Item 2 → Item 3 → Item 4 → Item 5
This means the next item starts processing only after the previous item is completed.
When concurrency is enabled, multiple items can be processed in parallel:
Item 1
Item 2 → Run at the same time
Item 3
Item 4
Item 5
This can reduce the overall execution time of your flow.
Benefits of Using Concurrency
1. Faster Flow Execution
Multiple iterations run simultaneously instead of waiting for each other, which can significantly reduce the total processing time.
2. Better Performance
Concurrency helps your flow process large numbers of records more efficiently.
3. Ideal for Independent Operations
It works especially well when each iteration performs an independent operation and does not depend on the result of another iteration.
4. Useful for External APIs
If your flow calls external APIs or performs independent data operations, concurrency can help improve processing speed.
How to Enable Concurrency Control
Follow these steps:
Open your Power Automate flow.
Find the Apply to each action.
Click the three dots (...).
Select Settings.
Turn on Concurrency Control.
Set the Degree of Parallelism.
Save your flow.
The degree of parallelism determines how many iterations can run at the same time.
Tip: Start with a low value, test your flow, and gradually increase it based on performance and connector limitations.
When Should You Use Concurrency?
Concurrency is a good choice when:
Each iteration is independent.
You are processing a large dataset.
You are calling external APIs.
You want to reduce flow execution time.
The order of processing is not important.
Each iteration works with a different record or resource.
For example, if you need to send notifications to 100 users and each notification is independent, concurrency can process multiple users at the same time instead of sending each notification sequentially.
Important Limitations
Although concurrency can improve performance, it should be used carefully.
API Throttling
Running too many operations simultaneously can exceed API or service limits and cause throttling.
Connector Limitations
Different Power Automate connectors have different limits for concurrent requests.
Data Conflicts
If multiple iterations update the same record or resource, parallel processing can cause conflicts or unexpected results.
Premium Connector Usage
Depending on your flow design, increasing parallel operations may increase the number of connector calls and potentially affect consumption or capacity.
When NOT to Use Concurrency
Avoid concurrency when:
One iteration depends on the result of a previous iteration.
Processing order is important.
Multiple iterations update the same record.
You need strict sequential processing.
The connected API has strict rate limits.
Parallel updates could cause data conflicts.
For example:
Item 1 → Update Record → Item 2 → Update Same Record
In this situation, running iterations in parallel could cause conflicts. Sequential processing is safer.

Example: Using Concurrency in Power Automate
Imagine you have a SharePoint list containing 100 customer records, and your Power Automate flow needs to send an email to each customer.
Without Concurrency
By default, the Apply to each loop processes one customer at a time:
Customer 1 → Customer 2 → Customer 3 → ... → Customer 100
If each email takes 2 seconds to process:
100 × 2 seconds = approximately 200 seconds
With Concurrency
If you enable Concurrency Control and set the Degree of Parallelism to 10, Power Automate can process up to 10 customers simultaneously:
Batch 1: Customer 1–10
Batch 2: Customer 11–20
Batch 3: Customer 21–30
...
Batch 10: Customer 91–100
This can significantly reduce the total execution time.
Example Flow
Trigger
↓
Get items – SharePoint
↓
Apply to each – Customer List
↓
Send an email to customer
Apply to each → Settings → Concurrency Control → On → Degree of Parallelism: 10
Real-World Scenario
For example, if you have a daily flow that sends 500 approval reminder emails, processing them sequentially can take a long time. By enabling concurrency, multiple reminder emails can be processed simultaneously, making the flow much faster.
Important: Make sure the operations inside the loop are independent. If each iteration updates the same SharePoint item, concurrency may cause conflicts.
Conclusion
Concurrency Control in Power Automate's Apply to each is a powerful way to improve flow performance. By allowing independent iterations to run in parallel, you can significantly reduce execution time, especially when processing large datasets.
However, faster is not always better. Too much parallelism can lead to API throttling, connector limits, or data conflicts. The best approach is to start small, test your flow, and find the right balance between speed, reliability, and system capacity.
In short: Use concurrency when your operations are independent and performance matters—but always configure it thoughtfully.

Jasen FiciPosted Aug 12, 2026, 1:11 PM
We included this for DotNetNews readers here: https://dotnetnews.co/archive/the-net-news-daily-issue-517/