AppsPricingBlogTry it
Microsoft Power BI logo
Notion logo

Connect Microsoft Power BI to Notion

Use 3 documented Microsoft Power BI triggers to run 24 documented Notion actions.

3 source triggers
24 target actions
Reverse direction supported

Why Connect Microsoft Power BI & Notion?

Start with a Microsoft Power BI event

Choose from 3 documented triggers, including Dataset Refresh Completed, Dataset Refresh Failed, New Dataset Refresh Created.

Run a Notion action

Send the event into one of 24 documented actions, such as Append Block to Parent, Complete File Upload, Create Comment.

Map and review the workflow

Choose the fields and conditions for the workflow, then test the result before activation.

Available Triggers & Actions

Microsoft Power BI logo

Microsoft Power BI

Triggers (3)

Dataset Refresh Completed

Emit new event when a dataset refresh operation has completed. See the documentation

polling
Dataset Refresh Failed

Emit new event when a dataset refresh operation has failed in Power BI. See the documentation

polling
New Dataset Refresh Created

Emit new event when a new dataset refresh operation is created. See the documentation

polling

Actions (15)

Add Rows to Dataset Table

Adds new data rows to the specified table within the specified dataset from My workspace. See the documentation

Add Rows To Push Dataset

Append rows to a table in a Power BI Push Dataset (streaming / realtime data). Only works for datasets created via the REST API with defaultMode: Push — these datasets expose addRowsAPIEnabled: true on the object returned by **List Datasets**. Use **List Datasets** first to resolve a dataset name → datasetId and inspect its tables for the exact tableName (case-sensitive). Pass workspaceId (from **List Workspaces**) or workspaceName to target a specific workspace, or omit both for My workspace. Rows must match the table's column schema. rows accepts either a JSON array ([{...}, {...}]) or a JSON-stringified array. Each row is an object of columnName → value. Common mistakes: (1) case mismatch on tableName returns 404 — copy the exact string from the dataset's tables array. (2) Sending values that don't match the declared column data type returns RequestedResourceNotFound or DMTS_DatasourceHasNoCredentialsError. Push-dataset rows have no individual IDs and cannot be updated or deleted — only appended or bulk-cleared. See the documentation

Cancel Dataset Refresh

Cancels a refresh operation for a specified dataset in Power BI. See the documentation

Create Dataset

Creates a new Push Dataset in Power BI. See the documentation

Execute DAX Query

Execute a DAX (Data Analysis Expressions) query against a Power BI dataset (semantic model). This is the primary analytics tool — use it to answer questions about values, aggregates, or filtered rows in a dataset. Use **List Datasets** first to resolve a dataset name → datasetId. The query must be a single valid DAX expression starting with EVALUATE. **Table discovery (standard datasets):** For datasets published from Power BI Desktop, the REST GET /datasets/{id}/tables endpoint is scoped to push datasets only and will not list tables. Use EVALUATE INFO.TABLES() instead — it returns every table name in the semantic model. Typical agent flow: **List Workspaces** → **List Datasets** → **Execute DAX Query** (EVALUATE INFO.TABLES()) → **Execute DAX Query** (EVALUATE 'TableName'). Common patterns: • Discover all tables — EVALUATE INFO.TABLES() (use this before querying an unknown dataset) • List all rows of a table — EVALUATE 'Species' • Filter — EVALUATE FILTER('Species', 'Species'[dietType] = "Carnivore") • Top N by column — EVALUATE TOPN(5, 'Species', 'Species'[weightKg], DESC) • Aggregate single value — EVALUATE ROW("Total", SUMX('Species', 'Species'[weightKg])) • Peek at a table's columns — EVALUATE TOPN(0, 'Species') (returns an empty rowset with column names in the response). Limits: max 100,000 rows or 1,000,000 values per query, and DEFINE/multiple-statement queries are not supported via REST. The tenant must have 'Dataset Execute Queries REST API' enabled (admin setting) or the call returns 401/403. Pass workspaceId (from **List Workspaces**) or workspaceName to target a specific workspace, or omit both for My workspace. See the documentation

Export Report

Export a Power BI report to a file format such as PDF, PPTX, or PNG. Requires a report ID (use **List Reports** to find it) and defaults to PDF if no format is given. Pass workspaceId (from **List Workspaces**) or workspaceName to target a specific workspace, or omit both for My workspace. Supported format values depend on the report type: Power BI reports support PDF, PPTX, PNG. Paginated reports additionally support CSV, XLSX, DOCX, XML, MHTML. This API is **Premium-only**: requires the workspace to be backed by Premium capacity, Premium Per User, or Embedded capacity. On shared (free) capacity it returns FixedCapacityLimitExceeded / 403. The export is asynchronous — this tool starts the export, then polls until the job reaches Succeeded or Failed (or pollTimeoutSeconds elapses), then downloads the file and returns it as base64 along with the job metadata. PNG exports only work for single-page reports. For PPTX/PDF, pass pages (array of page names, e.g., ["ReportSection", "ReportSection1"]) to limit the export. See the documentation

