Salesforce Power BI integration: two connectors, two jobs
Unlike HubSpot, Salesforce has Microsoft-built connectors in Power BI. There are two, and they do different jobs:
- Salesforce Objects reads Salesforce tables (accounts, opportunities, leads, users, custom objects) and lets you build the model in Power BI.
- Salesforce Reports brings in the output of a report that already exists in Salesforce, as a rep would see it.
Both are generally available, work in Power BI and Excel and sign in with your Salesforce account, according to Microsoft's documentation for Salesforce Objects and Salesforce Reports. Both need the API Enabled permission on your user, and Salesforce trial accounts don't have API access.
The short rule: Salesforce Reports for small reports that are already well built in Salesforce; Salesforce Objects or a data warehouse for everything else. The next section explains why.
The Power BI Salesforce report 2,000-row limit, explained
Why the limit exists
The limit isn't Power BI's. The Salesforce Reports connector runs on Salesforce's Reports and Dashboards REST API, and the developer guide for that API (version 68.0, Winter '27, updated October 2026) states that it returns up to the first 2,000 report rows. Microsoft's connector page says the same: rows in Salesforce Reports are limited by Salesforce to 2,000.
It is a general limit of the API, not a setting, so changing the ApiVersion in your query won't lift it.
How to tell you've hit it
You load an opportunities report and the totals don't match Salesforce. Count the rows in Power Query: exactly 2,000 means you hit the limit and the rest never arrived. Don't wait for an error message; add a row count check and compare it with Salesforce.
Fix 1: switch to the Salesforce Objects connector
This is Microsoft's own recommendation: the Objects connector doesn't have the 2,000-row limit. The cost is rebuilding the report's logic in Power BI:
- Note the report type in Salesforce. It tells you which objects it reads, for example Opportunity with Account and User.
- Load those objects with Salesforce Objects, selecting only the columns the report uses.
- Turn the report filters (close date, stage, record type, owner) into Power Query filters or slicers.
- Turn groupings and summaries into DAX measures: total amount, deal count, win rate.
- Check totals against the original report for a closed period before anyone uses it.
Done once, it is sturdier than the report: the measures are reused across pages and can be joined to other sources.
Fix 2: split the report
Several reports in Salesforce, each filtered to stay under 2,000 rows (by quarter, region or record type), appended in Power Query. It works, but the day one slice passes 2,000 it is cut short and nobody notices. A stopgap at best, with the row count check above.
Fix 3: land Salesforce in a data warehouse
No row limit, history kept, Salesforce next to your other data. Details below.
When Salesforce Reports is still fine
For small, stable reports the team already trusts, such as key accounts. Just watch the row count.
We go through every workaround, with the objects and fields to load and how to check the totals, in the Salesforce Reports 2,000-row limit in Power BI.
Other Power BI Salesforce connector limitations
Power BI Salesforce DirectQuery: is it possible?
Not with the Salesforce connectors. Neither Salesforce Objects nor Salesforce Reports lists DirectQuery among its supported capabilities, so both import data and show it as it was at the last refresh: up to eight scheduled refreshes a day on shared capacity, according to Microsoft's data refresh documentation.
For something closer to real time, land Salesforce in a warehouse whose Power BI connector supports DirectQuery, such as BigQuery or Snowflake, and load from Salesforce often.
Salesforce objects and fields that cause trouble
With Salesforce Objects you get the tables, but the model is up to you. What takes the most time:
- Opportunity history. Opportunity holds today's state. To see how the pipeline moved you need OpportunityHistory, OpportunityFieldHistory or periodic snapshots.
- Multiple currencies. Each opportunity is in its own currency, and you decide which exchange rate converts it.
- Converted leads. Lead and opportunity are separate records. To know which campaign produced a deal you follow the lead conversion and campaign influence.
- Multi-select picklists. They arrive as text with semicolon-separated values and need splitting before you can filter.
- Owners and roles. For row-level security in Power BI, start from User and UserRole instead of maintaining access by hand.
The Salesforce Power BI dashboard most teams need
The pages that get used: the weekly pipeline review, the quarter's forecast against target, lead-to-customer conversion and attribution of opportunities to campaigns. See our Power BI sales dashboard examples and, for splitting credit between channels, marketing attribution models.
The sturdier route: Salesforce in a data warehouse before Power BI
Once volume grows or Salesforce meets other sources, the most stable setup is not to hang Power BI directly off Salesforce:
- Microsoft Fabric. Data Factory in Fabric has a Salesforce Objects connector for Dataflow Gen2, pipelines and copy jobs, with full load, append and upsert, according to the Fabric documentation. Data lands in OneLake and Power BI reads it from there. More in Microsoft Fabric consulting.
- BigQuery or Snowflake. A scheduled load, your own or through an ingestion tool, puts Salesforce tables next to GA4, ad platforms and your ERP, and Power BI can read them in DirectQuery.
- Data 360 (formerly Data Cloud). If you already pay for it in Salesforce, its zero copy feature shares data with Snowflake, Databricks, BigQuery or Redshift without duplicating it. Buying it only to feed Power BI rarely makes sense.
Opportunities, accounts and activity are then defined once for every tool. That is how we run business intelligence projects, inside a data strategy that decides what goes in and who maintains it. If you also use HubSpot for marketing, see HubSpot Power BI integration.
Is there a Salesforce Power BI alternative?
Yes, and it is worth saying. Salesforce has its own analytics: CRM Analytics, inside the platform, and Tableau, which Salesforce has owned since 2019. If your whole operation lives in Salesforce and you don't run on Microsoft, either can fit better than Power BI.
Power BI tends to win when the company already runs on Microsoft, when Salesforce meets ERP, GA4 or finance data, or when Power BI licences are already paid for. We compare the tools in Power BI vs Looker Studio vs Tableau, and if Tableau is the better fit, we also offer Tableau consulting.
Salesforce and Power BI: frequently asked questions
Why does Power BI only load 2,000 rows from Salesforce?
Because you are using the Salesforce Reports connector, and Salesforce's reports API returns at most the first 2,000 rows. The Salesforce Objects connector doesn't have that limit.
Does Power BI support DirectQuery with Salesforce?
No. Both Salesforce connectors import data. For DirectQuery you need to land the data in a warehouse that supports it.
Which Salesforce edition do I need?
One with API access. Enterprise and above include it, Professional needs it enabled, and trial accounts don't have it.
Can I reuse the reports we already have in Salesforce?
Small ones, yes, with Salesforce Reports. Large ones are better rebuilt in the Power BI model.
Do you work with companies outside Spain?
Yes. We are based in Madrid and work with teams across Europe, in English or Spanish.
Tell us how your Salesforce is set up
In a 30-minute call we look at what you get out of Salesforce today and what you want to see in Power BI, and tell you which route makes sense. If we can't help, we'll tell you that too.
Book the 30-minute call