“When a Power BI dataset refresh completes” trigger in Power Automate

If you have been working with Power BI for a while now you might have come across the standard Power BI actions in Power Automate. They allow you to automate a nice bunch of Power BI processes. But while there is a trigger that starts a flow when a Power BI dataflow action has completed, no such trigger is available for when a Power BI dataset action has (successfully) completed. So here I will present a workaround that is still possible without a premium Power Automate license.

Use a data driven alert in Power BI

Just create a data driven alert in Power BI with a threshold that will be reached with every refresh of the dataset. You can do this by setting a dedicated “Trigger-Flow”-measure like UTCNOW()*1 for example. This measure needs to be a number that is larger than 0 and needs to change every time the dataset is refreshed to trigger a new alert. Then configure the data driven alert to trigger every time the measure is above 0.  Within the data driven alert, choose the option to “Use Microsoft Power Automate to trigger additional actions”. That will create a new flow that will trigger whenever the dataset refreshes.

Option to create a flow in Power Automate when the dataset refresh finishes

Limitations

As you can see in the screenshot above, this method will not work more than once in an hour. But for most workloads withing a pro workspace this will probably be sufficient.
Also the trigger will not work if the refresh has been made through the XMLA endpoint (thanks to Kristian Bubalo for highlighting this)

Further reading

Please also read Kristian Bubalos great article that describes this method in more detail.

Enjoy and stay queryious 😉

Comments (3) Write a comment

    • You need to use a measure that changes with every refresh and returns a number.
      Like UTCNOW()*1 for example. (Have updated the post accordingly)

      Reply

  1. I used a do until to pause a flow until the dataset is done refreshing. Very handy when you need to refresh a dataset, then wait until the refresh is complete to move on.

    Reply

Leave a Reply