Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Python | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Python | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA | Python |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA | Python
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Databricks | Power Apps | Power Automate |
Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables | Power Apps | Power Automate
Power BI | Power Apps | Power Automate | SQL | VBA | Python | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables
Power BI | Power Apps | Power Automate | SQL | VBA | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
LEARN THIS HANDS ON
Power Apps & Power Automate
You deploy a new flow against a line-of-business API, and within a day the API owner complains about traffic spikes and throttling. The logic is fine; the problem is how and when the flow runs. This article walks through designing trigger-based vs scheduled flows in Power Automate so your event-driven processes stay responsive without hammering your APIs.
A typical setup:
The first implementation often looks like this:
Get items on the SharePoint list with a filter for Modified in the last 5 minutes.Symptoms:
We’ll rework this into an event-driven design using trigger-based flows and a small amount of buffering, then compare when scheduled flows are still the right choice.
In Power Automate (cloud flows):
Trigger-based flows start when an event or condition is met.
When an item is created (SharePoint), When an item is created or modified (SharePoint), When a row is added (Dataverse), When an HTTP request is received, When a message is added to a queue.Scheduled flows start on a fixed recurrence.
Key behavioural points that matter for API load:
From an API owner’s perspective, your design choices boil down to:
Let’s look at the scheduled design in more detail.
Flow 1: Scheduled sync
Get items from SharePoint where Modified >= utcNow() - 5 minutes.Problems:
Runs with no changes
Get items still executes against SharePoint every 5 minutes.Overlapping windows and duplicates
Bursts map directly to API spikes
No native backpressure
The scheduled model is simple to reason about time-wise, but blind to event volume and API constraints.
For SharePoint, the natural move is a trigger-based flow:
Flow 2: Order change event flow
When an item is created or modified (SharePoint).This immediately changes the shape of load:
A common pattern is to buffer events instead of calling CRM directly from the trigger flow. For example:
This gives you:
Assume you use Dataverse as a simple queue table OrderSyncQueue with columns:
OrderId (text)OperationType (choice: Create, Update)QueuedAt (datetime)Flow A: SharePoint trigger to queue
When an item is created or modified (SharePoint).OrderId and OperationType.Add a new row in OrderSyncQueue.You now have one short flow per change, with no CRM calls yet.
Trigger-based flows are ideal for capturing events. Scheduled flows are still useful as workers for controlled processing.
Flow B: Scheduled queue processor
Recurrence every few minutes.OrderSyncQueue.This hybrid design avoids hammering the API because:
For flows that call external APIs heavily:
Apply to each loop.If the CRM API can safely handle, say, 5 concurrent calls from this process:
This gives predictable load:
batch size × runs per hour, which you control by recurrence.You’ve now used a scheduled flow in a way that protects the API, rather than hammering it.
Trigger-based flows can also generate too many runs if you’re not careful. The main levers:
Trigger choice
When an item is created / When an item is created or modified is event-driven.When a row is added, modified or deleted is event-driven.Trigger conditions
Example trigger condition for SharePoint: only run when Status = ReadyForSync.
@equals(triggerBody()?['Status'], 'ReadyForSync')
You configure this in the trigger’s Settings → Trigger Conditions.
By reducing how often your trigger fires, you reduce how often you even have the opportunity to call external APIs.
Even with good trigger/schedule design, you need to handle API constraints:
Most connector actions support configurable retry policies.
For APIs with strict rate limits, consider:
Delay action.Pattern:
This works best in the worker flow, not the trigger flow, because you already control batch size and concurrency there.
Power Automate has limits on actions per 24 hours per user/environment depending on licence and capacity.
Let’s compare the three designs:
Get items + loop + CRM call per item.Impact:
When an item is created or modified (SharePoint).Impact:
Impact:
Design C is usually the sweet spot for “event-driven but API-friendly” in real environments.
Not everything should be event-driven. Scheduled flows are still the right choice when:
Even then, you can:
The most effective way to design trigger-based vs scheduled flows in Power Automate without hammering your APIs is to separate event ingestion from API processing:
If your current flows call external APIs directly from high-frequency schedules, start by introducing a queue and a worker flow. That single structural change usually turns an unpredictable API spike into a controllable, measurable workload.
This article reflects a shift from monolithic, high-frequency scheduled flows to event-driven designs with queued workers, which matters most for teams integrating Power Automate with rate-limited line-of-business APIs and shared data platforms.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Power Automate Course programme - taught live by instructors, with certification awarded once a real project is running at work.
Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.
Power Automate
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering