Connector Improvement: Improve Incremental Sync Logic for Salesforce Connector
AnsweredHello Fivetran Team,
As described in your documentation, incremental syncs rely on reliable timestamp fields to detect changes, and for Salesforce you currently use one of the following fields:
- SystemModStamp
- LastModifiedDate
- CreatedDate
- LoginTime
If none of these fields are available, the table is fully re-imported.
Problem
In practice, this approach has key limitations:
1. SystemModStamp sometimes changes without meaningful business changes.
We see cases where SystemModStamp is updated even though no business-relevant fields have changed. These rows are still treated as updates by Fivetran, which increases sync volume and cost without adding real value. It is unclear what internal Salesforce operations trigger these changes.
2. Different objects require different incremental fields.
Our Salesforce administrator recommends using LastModifiedDate for some objects and SystemModStamp for others, depending on how those objects are maintained and updated in Salesforce. However, today this choice is not configurable, which makes it hard to align Fivetran’s behavior with Salesforce best practices for each object.
Because of this, it is difficult to trust that incremental syncs always represent meaningful business changes.
Feature Request
We would like to request one of the following:
Option 1: Configurable Incremental Column
Allow users to configure which date/datetime field is used as the incremental sync base field for each Salesforce object. This would let teams choose the field that best reflects real business changes and follow Salesforce-admin recommendations per object.
Option 2: Full Transparency of Incremental Logic
If configurability is not possible in the short term, please document and share the exact logic behind your incremental sync behavior, including:
-
How the incremental field is selected for each object
-
Priority order between SystemModstamp, LastModifiedDate, CreatedDate, and LoginTime
-
Known edge cases and limitations
Why This Matters
-
System-level timestamp changes can cause unnecessary re-syncs.
-
Different objects require different change-tracking strategies.
- The current approach can lead to much higher cost.
Providing either configurability or clear documentation would greatly improve trust, accuracy, and usability of the Salesforce connector in real-world data pipelines.
Thank you for considering this request.
-
Official comment
Hi Marta,
Thanks for flagging this. This seems to be a known Salesforce behavior and we have seen it discussed in the community as well. SystemModStamp can get updated even when there is no intrinsic business change.
Today, we prioritize SystemModStamp and LastModifiedDate because they are generally the most reliable fields to capture changes comprehensively and to preserve data lineage and correctness.
On option one, while configurability sounds useful, allowing per object incremental fields increases the risk of missing updates and shifts more responsibility onto customers, especially since Salesforce timestamp semantics are not consistent or guaranteed across objects.
Option two feels more practical. We think it makes sense to clearly document the incremental logic and edge cases for core Salesforce tables so expectations are clear without introducing fragile configuration. We will try to address this via option two. In the interim, could you let us know which specific tables you have seen this particular issue , so we can check if there are any possible workarounds?
Thanks,
Vignesh
Product team -
Hello,
thank you for the response. The objects are:
- mc_cycle_plan_channel_vod__c,
- mc_cycle_plan_target_vod_c,
- mc_cycle_plan_product_vod_c
Please sign in to leave a comment.
Comments
2 comments