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
You finally wired up your Fabric data pipeline and notebook chain, scheduled it overnight, and went home happy—only to find a half‑processed lakehouse and silent failures the next morning. No alert, no retry, just a red exclamation mark buried in Fabric.
This article walks through practical patterns for orchestrating Fabric notebooks and data pipelines with Power Automate: robust triggering, controlled retries, and reliable notifications that survive real‑world outages and partial failures.
We’ll anchor the patterns around a common setup:
Pain points you’ve probably seen:
InProgress and the flow times out or hangs.We’ll fix this with:
You have two main options for orchestration:
As of late 2026, Fabric does not expose a ready‑made Power Automate trigger for “pipeline run completed” or “notebook run failed”. The most controllable pattern for orchestration is Power Automate‑centric, using:
This gives you centralized control over:
Before wiring Power Automate:
We’ll assume you’re using an Entra ID app and OAuth 2.0 client credentials to call Fabric APIs from Power Automate.
Build a cloud flow with these main blocks:
Recurrence (e.g., every day at 01:00 local time).Use an HTTP action to get a token from Entra ID. The exact endpoint and parameters depend on your tenant and app registration; a typical pattern for Fabric is:
{
"method": "POST",
"uri": "https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token",
"headers": {
"Content-Type": "application/x-www-form-urlencoded"
},
"body": "client_id=<client-id>&scope=https%3A%2F%2Fapi.fabric.microsoft.com%2F.default&client_secret=<client-secret>&grant_type=client_credentials"
}
In Power Automate:
POST method.client_secret (environment variable or secret).access_token.Note: The Fabric REST APIs use the
https://api.fabric.microsoft.com/.defaultscope for app‑only access. If Microsoft updates the resource URI or scopes, use the current Microsoft Fabric REST API documentation for your environment and adjust thescopeaccordingly.
Once you have access_token, call the Fabric pipeline API. The exact URL shape is version‑sensitive and workspace‑dependent; conceptually you’ll do:
POSTAuthorization: Bearer <access_token>Content-Type: application/json{} if none.Example HTTP action body (structure, not exact URL):
{
"method": "POST",
"uri": "https://api.fabric.microsoft.com/v1/workspaces/<workspace-id>/pipelines/<pipeline-id>/runs",
"headers": {
"Authorization": "Bearer @{variables('access_token')}",
"Content-Type": "application/json"
},
"body": {}
}
Parse the response to capture a run identifier (e.g., runId). You’ll use that to poll status.
Use a Do until control in Power Automate to poll the run status until it finishes or you hit a timeout.
Inside the Do until:
runId.state).Configure Do until condition:
state is one of Succeeded, Failed, or Cancelled.PT2H for 2 hours) to avoid infinite loops.Why poll instead of relying on Fabric schedules:
Failed vs Cancelled with different notifications.Power Automate offers retry policies on individual actions, but those only handle action‑level failures (e.g., HTTP 503), not business failures like a pipeline run finishing with Failed.
You need both levels:
On each HTTP action:
This protects you from short outages while keeping the flow resilient.
Once a pipeline run completes with Failed, you decide whether to retry. A practical pattern:
attemptCount and success state.Flow outline:
attemptCount = 0.state = 'Succeeded' OR attemptCount >= 2.attemptCount.state = 'Succeeded', continue to notebook.This separates transient HTTP errors (handled by action retry) from actual pipeline failures (handled by your business logic).
Avoid auto‑retry when:
In these cases, send alerts and require manual intervention in Fabric before re‑running.
Once the pipeline succeeds, trigger the notebook run.
The notebook REST API follows the same pattern:
POSTAuthorization: Bearer <access_token>, Content-Type: application/jsonExample structure:
{
"method": "POST",
"uri": "https://api.fabric.microsoft.com/v1/workspaces/<workspace-id>/notebooks/<notebook-id>/runs",
"headers": {
"Authorization": "Bearer @{variables('access_token')}",
"Content-Type": "application/json"
},
"body": {
"parameters": {
"runDate": "@{utcNow()}"
}
}
}
Parse the response to get the notebook run identifier.
Notebooks can run longer than pipelines, especially for heavy transformations. Use another Do until loop:
state is Succeeded, Failed, or Cancelled.If your notebook occasionally runs longer than the Power Automate flow’s maximum duration:
The same principles apply as for pipelines, but be more conservative:
A safe pattern:
You want alerts that:
Use a Scope for each of these:
OnSuccess: pipeline and notebook both succeeded.OnPartialFailure: pipeline succeeded, notebook failed.OnPipelineFailure: pipeline failed after retries.Then attach Teams or Email actions inside each Scope.
Example email structure (conceptual):
Fabric daily refresh – FAILED (pipeline).For Teams:
Only send alerts after retries are exhausted:
Succeeded, send a single consolidated alert.Include summary info:
Depending on your team, you might:
In Power Automate, branch on which component failed and send to different Teams channels or distribution lists.
Email and Teams messages are useful, but they don’t give you history. For production setups, add structured logging.
Common options:
Log fields like:
This helps you:
Let’s revisit the scenario.
Before:
After implementing the Power Automate patterns:
The team now arrives in the morning with either:
No more silent failures buried in Fabric.
Treat Power Automate as the orchestration brain and Fabric as the execution engine: push all scheduling, retries, and notifications into a Power Automate flow that calls Fabric’s APIs, polls run status, and only alerts once the dust has settled. That single design decision will make your Fabric notebooks and pipelines far more predictable for the people who depend on them.
This article reflects a shift toward using Power Automate as the orchestration layer over Microsoft Fabric pipelines and notebooks, especially for teams that need controlled retries, explicit status polling, and reliable notifications in production data environments.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Power Automate Training 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