Unify Logo Footer.svg
Unify Integrations
Logo
Microsoft PowerBI

Microsoft PowerBI

Logo

3 mins READ

Power BI is a business analytics tool by Microsoft that enables users to visualize data and share insights across an organization. The UnifyApps Power BI connector uses the Power BI REST API to manage workspaces, datasets, tables and reports from workflows and agents.

This guide covers every authentication type available on the connection form and the actions supported, along with the Power BI scope each one needs.

Authentication

Before you begin,you should have the following information:

  • Connection name: a descriptive name such as MyAppPowerBIIntegration, so the connection is easy to identify later.

  • Authentication type: Select the type of authentication for connecting to your Outlook account:

    1. OAuth

    2. OAuth with Client Credentials Based Authentication

    3. Client Credentials

1. OAuth

Use this when you want to connect with your own Microsoft account and do not need to register an app.

  1. Enter a Connection name.

  2. Select OAuth as the Authentication type.

  3. Leave Tenant ID as common, or enter your tenant ID to restrict sign-in to one organization.

  4. Optionally enter a Workspace ID and Dataset ID to use as defaults.

  5. Click Authorize. You are redirected to the Microsoft sign-in page.

  6. Sign in with the Microsoft account that has access to the Power BI workspaces you need.

  7. Review the permissions requested on the consent screen and click Accept.

  8. You are redirected back to UnifyApps with a confirmation that the account is connected.

2. OAuth with client credentials

Use this when your organization wants the connection to use its own Azure app registration while actions still run on behalf of a signed-in user.

Step 1: App registration in Azure

  1. Log in to the Azure portal, search for App registrations and click New registration.

  2. Enter a name and choose the supported account type as Multitenant or Single tenant

  3. Under Redirect URI, choose platform Web and paste the Callback URL shown at the top of the connection form (it is copyable and differs per environment).

  4. Click Register

  5. On the Overview tab, copy the Application client ID and the Directory tenant ID .

  6. Go to API permissions → Add a permission → Power BI Service → Delegated permissions and add Workspace.Read.All and Dataset.Read.All. These are the basic scopes for creating a connection.

  7. Add offline_access so the connection can refresh its token, and click Grant admin consent if your tenant requires it.

  8. Go to Certificates & secrets → New client secret, add a description and expiry, and click Add. Copy the secret Value immediately and store it securely. It is not shown again.

image2.png
image2.png
image1.png
image1.png

Step 2: Connection setup in UnifyApps

  1. Open Connections → New Connection → Power BI and enter a Connection name.

  2. Select OAuth with client credentials as the Authentication type.

  3. Enter the Client ID, Client secret and Tenant ID copied from Azure.

  4. Optionally enter a Workspace ID and Dataset ID to use as defaults.

  5. Click Authorize, sign in with Microsoft and accept the consent screen.

  6. Confirm the success message after the redirect back to UnifyApps.

3. Client credentials

Use this for app-only access that does not depend on a signed-in user. The app acts as a service principal.

Step 1: Register the app in Azure

  1. Log in to the Azure portal, search for App registrations and click New registration.

  2. Enter a name and supported account type, and click Register. No redirect URI is needed for this flow.

  3. From Overview, copy the Application (client) ID and Directory (tenant) ID.

  4. Go to Certificates & secrets → New client secret, click Add, and copy the secret Value.

Step 2: Allow the service principal and give it workspace access

  1. A Power BI/Fabric administrator opens the Admin portal → Tenant settings → Developer settings.

  2. Enable Service principals can use Fabric APIs (previously named Allow service principals to use Power BI APIs), and limit it to a security group that contains your app.

  3. If you plan to use the Execute query action, also enable Dataset Execute Queries REST API under Integration settings.

  4. Open the Power BI workspace, go to Manage access, and click Add people or groups.

  5. Search for the app registration (or the security group that contains it) and give it a role such as Member or Admin.

  6. Repeat for every workspace the connection must reach.

Note: access in this flow is controlled by the tenant settings and workspace roles above, not by delegated API permissions. Microsoft recommends not adding Power BI API permissions to an app registration used as a service principal.

Step 3: Create the connection in UnifyApps

  1. Select Client credentials as the Authentication type.

  2. Enter the Client ID, Client secret and Tenant ID. Use your actual tenant ID here; the default common is meant for the sign-in based flows.

  3. Optionally enter a Workspace ID and Dataset ID.

  4. Click Test Connection to validate the credentials, then click Create.

Actions

Actions

Description

Scopes Required

Add rows

Adds rows to a table in Power BI.

Dataset.ReadWrite.All

Add user to a workspace

Adds a user to a specific workspace in Power BI.

Workspace.ReadWrite.All

Create dataset

Creates a new dataset in Power BI.

Dataset.ReadWrite.All

Create workspace

Creates a new workspace in Power BI.

Workspace.ReadWrite.All

Download report

Downloads a report from Power BI.

Report.ReadWrite.All, or Report.Read.All and Dataset.Read.All

Execute query

Executes a DAX query against a dataset in Power BI.

Dataset.Read.All (or Dataset.ReadWrite.All)

Get dataset details

Gets dataset details from Power BI.

Dataset.Read.All

Get metadata of a table

Gets metadata of a table in Power BI.

Dataset.Read.All

Get report details

Gets report details from Power BI.

Report.Read.All

Get rows

Gets rows of a table in Power BI.

Dataset.Read.All

List datasets

Lists datasets from Power BI.

Dataset.Read.All

List tables

Lists tables in a Power BI dataset.

Dataset.Read.All

Search report

Searches for a report.

Report.Read.All

Update report

Updates a report in Power BI.

Report.ReadWrite.All

Update workspace user

Updates a workspace user in Power BI.

Workspace.ReadWrite.All