AppsPricingBlogTry it
HubSpot logo
Microsoft Power BI logo

Connect HubSpot to Microsoft Power BI

Automate workflows and sync data between HubSpot and Microsoft Power BI with AI-powered automation

5-minute setup
Enterprise secure
No coding required

Why Connect HubSpot & Microsoft Power BI?

Intelligent Automation Workflows

Leverage 12 available triggers from HubSpot to execute 15 targeted actions in Microsoft Power BI automatically.

Eliminate Manual Data Entry

Replace time-consuming manual processes with intelligent automation that keeps HubSpot and Microsoft Power BI perfectly synchronized.

Real-time Business Intelligence

Create a unified data flow between HubSpot and Microsoft Power BI for instant insights and improved decision-making across your tech stack.

Available Triggers & Actions

HubSpot logo

HubSpot

Triggers (12)

Deleted Blog Posts

Emit new event for each deleted blog post.

polling
New Company Property Change

Emit new event when a specified property is provided or updated on a company. See the documentation

polling
New Contact Added to List

Emit new event when a contact is added to a HubSpot list. See the documentation

polling
New Contact Property Change

Emit new event when a specified property is provided or updated on a contact. See the documentation

polling
New Custom Object Property Change

Emit new event when a specified property is provided or updated on a custom object.

polling
New Deal In Stage

Emit new event for each new deal in a stage.

polling
New Deal Property Change

Emit new event when a specified property is provided or updated on a deal. See the documentation

polling
New Email Event

Emit new event for each new Hubspot email event.

polling
New Email Subscriptions Timeline

Emit new event when a new email timeline subscription is added for the portal.

polling
New Engagement

Emit new event for each new engagement (call, email, meeting, note, postal mail, or task) created. Per-activity docs: Calls Emails Meetings Notes Postal Mail Tasks See the documentation

polling
New Events

Emit new event for each new Hubspot event. Note: Only available for Marketing Hub Enterprise, Sales Hub Enterprise, Service Hub Enterprise, or CMS Hub Enterprise accounts

polling
New Form Submission

Emit new event for each new submission of a form.

polling

Actions (24)

Add Comment

Adds a comment to a thread. See the documentation

Add Contact to List

Adds a contact to a specific static list. See the documentation

Add Note to Contact

MCP and AI agents: **Prefer this action** when the user wants to **leave a note on a HubSpot contact** using a **contact ID** and note text. Exposes only hubspot, contactId, and noteBody (no engagement-type step, no reloadProps, no dynamic HubSpot schema fields). Do **not** use **Create Engagement** for this workflow. For every writable note property or non-contact associations, use **Create Note** instead. See the documentation

Archive Thread

Archives a thread (soft delete). The thread is hidden from active views but can be restored via the HubSpot UI or by listing archived threads. See the documentation

Batch Create Companies

Create a batch of companies in Hubspot. See the documentation

Batch Create or Update Contact

Create or update a batch of contacts by its ID or email. See the documentation

Batch Update Companies

Update a batch of companies in Hubspot. See the documentation

Batch Upsert Companies

Upsert a batch of companies in Hubspot. See the documentation

Clone Marketing Email

Clone a marketing email in HubSpot. See the documentation

Clone Site Page

Clone a site page in Hubspot. See the documentation

Create a New Workflow

Create a new workflow. See the documentation

Create Association

Create an association (link) between two CRM records. For example, associate a contact with a company, a deal with a contact, or a ticket with a company. Common association type IDs: contact→company (1), company→contact (2), deal→contact (3), contact→deal (4), deal→company (5), company→deal (6), ticket→contact (15), contact→ticket (16), ticket→company (26), company→ticket (25). See the documentation

Create Associations

Create associations between objects. See the documentation

Create Blog Post

Creates a new blog post in HubSpot. See the documentation

Create Communication

Create a WhatsApp, LinkedIn, or SMS message. See the documentation

Create Company

Create a company in Hubspot. See the documentation

Create Contact Workflow

Create a contact workflow in Hubspot. See the documentation

Create CRM Object

Create a new CRM record (contact, company, deal, ticket, etc.). Pass property values as a JSON object in the properties parameter. Use **Search Properties** to discover available fields for the object type, **Get Properties** to find valid enum values (e.g. lifecyclestage, dealstage), and **List Pipelines and Stages** to find valid pipeline/stage IDs for deals and tickets. Use **List Owners** to find valid hubspot_owner_id values. See the documentation

Create Custom Object

Create a new custom object in Hubspot. See the documentation

Create Deal

Create a deal in Hubspot. See the documentation

Create Engagement

Create a **task, meeting, email, call, or note** engagement with optional associations. Set **Engagement Type** and pass engagement fields in **Object Properties** (HubSpot property names, e.g. hs_note_body for notes). No reloadProps step and no **CONFIGURE_COMPONENT** requirement: association fields accept raw HubSpot IDs (use **Search CRM** or the Associations API to resolve associationType when needed). For **only** a note on a contact by ID, **Add Note to Contact** (hubspot-add-note-to-contact) is still simpler. See the documentation

Create Form

Create a form in HubSpot. See the documentation

Create Landing Page

Create a landing page in Hubspot. See the documentation

Create Lead

Create a lead in Hubspot. See the documentation

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

Integration Features

Real-time data synchronization
Bi-directional sync capabilities
Custom field mapping
Advanced filtering options
Error handling & retry logic
Activity monitoring & logs

Popular Workflows

When HubSpot trigger → Create/Update in Microsoft Power BI

Most Popular
HubSpotHubSpot

Deleted Blog Posts

Microsoft Power BIMicrosoft Power BI

Add Rows to Dataset Table

When Microsoft Power BI trigger → Update HubSpot

Bi-directional
Microsoft Power BIMicrosoft Power BI

Dataset Refresh Completed

HubSpotHubSpot

Add Comment

How It Works

1

Connect Apps

Authenticate your HubSpot and Microsoft Power BI accounts

2

Map Fields

Choose which data fields to sync between apps

3

Set Triggers

Define when and how data should be synchronized

Automate

Sit back and let AI handle the automation

Frequently Asked Questions

Integration Benefits

Real-time Data Sync

Automatic synchronization between HubSpot and Microsoft Power BI with 15 public triggers available for instant updates.

Automated Actions

Execute 39 public actions automatically across both platforms without manual intervention.

Enterprise Security

Industry-standard encryption, OAuth 2.0 authentication, and SOC 2 compliance for secure data transfer.

Quick Setup

Connect HubSpot and Microsoft Power BI in minutes with our guided setup wizard and pre-configured templates.

Custom Field Mapping

Map any field between HubSpot and Microsoft Power BI with intelligent suggestions and validation.

Error Handling

Automatic retry logic, detailed error logs, and smart notifications keep your integration running smoothly.

Microsoft Power BI logoHubSpot logo

Reverse Integration Available

Also connect Microsoft Power BI to HubSpot for bidirectional automation

View Integration
HubSpot logo

All HubSpot Integrations

Explore all available HubSpot connections

View All Integrations
Microsoft Power BI logo

All Microsoft Power BI Integrations

Explore all available Microsoft Power BI connections

View All Integrations

Ready to Connect HubSpot & Microsoft Power BI?

Join thousands of users automating their workflows with Mazaal AI