Post

#PowerPlatformTip 117: 'Optimize Parallel Object Processing'

#PowerPlatformTip 117: 'Optimize Parallel Object Processing'

TL;DR: Break past the 50-item Apply to Each limit in Power Automate using child flows or database triggers for true parallel processing.

💡 Challenge

Processing many items in Power Automate’s “Apply to each” can be slow. Even with concurrency on, you’re capped at 50 parallel runs, so later items wait for a slot to free up.

✅ Solution

Trigger child flows or write items to a database so each item is processed independently, and place “Respond to a PowerApp or flow” before long operations so the main flow returns quickly.

flowchart LR
    subgraph O1["Option 1: child flow per item"]
        A1["Apply to each item"] --> A2["Trigger child flow"] --> A3["Processes independently<br/>bypasses 50-item cap"]
    end
    subgraph O2["Option 2: database fan-out"]
        B1["Apply to each item"] --> B2["Write item to database"] --> B3["Second flow triggers<br/>on new row"]
    end

🔧 How It’s Done

1. Trigger a child flow per item

🔸 Enables parallel execution beyond the 50-item cap.

🔸 Create a child flow that handles a single item, then call it for each item from the main flow.

2. Write to a database

🔸 Keeps data integrity with controlled, structured processing.

🔸 Write each item to a database inside the loop, then use a second flow that triggers on new rows to process them individually.

3. Place “Respond to a PowerApp or flow” early

🔸 Lets the flow return quickly and frees the system for more requests.

🔸 Put the Respond action before time-intensive steps; resubmit failed runs later if needed.

🎉 Result

Large item sets process significantly faster, bypassing the default 50-item concurrency limit and improving overall flow responsiveness.

🌟 Key Advantages

🔸 Speed: far less time to process large item counts.

🔸 Scale: parallel processing beyond the 50-item limit.

🔸 Control: structured processing via child flows or databases.


🎥 Video Tutorial


🛠️ FAQ

1. How do I set concurrency in Apply to Each? Adjust the concurrency control in the “Apply to each” action settings up to a maximum of 50 parallel runs. Beyond that, use child flows or database triggers.

2. What are child flows and why use them? Child flows are separate flows invoked from a parent flow. They let you process items independently and in parallel, bypassing the parent flow’s concurrency limits.

3. How do I handle errors in child flows? Use scopes and configure run-after settings inside the child flow. Log failures to a database or send notifications, and optionally retry or resubmit failed runs later.

This tip is by Marcel Lehmann, Microsoft MVP (Business Applications) and founder of the Power Platform Academy – live Power Platform workshops, free or CHF 49. Join the workshop waitlist to get notified about new dates. For companies that want this implemented for them, see KMUpower – Power Platform consulting & automation for SMEs (DACH).

This post is licensed under CC BY 4.0 by the author.

Microsoft and the Power Platform product names (for example Power Apps, Power Automate, Copilot Studio) are trademarks of the Microsoft group of companies. This is an independent website. It is not operated, sponsored or endorsed by Microsoft.