Forum Discussion
How to programmatically publish Power BI / Power Query Dataflows after deployment (CI/CD scenario)?
Hi all,
We are working on implementing CI/CD for Power Platform / Power BI across multiple environments (Dev → UAT → Prod), and we’ve run into a blocker related to publishing dataflows.
🔹 Context:
We deploy solutions and artifacts using Azure DevOps pipelines
Dataflows are successfully deployed to the target environment
However, they remain in an unpublished state until manually opened and published in the UI
🔹 Issue:
We are unable to find any supported way to programmatically trigger the “Publish” action for dataflows.
🔹 What we’ve tried:
Power Platform CLI (pac)
Power BI REST APIs
Power Automate (cloud flows)
Power Automate Desktop (UI automation approach — not ideal for enterprise pipelines)
🔹 Current limitation:
There does not appear to be a supported API to:
Publish Dataflow (equivalent to clicking "Publish" in UI)🔹 Questions:
Is there any supported API or mechanism to publish dataflows programmatically?
Are there any recommended enterprise patterns for handling this in CI/CD?
Is this capability on Microsoft’s roadmap (e.g., Fabric / Dataflow Gen2)?
🔹 Current workaround:
We are currently considering:
Manual publish step post-deployment
Raising a Microsoft support ticket for confirmation
#power-bi #dataflows #power-platform #ci-cd #azure-devops #fabric
8 Replies
- ToddChitt
Super User
Are you using legacy Dataflows in Fabric? Or the newer Dataflow Gen2 CI/CD object?
Your reference to the "Publish" operation makes me believe you are using the old type.
Dataflow Gen2 CI/CD do not have "Publish" operations. You simply Save/Close/Run.
Maybe that is the hang up?
- ibarrau
Super User
Hi. I don't think that's possible. Even if you import the dataflow as json like this link shows:
https://learn.microsoft.com/en-us/rest/api/power-bi/imports/post-import-in-group
The object wasn't prepared for CICD like reports. The only way to make it move between dev-uat-prod would be editing online at dev and use Deployment Pipelines to handle that.
Otherwise you should get rid of them moving that logic to back (DB or warehouse), to the dataset power query or purchasing Fabric for Dataflows Gen2 (I think they don't need that manual publish)
I hope that helps,
- ibarrau
Super User
Hi, like v-aatheeque said, that falls at the same state of a dataflow gen1 power bi. My answer is still the same. You should analyze if you can take that logic to a previous step like a data warehouse or inside the dataset using it. Unless of course you are planning to move to Fabric, then you can take it to dataflow gen2.
I hope that helps
- v-aatheeque
Community Support
Hi TEJAK504
Thanks for clarifying, Since you’re using Power Apps dataflows, these fall under legacy Dataflows (Gen1).
At the moment, there is no supported API or automation mechanism to trigger the Publish action for Gen1 dataflows. This is a known platform limitation, so even when deployed via Azure DevOps or APIs, the dataflows will remain in a draft state until they are manually published from the UI.
As you mentioned that you are managing (40 environments), this can definitely become operationally heavy.
If this limitation is impacting your process, it’s worth raising or upvoting an idea in the Fabric Ideas - Microsoft Fabric Community , as this is a known gap for enterprise CI/CD use cases.- v-aatheeque
Community Support
Hi TEJAK504
We wanted to follow up to check if you’ve had an opportunity to review the previous responses. If you require further assistance, please don’t hesitate to let us know.
- donbuser
Resolver I
This is a good example of where the platform capabilities haven’t fully caught up with enterprise deployment patterns yet.
From what I’ve seen, you’re not missing anything obvious — there currently isn’t a clean, supported way to programmatically trigger the “Publish” step for dataflows in the same way you can deploy them.
The underlying issue is that “deployment” and “publish” are treated as separate states, and the publish action is still tightly coupled to the UI layer rather than exposed as part of the lifecycle APIs.
In practice, most teams I’ve come across handle this in one of three ways:
Accept a manual publish step as part of the release process (not ideal, but explicit)
Redesign pipelines to minimize reliance on dataflows as deployable artifacts
Shift toward patterns where transformations are handled upstream (e.g., in data pipelines or warehouse layers) so CI/CD can be more fully automatedIt’s less a tooling gap and more a lifecycle gap — the platform supports moving artifacts, but not fully promoting them through all operational states.
I would expect this to evolve, especially with Fabric and Dataflow Gen2, but today it’s one of those areas where the process has to adapt slightly to the platform limitations.
Curious if anyone has found a reliable pattern that avoids the manual step without introducing UI automation.