You can use your Power BI Goals as a trigger to kick off processes in Power Automate. You can customise the series of actions you want to occur based on:
- When a data refresh for a goal fails
- When a goal changes
- When current value of a goal changes
- When someone adds or edits a goal check-in
- When someone assigns a new owner to a goal
- When status of a goal changes

Below, we’ll take a look at using When status of a goal changes.
Building the flow: When status of a goal changes
Let’s say that for the goal below, if the status becomes At risk, we want to notify the owner via Microsoft Teams.

Your Power Automate flow will begin by using the Power BI trigger When status of a goal changes. In the trigger, you can link up the relevant workspace, scorecard and goal. Polling interval refers to how long (in seconds) will Power BI be checked for a status change. In other words, every 300 seconds Power BI is monitored, and if a status change occurred within that time, the flow will run. The minimum you can set this to is 300 seconds, which may be ideal when testing the flow.

Next, the Power BI action Get a goal should be used so that you can get additional information to use in the flow such as email of the goal owner, goal name, start and completion dates, status, target, etc.

Since we only want this flow to run if the goal status becomes at risk, add in a condition. The condition is set to: Changed goal New status is equal to At risk
The condition uses the Changed goal New status dynamic content from When status of a goal changes.

Then finally, the only action we want in this case is to send a Teams message to the owner of the goal. You can use the Goal Owner dynamic content in the recipient field.

Testing the flow
You can test the flow by changing the status of your goal in Power BI to At risk. Remember that you will need to wait for the flow to run once you change the goal status due to the polling interval.

Then when your flow eventually runs, you should see your Teams message.