Get Dataset Refresh

Triggers a refresh operation for a specified Power BI dataset. See the documentation

Get Refresh History

Get the refresh history for a Power BI dataset. Use **List Datasets** first to resolve a dataset name → datasetId. Pass workspaceId (from **List Workspaces**) or workspaceName to scope to a specific workspace, or omit both for My workspace. Each entry includes requestId, refreshType (OnDemand, Scheduled, ViaApi, etc.), startTime, endTime, status (Completed, Failed, Disabled, Cancelled, Unknown — Unknown means still in progress), and serviceExceptionJson on failures. See the documentation

Get Report by id

Retrieve metadata for a single Power BI report by ID. Uses My workspace by default; set Workspace (Group) ID for a specific workspace. See the documentation

Get Reports

Get reports from a Power BI workspace. See the documentation

List Dashboards

List Power BI dashboards in a workspace. Defaults to the authenticated user's personal My workspace when no workspace is specified. Pass workspaceId (preferred, from **List Workspaces**) OR workspaceName to scope to a specific workspace. Each dashboard includes id, displayName, isReadOnly, webUrl, and embedUrl. Note: dashboards cannot be created via the REST API — they are built interactively in the Power BI service. See the documentation

List Datasets

List Power BI datasets (semantic models) in a workspace. Defaults to the authenticated user's personal My workspace when no workspace is specified. Pass workspaceId (preferred, from **List Workspaces**) OR workspaceName to scope to a specific workspace. Each dataset includes id, name, webUrl, addRowsAPIEnabled (true for Push Datasets), isRefreshable, and defaultMode (Push, Streaming, PushStreaming, AsOnPrem, AsAzure). Use this tool to resolve a dataset name → ID before calling **Refresh Dataset**, **Execute DAX Query**, **Get Refresh History**, or **Add Rows To Push Dataset**. For push-dataset row inserts, call the dataset's GET tables endpoint (not exposed as a separate tool) by inspecting the dataset's name → tables are defined at dataset creation; the table name is the string configured at creation time (e.g., Species). See the documentation

List Reports

List Power BI reports in a workspace. Defaults to the authenticated user's personal My workspace when no workspace is specified. Pass workspaceId (preferred, from **List Workspaces**) OR workspaceName to scope to a specific workspace — the tool resolves the name to an ID server-side. Each report includes id, name, webUrl, embedUrl, datasetId, and reportType (PowerBIReport or PaginatedReport). Note: reports cannot be created via the REST API — they are published from Power BI Desktop. See the documentation

List Workspaces

List the Power BI workspaces (groups) the authenticated user can access. Use this tool first whenever the user refers to a workspace by name — it returns the id you need to pass as workspaceId to other tools. Power BI has no /me endpoint, so the set of accessible workspaces is the user's primary context (the 'who am I' signal for this app). Every item in the response includes id, name, isReadOnly, isOnDedicatedCapacity, and type. Note: when a user says 'my workspace' without a name, they may mean personal My workspace (implicit — pass no workspaceId to other tools) OR a specific named workspace — ask only if ambiguous. See the documentation

Refresh Dataset

Trigger a refresh of a Power BI dataset. Returns 202 Accepted on success; the request ID is available in the Location response header (last path segment) and x-ms-request-id header — use **Get Refresh History** to check status. Use **List Datasets** first to resolve a dataset name → datasetId. Pass workspaceId (from **List Workspaces**) or workspaceName to target a specific workspace, or omit both for My workspace. notifyOption controls email notifications on refresh outcome: NoNotification (default), MailOnCompletion, or MailOnFailure. Power BI Pro licenses allow up to 8 scheduled refreshes per day; Premium allows 48. Note: Push datasets accept this endpoint but the refresh is metadata-only (tile refresh), not a data refresh — no cancellable history entry is produced. See the documentation

Notion logo

Notion

Triggers (9)

New Comment Created

Emit new event when a new comment is created in a page or block. See the documentation

polling
New Data Source Created

Emit new event when a data source is created. See the documentation

polling
New or Updated Page in Data Source (By Property)

Emit new event when a page is created or updated in the selected data source. See the documentation

