Overview
By default, Salesforce incremental reads rely on detecting changed records. However, SystemModstamp updates whenever any field on a record changes, not just the fields your integration is tracking.
For example, if your integration syncs the Email and Phone fields on the Contact object, a change to an unrelated field like Description still updates SystemModstamp. This causes Salesforce to read and deliver the record, even though none of your selected fields changed.
For high-volume Salesforce orgs, this leads to:
Unnecessary API calls to Salesforce, consuming your API quota faster
A large volume of data you don't always need at your destination, increasing processing costs
How Smart Incremental Read Works
When Smart Incremental Read is enabled, we set up per-object change tracking in your customer's Salesforce org:
Custom timestamp field: A datetime field (e.g.,
myapp_field_changed_timestamp__c) is created on each Salesforce object your integration reads from. The field name is derived from your project's app name.Apex trigger: A trigger is deployed on each object that monitors your selected fields. When any of those fields change, the trigger sets the custom timestamp to the current time. Changes to other fields are ignored.
Targeted reads: Instead of using
SystemModstamp, incremental read uses the custom timestamp field to identify records with relevant changes. Only records where your selected fields actually changed are synced.
Benefits
Metric | Without Smar Incremental Read | With Smart Incremental Read |
Records read per sync | All records modified since last sync | Only records where selected fields changed |
API calls to Salesforce | Higher (includes irrelevant changes) | Lower (targeted to relevant changes) |
Data delivered to destination | Includes all changes not needed | Only meaningful changes |
Smart Incremental Read is most impactful for:
High-volume Salesforce orgs where records are frequently updated by automation, workflows, or other integrations
Integrations with a narrow field selection (e.g., syncing 5 fields from an object with 100+ fields)
Objects with high churn on unrelated fields (e.g., `Account` or `Lead` where background processes frequently touch metadata fields)
What Gets Created in Salesforce
For each object your integration reads from, we create:
Custom Field:
<appname>_field_changed_timestamp__cDatetime field that tracks when selected fields last changed
Apex trigger:
AmpRead_<ObjectName>Sets the timestamp when any watched field is modified |
Requirements
License Required
Salesforce Integration license or higher
In addition to the Salesforce Integration License, the user also needs an additional Salesforce user license assigned during setup.
Permission Set License - can be configured on the User page in Salesforce setup, and it is required because Salesforce will otherwise block assigning some of the permission sets needed for the optimization feature.
Salesforce API Integration is needed

