Last week I was playing with the very cool Rest Getting Started Sample (written in C#) that I morphed into into a big loop that deleted all the Rows in the dataset and sending a row with a random value from 1-10.
The reason i did this was to demo the new Flow integration with Alerts so i could show sending emails to groups of people as a result of an alert.
I tweeted about this demo and had a bunch of private requests from people hoping for a sample of updating data in Power BI directly from PowerApps. This blog post will show you how to do insert data into a Power BI Dataset from Microsoft Flow.
(I will do another post on how wire up this Flow to a PowerApps Application)
Registering your application
Just like the Getting Started Sample, we need to start by registering your application for Oauth access to PowerBI. While you can do this in the Azure Portal, it is much easier in the Power BI Dev Portal.
1. Navigate to https://dev.powerbi.com/apps and fill out the application name, specify the App Type as Server-side Web app.
2. Fill out the the redirect URL and Home Page in this case I am using the following values :
- Redirect https://msmanaged-na.consent.azure-apim.net/redirect
- Homepage https://api.powerbi.com/v1.0/myorg
3. Register the application
Once you set the permissions for the application register it and make sure and save the Client ID and Client Secret!
Create a Custom API in Flow to all the datasets endpoint and add the rows to the PowerBI dataset.
1. The first step is to log into https://Flow.microsoft.com and click the gear Icon and select the Custom APIs menu.
2. Click Create custom API
…In this case just click the button.
3. Set the properties of the Custom API.
I have attached the swagger file below. This one was hand created by Sunay Vaishnav –but he is working on tooling to make this much easier!
4. Set the security Properties.
In this case as the swagger file already specifies Oauth and Azure Active Directory all i needed to was set the following and save the custom API.
- API Name
- Client ID <from the steps above>
- Secret <from the steps above>
- Resource Uri: https://analysis.windows.net/powerbi/api
Create a Flow to use the Custom API
1. Click on My Flows > Create from blank
2. Set the trigger to recurrence and actions to the custom api name you gave it above
3. Sign into the PowerBI to set the properties of the custom API
(If you don’t get this sign in dialog you probably registered the application incorrectly in step 1)
4. Set the properties of the Action.
If every thing was done correctly the Dataset and Table name should auto populate to drop downs so you can see all the datasets and tables. NOTE the dataset you are updating MUST HAVE BEEN CREATED WITH THE REST API’s INITIALLY! If this limitation is something you would like changed please vote on this idea:
https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/9366600-update-rows-rest-api
Swagger file you will need to do this:
Make sure and rename it to *.Json