polling
New or Updated Page in Data Source (By Timestamp)

Emit new event when a page is created or updated in the selected data source. See the documentation

polling
New Page in Data Source

Emit new event when a page is created in the selected data source. See the documentation

polling
New Webhook Event (Instant)

Emit new event each time a webhook event is received. Webhook must be setup in Notion. See the documentation

webhook
Page or Subpage Updated

Emit new event when the selected page or one of its sub-pages is updated. See the documentation

polling
Page Properties Updated (Instant)

Emit new event each time a page property is updated in a data source. For use with Page Properties Updated event type. Webhook must be set up in Notion. See the documentation

webhook
Page Updated

Emit new event when a selected page is updated. See the documentation

polling

Actions (24)

Append Block to Parent

Append new and/or existing blocks to the specified parent. See the documentation

Complete File Upload

Use this action to finalize a mode=multi_part file upload after all of the parts have been sent successfully. See the documentation

Create Comment

Create a comment in a page or existing discussion thread. See the documentation

Create Database

Create a database and its initial data source. See the documentation

Create File Upload

Create a file upload. See the documentation

Create Page

Create a page from a parent page. See the documentation

Create Page from Data Source

Create a page from a data source. See the documentation

Delete Block

Sets a Block object, including page blocks, to archived: true using the ID specified. See the documentation

Duplicate Page

Create a new page copied from an existing page block. See the documentation

Find Pages or Data Sources

Searches for a page or data source. See the documentation

Get Current User

Retrieve the Notion identity tied to the current OAuth token, returning the full users.retrieve payload for me (person or bot). Includes the user ID, name, avatar URL, type (person vs bot), and workspace ownership metadata—useful for confirming which workspace is connected, adapting downstream queries, or giving an LLM the context it needs about who is operating inside Notion. See the documentation.

List All Users

Returns all users in the workspace. See the documentation

List File Uploads

Use this action to list file uploads. See the documentation

Query Data Source

Query a data source with a specified filter. See the documentation

Retrieve Data Source Content

Get all content of a data source. See the documentation

Retrieve Data Source Schema

Get the property schema of a data source in Notion. See the documentation

Retrieve File Upload

Use this action to retrieve a file upload. See the documentation

Retrieve Page Content

Get page content as block objects or markdown. Blocks can be text, lists, media, a page, among others. See the documentation

Retrieve Page Metadata

Get details of a page. See the documentation

Retrieve Page Property Item

Get a Property Item object for a selected page and property. See the documentation

Retrieve User

Returns a user using the ID specified. See the documentation

Send File Upload

Send a file upload. See the documentation

Update Child Block

Updates a child block object. See the documentation

Update Data Source

Update a data source. See the documentation

Integration Features

3 documented Microsoft Power BI triggers
24 documented Notion actions
Configurable field mapping
Conditional workflow steps
Execution monitoring
A supported Notion to Microsoft Power BI direction

Capability Examples

Microsoft Power BI trigger → Notion action

Catalog example
Microsoft Power BIMicrosoft Power BI

Dataset Refresh Completed

NotionNotion

Append Block to Parent

Notion trigger → Microsoft Power BI action

Reverse direction
NotionNotion

New Comment Created

Microsoft Power BIMicrosoft Power BI

Add Rows to Dataset Table

How It Works

1

Connect Apps

Authenticate your Microsoft Power BI and Notion accounts

2

Choose a Trigger

Select a documented Microsoft Power BI event

3

Choose an Action

Select the documented Notion operation to run

Test and Review

Verify field mapping and provider responses before activation

Frequently Asked Questions

Integration Benefits

Trigger-driven Workflows

Start the supported direction from one of 3 documented Microsoft Power BI triggers.

Automated Actions

Run one of 24 documented Notion actions after the selected trigger fires.

Provider Authentication

Review the authentication requirements published by each provider before activating the workflow.

Guided Configuration

Select a documented trigger, choose a target action, and map the fields required by the workflow.

Field Mapping

Map the fields exposed by the selected trigger and action, then review the required provider inputs.

Execution Review

Test the workflow and review provider responses before relying on it in production.

Notion logoMicrosoft Power BI logo

Reverse Integration Available

Also connect Notion to Microsoft Power BI for bidirectional automation

View Integration
Microsoft Power BI logo

All Microsoft Power BI Integrations

Explore all available Microsoft Power BI connections

View All Integrations
Notion logo

All Notion Integrations

Explore all available Notion connections

View All Integrations

Ready to Connect Microsoft Power BI & Notion?

Build this supported workflow in Mazaal AI and test it with your own provider accounts.

Get Started Free