Send Power BI values with Power Automate
Run a saved dataset query in your organization’s flow and deliver the result to a Denframe webhook.
A 15-minute sales summary from Power BI: a Revenue block and an Attainment block on a private dashboard, updated each time the flow runs.
- A Power BI semantic model you can query, and a Power Automate account with access to it.
- An approved HTTPS delivery route to Denframe (see Prepare the receiving address), plus entitlement for the HTTP action or your organization’s gateway or custom connector.
- A dashboard whose audience allows Private values. Live tenant and gateway compatibility must be checked in your deployment.
Follow these steps in your own Denframe. This website never connects to your household, your accounts or your devices, and never asks for your credentials.
Create the webhook source
In Studio, open Sources, then Custom. Choose Add a custom source; the sheet asks where the data comes from.
Choose Power BI. This opens the webhook connection with Producer set to Power BI / Power Automate, so new values start as Private.
Paste the sample below into Sample JSON from the data field, choose Choose fields from sample, map Revenue and Attainment, and choose Preview selected values. Keep Expected delivery interval (seconds) at
900.Denframe setup sample { "revenue": 124500, "attainment_pct": 83, "currency": "EUR" }Tick a dashboard whose audience allows Private values under Show on and choose Add source. Copy the Delivery address and the Delivery token (shown once) before choosing Done.
Denframe won’t silently broaden a dashboard’s audience when attaching Private values. A
localhostaddress is not reachable from Power Automate cloud.Build the scheduled flow
Create a scheduled cloud flow with a 15-minute Recurrence trigger. Serialize runs if needed, so newer data isn’t overtaken by an older concurrent run.
Add Power BI, Run a query against a dataset. Sign in, select the Workspace and Dataset, and enter the synthetic DAX query below. It returns one row without needing existing measures.
Synthetic DAX query EVALUATE ROW("Revenue", 124500, "AttainmentPct", 83)Test the action and inspect the returned row, including the exact bracketed column names. For production, replace the constants with measures defined in your model.
Pick out the first row
Add a Compose action named
SummaryRow. In its Expression tab, use the expression below. If your query action has a different internal name, update the reference, and confirmfirstTableRowsexists in its actual output before using it.SummaryRow expression first(body('Run_a_query_against_a_dataset')?['firstTableRows'])Don’t continue to delivery on a failed query, an empty row, missing numbers or an embedded query error. Inspect the query action’s response in the test run rather than substituting zero.
Compose the envelope
Add another Compose action named
DenframeEventwith the object below. Insert the expressions with the designer’s Expression controls so revenue and attainment stay numbers. The example uses the query action name from the previous step; check the names against your flow.DenframeEvent object · Power Automate expressions { "schema_version": 1, "event_id": "@{workflow()['run']['name']}", "produced_at": "@{utcNow()}", "data": { "revenue": "@outputs('SummaryRow')?['[Revenue]']", "attainment_pct": "@outputs('SummaryRow')?['[AttainmentPct]']", "currency": "EUR" } }Send it to Denframe
Add the approved HTTP action: Method
POST, URI the copied delivery address,Content-Typeapplication/json, andAuthorizationBearerfollowed by the delivery token. Take the token from protected configuration and protect inputs and outputs in the flow history.Set Body to the Outputs of
DenframeEvent. For a gateway deployment, use your organization’s configured custom connector with the same envelope and bearer header; a normal cloud HTTP action doesn’t use a gateway by itself.Retry the delivery action with the already composed
DenframeEvent. Don’t regenerateutcNow()or the payload for each HTTP retry.Check it worked
Run the flow once. Check that
data.revenueis the JSON number124500, not a quoted string, and that the source’s Recent deliveries lists an accepted event. Both blocks show their values on the dashboard. Then turn on the recurrence.
If it doesn’t work
The dataset query is denied
Check semantic-model access and the tenant’s Execute Queries policy with your Power BI administrator.
firstTableRows or a column is missing
Inspect the query action output and use its actual action name and row keys. The DAX example returns [Revenue] and [AttainmentPct].
The flow succeeds but Denframe still waits
Check the delivery action, address and token separately from the query. A successful Power BI query alone delivers nothing to Denframe.
You can’t expose an approved receiving route
Use the direct Power BI connection if your organization permits it; Denframe then makes the outbound requests.