Step by Step Guide to Integrating Salesforce with Power BI

Salesforce holds some of the most useful data in an organisation, but it often stays locked inside sales reports, pipeline views, campaign lists, and service dashboards. Power BI can turn that same data into clearer trends, richer analysis, and shareable reports that teams can use every day.
The good news is that connecting the two tools is not as complex as it may seem. Power BI includes built-in Salesforce connectors, so most teams can create their first report without custom code.
This guide walks through the full process, from checking prerequisites to publishing a working dashboard. It also covers common issues and practical examples for visualising Salesforce data in Power BI.

Overview of Salesforce and Power BI benefits
Salesforce is widely used to manage customer relationships, sales pipelines, support cases, marketing activity, and account information. It is strong at capturing the details of customer interactions and helping teams work through day-to-day tasks.
Power BI is a reporting and analytics platform from Microsoft. It helps people connect to multiple data sources, clean data, build reports, and share dashboards. When used with Salesforce, it can turn CRM data into visual reports that are easier to explore and compare.
A good Salesforce and Power BI integration can help answer questions such as:
Which sales opportunities are most likely to close this quarter?
How is the pipeline changing by region, owner, or product?
Which campaigns are creating qualified leads?
Where are support cases building up?
Which accounts need attention?
How do Salesforce numbers compare with finance, operations, or product data?
Salesforce already includes reporting tools, and for many teams those reports are useful. Power BI adds value when you need more flexible visuals, data modelling, cross-source reporting, or wider sharing across the business.
For example, a sales manager may want to compare Salesforce opportunity data with targets stored in Excel or revenue data from a finance system. Power BI can combine those sources in one model, then display the results in a dashboard that updates on a schedule.
The main benefits include:
Better visibility across teams
Power BI reports can bring sales, service, marketing, and finance data into one view. This helps reduce the need for manual exports and separate spreadsheets.
More flexible analysis
Power BI lets you build relationships between tables, create calculated measures, and filter reports in many ways. This is useful when standard Salesforce reports do not quite answer the question.
Reusable dashboards
Once a report is built and published, users can return to the same dashboard rather than asking for a new spreadsheet each week.
Cleaner reporting workflows
Teams can reduce manual copy-and-paste work, especially where Salesforce exports are being used to create recurring reports.
Stronger data storytelling
Charts, slicers, drill-through pages, and trend visuals make it easier to explain what is happening in the pipeline, not just list records.
Prerequisites for integration
Before opening Power BI, check a few basics. Most setup issues come from missing permissions, unclear reporting needs, or choosing the wrong connector.
A Salesforce account with the right access
The Salesforce user account used for the connection needs access to the records and fields you want to report on. Power BI does not bypass Salesforce permissions. If a user cannot see a field or object in Salesforce, it may not appear in Power BI either.
Check that the account has:
Access to the required Salesforce objects, such as `Account`, `Contact`, `Lead`, `Opportunity`, `Case`, or custom objects
Field-level access to the columns needed in reports
API access, if required by your Salesforce edition and setup
Permission to access the Salesforce reports you want to connect to, if using the reports connector
Some Salesforce editions include API access by default, while others may require an add-on or specific configuration. If the connector fails at sign-in or returns limited data, ask a Salesforce administrator to confirm the edition, profile, permission sets, and API settings.
Power BI Desktop installed
Power BI Desktop is the best place to build the report. It is free to install and is used for connecting to data, transforming tables, creating relationships, and designing visuals.
You will also need access to the Power BI service if you want to publish, share, or schedule refreshes.
A Power BI licence for sharing and refresh
To build locally, Power BI Desktop is usually enough. To publish reports to a workspace, share dashboards, or schedule refreshes, you need the right Power BI licence and workspace access.
In many organisations, this will mean Power BI Pro or access through a Premium capacity. Licensing can vary, so confirm your organisation’s setup before planning a wider rollout.
A clear reporting goal
Do not start by importing every Salesforce table. Salesforce can contain many objects, relationships, and historical fields. Pulling too much data makes the model slow and harder to maintain.
Start with a specific question, such as:
Show open pipeline by stage, close date, and owner
Track lead conversion by source and month
Monitor case volume by priority and status
Compare won revenue against sales targets
Show account health using opportunities, cases, and activity data
Once the first use case works, add more data carefully.
An understanding of Salesforce objects and reports
Power BI offers two common ways to connect to Salesforce:
Connector | Best for | Main point to know |
`Salesforce Objects` | Building a data model from Salesforce tables | Gives access to objects such as accounts, opportunities, leads, cases, and custom objects |
`Salesforce Reports` | Importing existing Salesforce report results | Useful for quick starts, but may inherit report limits and structure |
For most long-term Power BI models, `Salesforce Objects` is often the better choice. It gives more control over relationships, measures, and transformations. `Salesforce Reports` can be useful when the Salesforce report already contains the exact dataset you need.

