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.
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 😉
Thank you for this handy tip. Are you aware of any updates to this functionality since the this was posted?
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)
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.