Power BI Integration [v26.3]
Note: This article serves as a customer guide for connecting Power BI to Bizview OData API via Azure AD.
Bizview supports native integration with Power BI through an OData API endpoint (api/V2/DvData) that follows the OData V4 protocol. Power BI Desktop and Web applications connect directly to Bizview Dataviews using the built-in OData Feed connector — no additional connector purchase or installation is required. On connection, Power BI automatically discovers available Dataviews and their column structures, and loads data with support for filtering, column selection, and server-driven pagination.
Authentication is handled through Azure Active Directory (Azure AD). Users authenticate using their organisational credentials — no Bizview-specific credentials are required after the initial setup.
Prerequisites
- An Azure AD (Microsoft Entra ID) tenant — every Microsoft 365 or Azure customer already has one.
- A Global Administrator (or Privileged Role Administrator or Cloud Application Administrator) in the customer’s Azure AD tenant — required once to grant admin consent to the Bizview application.
- Install Power BI (latest version).
- Obtain the Bizview OData API URL for the environment from the system administrator.
- Obtain the following values from insightsoftware:
- Bizview Application (client) ID
- Bizview Application ID URI
- Bizview scope name — dataview.read
- Bizview admin consent URL template
- A Bizview user account provisioned for each user who will connect.
- In the customer’s Bizview Azure AD app registration, navigate to Expose an API and confirm:
- The Application ID URI is set.
- The dataview.read scope is defined and enabled.
- The Microsoft Power BI first-party client IDs are added as authorized client applications and associated with the dataview.read scope.
Note: No information is shared with insightsoftware. No secrets, no tenant IDs.
Setting Up Azure AD Authentication
The following steps are a one-time setup performed once per tenant. Complete Steps 1 and 2 before any user can connect Power BI to Bizview. Step 3 is optional.
- Step 1 — Grant Admin Consent to the Bizview Application
- Step 2 — Register a Client Application in the Customer’s Tenant
- Step 3 — Restricting Access to Bizview Data (Optional)
Note: The setup steps documented here are based on the current implementation and may be updated before the Bizview 26.3 GA release.
Step 1 — Grant Admin Consent to the Bizview Application
The customer’s Global Administrator must grant consent to the Bizview application before any user in the tenant can connect.
-
Open the following URL in a browser, replacing the placeholders with the values provided by insightsoftware:
https://login.microsoftonline.com/organizations/adminconsent
?client_id=<BIZVIEW_CLIENT_ID>
&redirect_uri=https://<bizview-host>/api/auth/consent/callback
&state=<any-correlation-id>
- Sign in as the Azure AD Global Administrator.
-
Review the consent screen.
The screen displays the permission Read Bizview Dataviews.
-
Click Accept.
The browser redirects to Bizview’s /api/auth/consent/callback and then to a confirmation page.
Result: Once admin consent is granted, all users in the tenant with a valid Bizview account can authenticate to the Bizview OData API using their organisational credentials. No per-user configuration is required.
Step 2 — Register a Client Application in the Customer’s Tenant
This is the app that Power BI (or any client) will authenticate as.
- Navigate to Azure Portal > Microsoft Entra ID > App registrations and click New registration.
- Enter a name — for example, Power BI - Bizview Connector.
- Set Supported account types to Accounts in this organizational directory only.
-
Set the Redirect URI platform to Public client/native and enter the value https://login.microsoftonline.com/common/oauth2/nativeclient.
This is the redirect URI that Power BI Desktop uses.
- Click Register and record the Application (client) ID of this application.
-
Navigate to Authentication and set Allow public client flows to Yes.
Note: Power BI Desktop requires this setting.
-
Navigate to API permissions > Add a permission > APIs my organization uses:
- Search for the Bizview application by name.
- Select Delegated permissions > dataview.read > Add permissions.
- Click Grant admin consent for <tenant>.
Result: Users in this tenant can sign in through this client app and receive Bizview-scoped tokens.
Step 3 — Restricting Access to Bizview Data (Optional)
By default, all users in the tenant with a valid Bizview account can connect after admin consent is granted. To restrict access to specific users or groups:
- Navigate to Azure Portal > Enterprise applications.
- Search for and select Bizview OData API.
- Navigate to Users and groups and click Add user/group.
- Select the users or groups to assign and click Assign.
Note: Group assignment requires Azure AD Premium P1 or higher. Conditional Access policies can also be applied to the Bizview Service Principal to enforce MFA, device compliance, or IP restrictions.
Consuming API from Power BI
Once Azure AD setup is complete, Power BI Desktop and Web can call OData endpoints directly and handle the Azure AD sign-in flow automatically.
To connect Power BI Desktop or Web to Bizview:
- Open Power BI Desktop or Web application.
- Select Home > Get Data > OData feed.
-
Enter the Bizview OData V2 URL for the environment, for example:
https://<bizview-host>/api/V2/DvData
- Click OK. Power BI Desktop/Web prompts for authentication.
-
Select Organizational account and click Sign in.
Sign in with your Azure AD credentials.
Note: On first connection, Power BI Desktop/Web may display a consent prompt for the registered client application — accept it to proceed.
-
Click Connect.
Power BI Desktop/Web calls the Bizview metadata endpoint and populates the Navigator pane with all available Dataviews and their column structures.
-
Select the Dataviews to load and click Load or Transform Data.
Note: The Navigator preview may display only a partial sample of the data. Click Load to retrieve the full result set.
If a Dataview has more rows than one page, Power BI Desktop/Web automatically follows the @odata.nextLink until all rows are retrieved.
What Happens Behind the Scenes
- Power BI’s built-in Azure AD client requests a token for the Bizview resource.
- Azure AD returns a token with aud = api://<bizview-client-id> and scp = dataview.read.
- Power BI sends Authorization: Bearer <token> on every OData request.
- Bizview validates the token against Azure AD’s public JWKS (/common) and serves the data.
Verifying the Connection
- A sign-in prompt appears on first connect in Power BI Desktop/Web — this is expected.
- Data loads without error — the connection is successful.
-
If the connection fails, paste the token into https://jwt.ms and verify:
aud = api://<bizview-client-id>
scp contains dataview.read
iss = https://login.microsoftonline.com/<your-tid>/v2.0
- Power BI Desktop/Web first requests the service document at https://<bizview-host>/api/V2/DvData, which lists all available Dataviews as OData entity sets.
- Then it requests https://<bizview-host>/api/V2/DvData/$metadata to learn each Dataview’s column names and data types (Edm.String, Edm.Int32, Edm.Decimal, etc.).
- In the Navigator, select the specific Dataview (entity set) you want — this maps to a Bizview dataview_id.
OData Query Options
The Bizview OData V2 endpoint supports the following standard OData query options, which Power BI uses automatically in DirectQuery mode:
| Query Option | Description |
|---|---|
$select |
Restricts the columns returned to the specified list. |
$filter |
Filters rows based on the specified condition. Supported operators: eq, ne, gt, lt, ge, le, and, or, not, startswith, endswith, contains. |
$top |
Limits the result to the specified number of rows. |
$skip |
Skips the specified number of rows before returning results. |
$count |
Includes the total row count in the response. |
Pagination
For large Dataviews, the OData V2 endpoint uses server-driven pagination. Results are returned in pages of 1,000 rows. Each page response includes a @odata.nextLink URL that Power BI follows automatically until all rows are loaded. No user configuration is required.
Note: The final page does not include a @odata.nextLink. Power BI stops requesting further pages when this link is absent.
Clearing Cached Metadata
To refresh the Dataview schema after a column change, clear Power BI Desktop/Web cached OData metadata.
- Navigate to File > Options and settings > Data source settings.
- Select Global permissions.
- Select the Bizview OData URL and click Clear permissions.
Revoking Access and Disconnecting from Bizview
To fully revoke access at the tenant level:
- Navigate to Azure Portal > Enterprise applications.
- Search for and select Bizview OData API.
-
Navigate to Properties and click Delete.
The Service Principal and all associated consent are removed.
Users can also revoke their own consent by signing in at https://myapps.microsoft.com and removing the Bizview application.
Note: No action is required from insightsoftware to disconnect.
Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
Consent screen shows “unverified publisher” |
insightsoftware publisher domain not yet verified |
Contact insightsoftware support. It is safe to proceed if the source is trusted. |
AADSTS65001: consent required |
Admin consent step not completed |
The Global Administrator must complete Step 1 — Grant Admin Consent in Setting Up Azure AD Authentication. |
403 Forbidden from Bizview |
Token missing dataview.read scope |
Verify the API permission is granted and admin consent is applied in Step 2 — Register a Client Application in Setting Up Azure AD Authentication. |
401 Unauthorized |
Expired token, wrong audience, or cached credentials in Power BI |
Navigate to File > Options and settings > Data source settings > Global permissions, clear the Bizview permissions, and reconnect. |
AADSTS650057: Invalid resource |
Power BI client ID not authorized on the Bizview app’s Expose an API blade |
Contact insightsoftware support to add the Power BI client ID under Authorized client applications. |
No column name specified for column 1 |
Dataview SQL contains an unaliased scalar expression — for example, SELECT ‘B1’ |
Add an explicit column alias to every selected expression in the Dataview query. |
400 Bad Request with InvalidSelect |
A query step references a column that no longer exists in the Dataview |
Update the report to remove or rename the invalid column reference. |
Conditional Access blocks sign-in |
Customer Conditional Access policy targets the Bizview Service Principal |
The Azure AD administrator must adjust the Conditional Access policy. |
Navigator pane is empty |
Dataviews not enabled for OData access |
Contact the Bizview system administrator to enable the relevant Dataviews for OData. |