Why Isn't My Row Filter Reducing My Salesforce API Usage?
We send the part of your row filter that Salesforce can evaluate directly as part of the query. This reduces the number of API calls and the amount of data we retrieve from Salesforce. We do this only during a table's historical sync, which is its first sync or any re-import. For more information, see Row filtering.
If your API usage doesn't decrease, it might be due to one of the following reasons:
- Most of your API usage comes from incremental syncs: Row filters reduce API usage only during historical syncs and re-imports. During incremental syncs, we retrieve the full set of changed rows from Salesforce and apply the entire filter ourselves, so those syncs use the same number of API calls with or without a filter.
- Your filter includes conditions that Salesforce can't evaluate natively: For these conditions, we retrieve the full set of rows from Salesforce and apply the filter ourselves, even during a historical sync. This includes the following conditions:
ContainsorStarts withNot equalson text fieldsInorNot inon multi-select picklist fieldsNot inon text fields- Filter conditions combined with OR
- Filters on fields that Salesforce doesn't allow filtering on, such as long text and encrypted fields
- Filters on child-object tables
The rows we write to your destination are the same either way. Only the amount of data we retrieve from Salesforce differs. For the full list of supported operators, see Row filtering.