HubSpot to Power BI in 2026

HubSpot to Power BI in 2026: keep Deals and Activities at the right grain

Prepare authorised HubSpot companies, contacts, deals and supported activities as separate local reporting grains, then build the Power BI model without multiplying pipeline values through activity joins.

Reviewed and updated 5 September 2026

Language: English · Español · Français

How do I connect HubSpot to Power BI without hand-coding the API?

Authorise the HubSpot portal in Datplan, run the supported source pull, export the prepared Companies, Contacts, Deals and supported Activity tables to a stable folder, then connect Power BI to those files. Keep pipeline value measures on the Deals grain and activity measures on the Activity grain.

Choose the route that fits the job

HubSpot-to-Power-BI methods solve different operational problems

Current competing approaches commonly use a hosted warehouse or live service. Datplan is intentionally a local file-based alternative.

RouteUseful whenWhat you take responsibility for
Manual exportThe report is occasional and the dataset is smallRepeat exports, cleanup and consistency between reporting periods.
Hosted connector/warehouseMany users need a continuously available shared data layerVendor service dependency, hosted processing and subscription design.
Custom HubSpot APIAn engineering team needs bespoke objects and transformationsOAuth, pagination, associations, scopes, schema changes and monitoring.
Datplan local filesA Windows reporting workflow needs repeatable local preparation and stable Power BI inputsThe Power BI semantic model and any later Power BI Service access route.

The error to avoid

One £10,000 deal with three activities is still one £10,000 deal

A flat join can repeat a deal amount once for every related activity. The data can be technically joined and still make the pipeline total wrong.

Unsafe flat table

DealActivityDeal amount
Deal ACall£10,000
Deal AMeeting£10,000
Deal ACall£10,000

Naive SUM: £30,000.

A visible refresh chain

Separate HubSpot extraction from Power BI refresh

  1. Authorise the intended HubSpot portalUse the provider consent flow and only request data your account and Datplan source configuration can access.
  2. Run and review the supported pullCheck the source result rather than treating a missing or unauthorised object as zero activity.
  3. Choose the business grainCompanies, Contacts, Deals and Activities answer different questions.
  4. Export stable filesKeep the reporting path and names consistent for repeat Power BI refreshes.
  5. Refresh Power BI separatelyAny Power BI Service refresh remains a Microsoft configuration outside the HubSpot extraction step.
  6. Check the model for row multiplicationCompare deal counts and total pipeline value before and after relationships are introduced.

Deals

Use the Deals grain for pipeline amounts, stages and deal-level counts. Do not turn CRM deal amount into accounting revenue without a defined business rule.

Activities

Use supported activity facts for work volume or duration. Activity availability depends on the authorised HubSpot scope and supported Datplan source configuration.

Companies and Contacts

Use entity tables for descriptive context and grouping. Many-to-many associations need deliberate modelling rather than an unrestricted flat join.

What Datplan helps remove

  • Repeated supported HubSpot exports
  • Hand-coded pagination for Datplan-supported pulls
  • Unclear mixing of deal and activity grains
  • Changing file names between reporting periods

What remains outside this page's promise

  • A live DirectQuery connector
  • A Datplan-hosted HubSpot warehouse
  • A finished Power BI template
  • Unsupported HubSpot objects or scopes
  • Automatic joining of CRM activity to accounting revenue

Associations and permissions

Not every HubSpot relationship should become a Power BI join

CRM systems contain legitimate one-to-many and many-to-many relationships. A contact can relate to more than one company; a deal can have several activities; ownership and pipeline context can change. Model only the relationships needed by the reporting question and test row counts after each one.

Object availability also depends on the authorised HubSpot account, scopes and the supported Datplan source configuration. If a source request is unauthorised, that is a permission or coverage issue to resolve—not evidence that the business had zero activity.

Use HubSpot for CRM questions; do not silently turn CRM fields into finance measures

Pipeline value, closed-won amount and sales activity are useful CRM measures, but they are not automatically recognised accounting revenue. Joining HubSpot to Xero or QuickBooks can be valuable later, but the matching key, timing rule and revenue definition must be explicit and independently validated.

See Datplan with real reporting data—without connecting a live account

The Windows app is free to download and includes Datplan Demo data, so you can test sync, dashboards, reporting grains and exports first.