Forum Discussion
Unable to set Incremental refresh using Salesforce DB
Hi,
I would like to setup Incremental refresh for 2 tables. Data source is pulling data from salesforce DB. will power bi support Incremental Refresh for salesforce DB. if not, any alternative solution. Please help me.
Power BI's incremental refresh technically works with the Salesforce connector, but only in a limited way. Incremental refresh relies on query folding of the RangeStart and RangeEnd datetime parameters into the source, and the Salesforce connector does not fold those filters. That means Power BI still pulls the full dataset each refresh and only slices it afterwards, so you get no real performance or bandwidth gain.
The practical alternatives are:
1. Stage the Salesforce data into a source that folds properly, such as Azure SQL, SQL Server, Snowflake, or a Fabric Warehouse/Lakehouse, and enable incremental refresh on that layer.
2. Use a Fabric Data Pipeline or Data Factory Copy activity with the Salesforce connector to land raw data into a Lakehouse on a schedule, then build your model on top of it with incremental refresh enabled.
3. If you must go direct, wrap the query in a native SOQL query with a WHERE clause on a date field, but folding is still unreliable and I would not rely on it in production.The staging approach is what most teams settle on once volumes grow.
If this helped, a thumbs up and accepting the solution would be appreciated.
Best regards,
Shai Karmani
7 Replies
- Shai_Karmani
Super User
Power BI's incremental refresh technically works with the Salesforce connector, but only in a limited way. Incremental refresh relies on query folding of the RangeStart and RangeEnd datetime parameters into the source, and the Salesforce connector does not fold those filters. That means Power BI still pulls the full dataset each refresh and only slices it afterwards, so you get no real performance or bandwidth gain.
The practical alternatives are:
1. Stage the Salesforce data into a source that folds properly, such as Azure SQL, SQL Server, Snowflake, or a Fabric Warehouse/Lakehouse, and enable incremental refresh on that layer.
2. Use a Fabric Data Pipeline or Data Factory Copy activity with the Salesforce connector to land raw data into a Lakehouse on a schedule, then build your model on top of it with incremental refresh enabled.
3. If you must go direct, wrap the query in a native SOQL query with a WHERE clause on a date field, but folding is still unreliable and I would not rely on it in production.The staging approach is what most teams settle on once volumes grow.
If this helped, a thumbs up and accepting the solution would be appreciated.
Best regards,
Shai Karmani - Prince0011
Solution Sage
Yes, Power BI can support Incremental Refresh with Salesforce, but there are some important limitations depending on how the Salesforce data is being accessed.
Incremental Refresh requires query folding so that Power BI can push the date filter (RangeStart and RangeEnd parameters) back to the source system. If the Salesforce connector does not support query folding for your specific query, Incremental Refresh will not work as expected.
You can check this by:
Creating the required parameters:
RangeStart (DateTime)
RangeEnd (DateTime)
Applying the filter to your Salesforce date column.
Right-clicking the last Power Query step and selecting View Native Query.
If the option is available, query folding is occurring.
If it is disabled, Incremental Refresh may not be supported for that query.
Possible alternatives:
Use Dataflow Gen2 or Fabric Data Factory pipelines
Extract Salesforce data incrementally using a watermark column (for example, LastModifiedDate).
Store the data in a Lakehouse/Warehouse.
Build your Power BI semantic model on top of that curated data.
Use Salesforce replication tools
Tools such as Salesforce Data Cloud, Azure Data Factory connectors, or third-party ingestion tools can incrementally load Salesforce data into a database or lake.
Reduce dataset size through Power Query optimization
Remove unnecessary columns.
Filter historical data.
Aggregate data before loading.
For enterprise scenarios, a common architecture is:
Salesforce → Fabric Data Pipeline/Dataflow → Lakehouse/Warehouse → Power BI Semantic Model with Incremental Refresh
This separates ingestion from reporting and gives more control over refresh performance.
For more information:
Incremental refresh in Power BI: https://learn.microsoft.com/power-bi/connect-data/incremental-refresh-overview
Salesforce connector in Power BI: https://learn.microsoft.com/power-query/connectors/salesforce/
Query folding in Power Query: https://learn.microsoft.com/power-query/query-folding-basics
💡 Helpful? Give a Kudos 👍 — keep the community growing.
✅ Solved your issue? Mark this as the Accepted Solution ✔️
Best regards, Prince Singh | Data Science & Microsoft Fabric Enthusiast
- Kagiyama_yutaka
Continued Contributor
Incremental refresh in Power BI works only when the filter on the date column folds, and you can see that in Power Query by checking the last step. When View Native Query is not available, incremental refresh will not work for that Salesforce connection.
- rajendraongole1
Super User
Hi eswarnallamalli - One additional point: if you're using Salesforce directly, consider leveraging a watermark column such as LastModifiedDate or SystemModstamp during ingestion. Many enterprise implementations incrementally ingest Salesforce data into a staging layer (Fabric Lakehouse/Warehouse, Azure SQL, etc.) first, then configure Power BI Incremental Refresh on that staged data for much better performance.
Hope this added information.
- v-aatheeque
Community Support
Hi eswarnallamalli
Have you had a chance to look through the responses shared earlier? If anything is still unclear, we’ll be happy to provide additional support.- v-aatheeque
Community Support
Hi
Following up to confirm if the earlier responses addressed your query. If not, please share your questions and we’ll assist further.
- metrica
Post Prodigy
Hi eswarnallamalli,
Power BI incremental refresh can be configured for Salesforce, but its efficiency depends on the RangeStart and RangeEnd filters being applied at the source.
With the native Salesforce connector, I would verify this for the specific query rather than relying only on View Native Query.
Power BI Connector for Salesforce provides a documented incremental refresh setup using RangeStart and RangeEnd over its OData source.
AppExchange and 30-day trial:
https://appexchange.salesforce.com/appxListingDetail?listingId=31526f0e-abd8-4cb5-bd1a-3bd56b5c0577Setup guide:
https://metricasoftware.com/docs/salesforce/how-to-set-up-incremental-refresh-in-power-bi/Cheers,
Metrica Team