Detailed steps for connecting Salesforce to Power BI
The process below uses Power BI Desktop first, then moves to the Power BI service for publishing and refresh.
Step 1. Confirm your Salesforce environment
Before connecting, confirm whether your data is in a production Salesforce environment or a sandbox.
In Power BI, you may be asked to choose between:
Production
Custom
Use production for your live Salesforce org. Use custom when connecting to a sandbox or a custom Salesforce domain.
If your organisation uses a custom login URL, such as a My Domain address, keep that URL ready. It may look similar to:
`https://yourcompany.my.salesforce.com`
For a sandbox, it may look different. Ask your Salesforce administrator if you are unsure.
Step 2. Open Power BI Desktop and choose the Salesforce connector
Open Power BI Desktop.
Go to:
`Home` > `Get data` > `More`
In the connector list, search for `Salesforce`.
You should see options such as:
`Salesforce Objects`
`Salesforce Reports`
Choose the connector that matches your use case.
Use `Salesforce Objects` when you want to build a model from Salesforce tables. This is the most flexible option for dashboards that need multiple related entities.
Use `Salesforce Reports` when you want to import the output of an existing Salesforce report, especially for a quick proof of concept.
Select your connector, then choose `Connect`.
Step 3. Choose the Salesforce URL or environment
Power BI will ask for the Salesforce environment.
Pick `Production` if you are connecting to the live Salesforce org.
Choose `Custom` if your organisation uses a custom domain or if you are connecting to a sandbox. Enter the Salesforce URL when prompted.
Make sure the URL is correct. A small error here can lead to sign-in loops or empty results.
Step 4. Sign in with Salesforce
Power BI will open a Salesforce sign-in window. Sign in using an account that has access to the data.
If your organisation uses single sign-on or multi-factor authentication, follow the normal Salesforce login process.
After successful authentication, Power BI stores the connection credentials for that file. You can manage them later in:
`File` > `Options and settings` > `Data source settings`
If sign-in fails, do not keep trying different passwords. Check whether the account has API access, whether SSO is required, and whether the correct environment was selected.
Step 5. Select the Salesforce data to import
After authentication, Power BI shows the Navigator window.
If you selected `Salesforce Objects`, you will see a list of objects. Common choices include:
`Account`
`Contact`
`Lead`
`Opportunity`
`OpportunityLineItem`
`User`
`Case`
`Campaign`
`CampaignMember`
Custom objects, usually ending in `__c`
If you selected `Salesforce Reports`, you will see accessible Salesforce reports.
Tick the tables or reports needed for your first dashboard. Avoid selecting too many at once.
For a basic sales pipeline report, you might start with:
`Opportunity`
`Account`
`User`
For lead reporting, you might start with:
`Lead`
`Campaign`
`CampaignMember`
`User`
For service reporting, you might start with:
`Case`
`Account`
`User`
Once selected, choose either `Load` or `Transform Data`.
Step 6. Transform the data before loading
Choose `Transform Data` if the dataset needs cleaning, filtering, renamed columns, or type changes. This opens Power Query Editor.
Power Query is where you prepare Salesforce data before it becomes part of the report model.
Useful transformations include:
Removing columns you do not need
Filtering out deleted, test, or old records
Renaming technical field names into clearer report names
Changing data types for dates, numbers, and currency
Splitting or combining columns where needed
Keeping only active users or current records
Removing duplicate rows if the source structure creates them
Salesforce field names can be technical. For example, a custom field may appear as `Annual_Contract_Value__c`. In Power BI, you might rename it to `Annual Contract Value`.
Be careful when deleting fields. If a field may be needed for relationships, filters, or calculations, keep it until the model is tested.
Step 7. Build relationships between tables
After loading the data, go to the `Model` view in Power BI Desktop.
Power BI may detect relationships automatically, but check them. Salesforce relationships often use ID fields.
For example:
`Opportunity.AccountId` connects to `Account.Id`
`Opportunity.OwnerId` connects to `User.Id`
`Case.AccountId` connects to `Account.Id`
`CampaignMember.CampaignId` connects to `Campaign.Id`
`CampaignMember.LeadId` connects to `Lead.Id`
Use one-to-many relationships where appropriate. In many cases, one account has many opportunities, and one user owns many opportunities.
Keep the model simple. A clear star-style model is often easier to report from than a web of many tables connected in several directions.
Step 8. Create useful measures
Measures help turn raw Salesforce records into business metrics. In Power BI, measures are usually written in DAX.
Here are some simple examples.
Open pipeline value:
```DAX
Open Pipeline =
CALCULATE(
SUM(Opportunity[Amount]),
Opportunity[IsClosed] = FALSE()
)
```
Won revenue:
```DAX
Won Revenue =
CALCULATE(
SUM(Opportunity[Amount]),
Opportunity[IsWon] = TRUE()
)
```
Opportunity count:
```DAX
Opportunity Count =
COUNTROWS(Opportunity)
```
Win rate:
```DAX
Win Rate =
DIVIDE(
CALCULATE(COUNTROWS(Opportunity), Opportunity[IsWon] = TRUE()),
CALCULATE(COUNTROWS(Opportunity), Opportunity[IsClosed] = TRUE())
)
```
These examples assume the Salesforce fields are available in your imported data. Field names can vary, especially if your organisation uses custom fields.
Step 9. Design the report pages
Once the model is ready, start building report pages.
A good first report often includes:
A top row of key numbers
A trend chart
A breakdown by owner, stage, region, or product
Filters for date, account type, segment, or team
A table for detail records
For a sales pipeline dashboard, useful visuals include:
Card showing total open pipeline
Bar chart showing pipeline by stage
Line chart showing created opportunities over time
Matrix showing owner by stage
Table listing large open opportunities
Slicer for close date, source, region, or owner
Use clear names. A label such as `Open Pipeline` is easier to understand than `Sum of Amount`.
Step 10. Publish the report to Power BI service
When the report is ready, save the Power BI file.
Then select:
`Home` > `Publish`
Choose the workspace where the report should live.
After publishing, open the report in the Power BI service. Check that the visuals still load and that users with access can view the report.
If sensitive Salesforce data is included, review sharing carefully. Power BI permissions and Salesforce permissions are separate once the data is imported into the dataset. Only share the report with people who should see the information.
Step 11. Configure scheduled refresh
A dashboard is only useful if the data stays current.
In the Power BI service, go to the dataset settings for the published report. Check the credentials under the data source settings and sign in again if needed.
Then configure scheduled refresh based on how often the report needs updates.
Some reports only need a daily refresh. Others may need several refreshes per day. Your refresh options may depend on your Power BI licence, workspace type, and Salesforce API limits.
Keep refresh frequency sensible. More frequent refreshes can place extra load on APIs and may not add much value if the business process itself changes slowly.
Step 12. Test the full report workflow
Before sharing widely, test the report from start to finish.
Check:
Do the totals match Salesforce?
Are closed, won, lost, deleted, or archived records handled correctly?
Are date filters using the right field?
Are currencies showing as expected?
Are custom fields loading correctly?
Can the dataset refresh in the Power BI service?
Can intended users access the content?
Are sensitive fields hidden or removed?
This testing step prevents confusion later. Small mismatches between Salesforce and Power BI can reduce trust in the report, even when the connection itself works.

