Forum Discussion
Optimizing Salesforce Data Integration with Power BI: Best Practices and Recommendations
Hi all,
I've introduced Power BI to the executives at my company, and they're very happy with it so far. They want to expand Power BI's adoption for our reporting needs. I'm looking to identify the best practices within a Salesforce/Power BI ecosystem.
My current method:
- Use the built-in connector to query Salesforce Objects to get data
- Build my model in Power BI Desktop
- Build my report on top of the model
- Publish my report and model to the service using a Pro license
- Set up automatic refreshes
However, I'm wondering if there's a better approach. Is it possible to pull data directly into the Power BI Service from Salesforce, have that data automatically refresh throughout the day, and then use that repository for creating models and reports?
What are some best practices for the Power BI/Salesforce ecosystem? My company is open to switching to Premium Per User licenses if it improves the process.
Thanks for your insights!
Neither Salesforce Objects nor Salesforce Reports connector offer real time (Direct Query) connectivity. Both are strictly import mode. You cannot expect Power BI to do real time Salesforce reporting. If you need real time reports, use Salesforce Reports, in Salesforce.
Remember that the Salesforce Objects connector officially does not support query folding. This can be a problem if your objects have many millions of members. (Inofficially some simple transforms are actually converted into custom SOQL, even though the "View Native Query" option says otherwise. However, you cannot submit your own custom SOQL, and child queries are not possible.)
There is a third option - export SFDC Reports to CSV, store that CSV on a Sharepoint, and then ingest in Power BI. This is suitable for large amounts of data from complex report types, where real time is not a requirement.
4 Replies
- lbendlinSuper User
Neither Salesforce Objects nor Salesforce Reports connector offer real time (Direct Query) connectivity. Both are strictly import mode. You cannot expect Power BI to do real time Salesforce reporting. If you need real time reports, use Salesforce Reports, in Salesforce.
Remember that the Salesforce Objects connector officially does not support query folding. This can be a problem if your objects have many millions of members. (Inofficially some simple transforms are actually converted into custom SOQL, even though the "View Native Query" option says otherwise. However, you cannot submit your own custom SOQL, and child queries are not possible.)
There is a third option - export SFDC Reports to CSV, store that CSV on a Sharepoint, and then ingest in Power BI. This is suitable for large amounts of data from complex report types, where real time is not a requirement.
- KonradZawelHelper I
Hi Lightsong90,
For improved Salesforce/Power BI integration, consider options like Skyvia or other ETL tools to sync Salesforce data to a Power BI-supported database (e.g., Azure SQL). This allows centralized, auto-refreshing data repositories. Premium Per User unlocks higher refresh rates and supports larger datasets.
You can read more about best practices in this article.
- metricaPost Prodigy
Hi Lightsong90,
Just adding another option to the mix.
There's an app on Salesforce AppExchange: Power BI Connector for Salesforce - that's purpose-built for this use case:
🔗 AppExchange listing: https://appexchange.salesforce.com/appxListingDetail?listingId=31526f0e-abd8-4cb5-bd1a-3bd56b5c0577
Why it tends to fit "best practices" setups:
- Pulls Salesforce Reports as-is (no 2,000-row API cap that the native connector inherits)
- Works with custom fields, custom objects, and joined reports without rebuilding from raw objects
- Connects directly into Power BI - no intermediate Azure SQL / data warehouse needed
- Supports scheduled refresh in the Service out of the box, so executives get fresh data without you babysitting it
- 30-day free trial, no credit card needed
- Setup docs: https://metricasoftware.com/docs/salesforce/
- Support if you hit a snag: https://metricasoftware.com/docs/salesforce/contact-support/
Happy to set up a quick demo if it's useful, we can walk through how it scales for company-wide reporting and answer questions on PPU vs Pro for refresh frequency. Just reach out via the support link.
Cheers,
Metrica team
- babybotsNew Member
Your current approach is perfectly reasonable for a proof of concept, but if your executives are expanding Power BI adoption, I would think about the architecture in terms of data products rather than individual reports.
A few recommendations:
1. Separate Data Acquisition from Report Development
Instead of having every report connect directly to Salesforce, create a centralized semantic layer:
Salesforce → Dataflow Gen2 / Fabric Data Pipeline
Store curated data in a Lakehouse, Warehouse, or centralized dataset
Build reports from the curated model
Benefits:
Consistent business definitions
Reduced Salesforce API consumption
Faster report development
Easier governance and security
2. Avoid Multiple Independent Salesforce Imports
As Power BI adoption grows, one of the biggest challenges becomes report sprawl.
If every team builds its own Salesforce connection:
Refresh schedules become difficult to manage
API limits can become a concern
Metrics begin to diverge between reports
A shared semantic model allows multiple reports to consume the same trusted data source.
3. Evaluate Premium/Fabric Based on Scale
If you're primarily building executive dashboards with moderate refresh requirements, Pro licensing may be sufficient initially.
However, Fabric becomes attractive when you need:
Centralized data engineering
Larger datasets
More frequent refreshes
Incremental refresh
Lakehouse/Warehouse storage
Enterprise-scale governance
I would avoid upgrading solely for Salesforce connectivity and instead evaluate whether your broader analytics roadmap justifies the investment.
4. Consider Refresh Requirements Carefully
A common question is whether Salesforce data needs to be "real-time."
In many executive reporting scenarios:
Daily refresh is sufficient
Multiple refreshes per day are often sufficient
True real-time requirements are less common than expected
Understanding the actual business need can significantly simplify the architecture.
5. Design for Reuse
If leadership plans to expand Power BI usage, I would invest early in:
Standard dimensions (Accounts, Opportunities, Users, Territories)
Shared measures and KPIs
Certified semantic models
Consistent security model
This creates a foundation that future reports can build on rather than recreating logic repeatedly.
The key question I'd ask is: How many reports and users do you expect six to twelve months from now? The answer often determines whether a simple Salesforce connector approach is sufficient or whether it's time to build a centralized analytics platform.
🚀 Automate. Optimize. Innovate. 🚀Helping businesses streamline workflows and maximize efficiency with Microsoft Power Platform. Let's transform your processes and unlock new possibilities!
Explore BabyBots.ai