Tips for troubleshooting common issues
Most Salesforce to Power BI issues fall into a few categories. Use the checks below to narrow down the cause.
The Salesforce connector does not sign in
If the login window fails or keeps looping, check the environment first. A production login will not work correctly if you need a sandbox or custom domain connection.
Then check:
The Salesforce user account is active
The password and authentication method are correct
Multi-factor authentication is completed
SSO requirements are being followed
API access is available for the user
The connector is not using old cached credentials
In Power BI Desktop, clear stored credentials through:
`File` > `Options and settings` > `Data source settings`
Then sign in again.
Objects or fields are missing
If a Salesforce object or field does not appear, it is usually a permissions issue.
Check:
Object permissions
Field-level security
Record visibility
Permission sets
Profile settings
Whether the field exists in the selected Salesforce environment
Custom fields should usually appear with names ending in `__c`. Custom objects often end in `__c` as well.
If a field is visible in Salesforce but not Power BI, confirm that the connecting user can access it through the API, not only through the Salesforce page layout.
The data does not match Salesforce reports
Mismatched totals are common when filters differ.
Check whether your Power BI report and Salesforce report use the same:
Date field
Date range
Record owner filter
Opportunity status
Currency setting
Record type
Business unit or territory filter
Deleted or inactive records
Fiscal year setting
For example, a Salesforce report might group pipeline by `Close Date`, while Power BI uses `Created Date`. Both numbers can be correct, but they answer different questions.
If Salesforce uses multiple currencies, check how currency conversion is handled. Decide whether Power BI should show record currency, corporate currency, or converted values.
Refresh fails in the Power BI service
A report can work in Power BI Desktop but fail after publishing. This often happens because credentials need to be set again in the Power BI service.
Check:
Dataset credentials are configured
The Salesforce account still has access
The password, SSO session, or authentication token has not expired
Salesforce API limits have not been reached
The dataset does not exceed refresh limits for the workspace
Query changes have not broken a field or object reference
If a field is renamed or deleted in Salesforce, Power BI refresh can fail because the query still expects that field. Open Power Query Editor, find the broken step, and update the query.
Reports are slow
Slow reports can have several causes. Start by reducing the amount of data imported.
Good fixes include:
Remove unused columns
Filter old records if they are not needed
Avoid importing large objects without a clear purpose
Use measures instead of calculated columns where suitable
Hide technical ID fields that users do not need
Keep relationships simple
Avoid visuals with too many categories
If the model grows large, consider whether some transformations should happen before the data reaches Power BI, such as in a data warehouse or dataflow.
Salesforce report connector results are limited
The `Salesforce Reports` connector can be useful, but it is not always the best fit for large or complex datasets. It may inherit limits from Salesforce reporting APIs or from the structure of the source report.
If you need full control, connect to `Salesforce Objects` instead and rebuild the logic in Power BI. This usually gives more flexibility for relationships, calculations, and refresh behaviour.
Examples of how to visualise Salesforce data in Power BI
The best Salesforce dashboards focus on decisions. A pretty dashboard that does not guide action will be ignored. Start with the question, then choose the visual.
Sales pipeline dashboard
A sales pipeline dashboard helps leaders see whether there is enough open opportunity value to meet targets.
Useful visuals include:
Visual | Salesforce data | What it shows |
Card | `Opportunity[Amount]` | Total open pipeline |
Stacked bar chart | `StageName`, `Amount` | Pipeline by sales stage |
Line chart | `CloseDate`, `Amount` | Pipeline due to close over time |
Matrix | `OwnerId`, `StageName`, `Amount` | Pipeline by owner and stage |
Table | Opportunity fields | Large deals that need attention |
Good filters include close date, owner, region, product, account segment, and opportunity type.
This is often the first dashboard teams build because the data is familiar and the value is easy to see.
Win and loss analysis
A win and loss report helps teams understand deal outcomes.
Useful metrics include:
Won revenue
Lost revenue
Win rate
Average deal size
Sales cycle length
Loss reasons
Competitor fields, if captured
A clustered column chart can compare win rate by lead source, industry, or sales team. A scatter chart can compare deal size and sales cycle length to reveal patterns.
If the data is incomplete, keep the dashboard simple. For example, loss reason analysis only works if sales teams fill in loss reasons consistently.
Lead conversion dashboard
Lead conversion reporting is useful for marketing and sales handover.
Useful visuals include:
Funnel chart from new leads to converted leads
Column chart showing leads by source
Line chart showing new leads by week or month
Bar chart showing conversion rate by campaign
Table showing high-priority unconverted leads
Possible source tables include `Lead`, `Campaign`, `CampaignMember`, and `User`.
For clearer reporting, define the conversion logic carefully. In Salesforce, the standard `IsConverted` field is useful, but some organisations also use custom lifecycle stages.
Account health report
An account health report brings together account, opportunity, case, and activity data.
Useful indicators include:
Open opportunities
Recent won revenue
Open cases
High-priority cases
Last activity date
Renewal date
Account owner
Customer tier or segment
A good layout might include one page per account segment and a drill-through page for account detail.
Power BI drill-through is useful here. A user can right-click an account and open a detail page with related opportunities, cases, and key contacts.
Service performance dashboard
For service teams, Salesforce case data can show workload, response patterns, and backlog.
Useful visuals include:
Visual | Salesforce data | What it shows |
Card | `Case` count | Total open cases |
Bar chart | `Priority`, case count | Case volume by priority |
Line chart | `CreatedDate`, case count | Case trends over time |
Matrix | `OwnerId`, `Status` | Workload by owner and status |
Table | Case fields | Cases that need follow-up |
Filters might include priority, status, account, product, case origin, and created date.
If your Salesforce setup includes service-level fields, you can also report on response times and resolution performance. Keep definitions consistent with the way Salesforce calculates those fields.
Forecast and target dashboard
Many teams store targets outside Salesforce, often in Excel, SharePoint, or a finance system. Power BI can connect to those sources and compare them with opportunity data.
A simple forecast dashboard can show:
Won revenue
Open weighted pipeline
Target
Gap to target
Forecast by month or quarter
Performance by owner or team
This is where Power BI becomes especially useful. It can combine Salesforce data with non-Salesforce data in one model.
For weighted pipeline, you might use probability from Salesforce:
```DAX
Weighted Pipeline =
SUMX(
Opportunity,
Opportunity[Amount] * Opportunity[Probability] / 100
)
```
Only use this metric if your sales process maintains probability values consistently. If probability is not reliable, use stage-based categories or a custom forecast field instead.

Final takeaway
Integrating Salesforce with Power BI is a practical way to turn CRM data into clearer dashboards and better recurring reports. Start small, choose the right connector, bring in only the data you need, and test the numbers against Salesforce before sharing.
For most teams, the best path is:
Define one clear reporting goal.
Connect with `Salesforce Objects` or `Salesforce Reports`.
Clean the data in Power Query.
Build relationships and measures.
Create focused visuals.
Publish, refresh, and validate.
Once the first report works well, expand carefully. Add more Salesforce objects, bring in targets or finance data, and build dashboards that help people make decisions with confidence.


