Salesforce Requirements
Primer uses minimal field mapping to connect Primer's third-party data with your Salesforce records, enhancing your CRM advertising efforts.
Primer's integration with Salesforce prioritizes security, ensuring your data is protected. If you have questions about security, our customer support team can offer a clear explanation of how we maintain safety during the integration.
APIs Primer Uses
Primer uses Salesforce Bulk API 2.0 for large-scale data ingestion (initial syncs and most incremental updates), and falls back to REST API for specific edge cases (e.g., unsupported field types like base64 or complex fields).
Bulk API 2.0 (primary path)
Used for high-volume objects (Accounts, Contacts, Leads)
Salesforce automatically determines chunk sizes and batching
Optimized for reliability over raw throughput
REST API (fallback)
Used when Bulk API is not supported for certain fields
Can result in higher API call counts for those specific streams
Why we prioritize Bulk API over REST/SOAP
Bulk API is used because:
Any operation >2,000 records is better suited for Bulk API
It reduces risk of timeouts and failures
It allows Salesforce to manage scaling internally
REST/SOAP are not used for large-scale ingestion because:
Higher failure risk at scale
Less efficient for large datasets
Would not reduce total processing time meaningfully
Syncing Behavior
Typical Ingestion Rate: ~200,000 records per hour. Example: 100K accounts + 300K contacts + 300K leads + 50K opportunities + 10K campaigns + 40K campaign members = 800K records = 4 hours to ingest & process.
40 Bulk API 2.0 batches consumed
The initial ingestion can take some time, and during this period, Salesforce filters may not be usable.
First Sync API Usage
For large Salesforce instances (10M+ records), it’s normal to see higher-than-expected API usage during initial sync due to retries and Salesforce-managed chunking. This is expected and driven by a few factors:
Automatic chunking by Salesforce
Bulk API 2.0 splits large queries into smaller chunks behind the scenes
Each chunk contributes to total API usage
Retry behavior (important)
Primer uses retry logic with exponential backoff to ensure data completeness
Retries can occur due to:
Large dataset sizes (10M–25M+ records)
Network interruptions
Salesforce timeouts
Complex field types requiring REST fallback
These retries can significantly increase total API calls
Long-running sync jobs
Initial syncs can run for many hours or days depending on dataset size
Extended runtimes increase the likelihood of retries and reprocessing
👉 In practice, this means:
API usage may exceed simple “rows ÷ batch size” estimates
Higher call counts are often a tradeoff for data completeness and reliability
We cannot set a max consumption threshold on the API, but if you're interested in requesting this feature, please let us know.
After the initial ingestion, our approach is incremental. Typically minutes (e.g., ~10–15 minutes) once initial load is complete with very low API usage due to smaller data volume.
We do not support limits on initial ingestion volume. Primer ingests the full dataset to ensure accurate audience building.
User Permissions
"API Enabled" must be checked
Primer will have the same access to objects and fields as the Salesforce user connected to Primer. So if fields are read-only or hidden for that user, that is what Primer will reflect.
For text fields, the fields should be set as 'text' only as opposed to 'text area' fields.
You should give Primer "Read" access to the "Lead," "Contact," "Opportunity," and "Account" objects. Primer does not currently delete any records, and we will never delete or overwrite data.
Additional functionality for bulk import is available with allowing access to "Campaign" objects.
High Assurance on Session security level required at login should be set to "Disabled" at the profile level. Salesforce blocks some API access when this setting is used on user Profiles and this will prevent Primer from accessing your Salesforce instance.
Salesforce requires that the user account have the "View Setup and Configuration". Ensure the user account have the "View Setup and Configuration" permission. This permission is set on the Profile of the connected user under the "Administrative Permissions" heading.
When connecting, the Salesforce authorization flow will request scopes
apiandrefresh_token.
We recommend using a stand-alone account specifically for Primer (often called a Service Account or Integration User) so you can see Primer updates in your audit history.
Object Permissions
Lead
Read
Audience Building
Contact
Read
Audience Building
Account
Read
Audience Building
Campaign
Read
Audience Building
Opportunities
Read
Audience Building
Permission Errors
From time to time, you may encounter two common errors with our Salesforce integration. These issues are generally related to the token used to connect Salesforce to Primer.
Quick Fix: Reconnect and Reauthorize Salesforce: If you’re experiencing an error, the simplest solution is to reconnect and reauthorize Salesforce with Primer. This step often resolves token-related issues quickly.
Common Causes of Salesforce Integration Errors
There are several common reasons why token-related issues occur with the Salesforce integration. These include:
Expired Token
Explanation: Tokens used to connect Salesforce accounts to Primer can expire periodically due to security or session settings.
Solution: Reauthorize your Salesforce connection to renew the token.
Inactive User Status
Explanation: If the person who initially connected Salesforce to Primer has since become an inactive user in Salesforce, this can disrupt the integration.
Solution: Ensure the connected user is active in Salesforce, or reconnect with an active user account.
Changed Permissions
Explanation: If the user’s permissions in Salesforce have been changed (e.g., role updates, restricted access), this may lead to integration errors.
Solution: Check and, if necessary, update the user permissions in Salesforce to ensure they meet the requirements for connecting with Primer.
Troubleshooting Guide
Regardless of the specific cause, the resolution steps are generally the same:
Reauthorize Salesforce: Disconnect and reconnect Salesforce in Primer to reset the token.
Double-Check User Permissions: Ensure the connecting user has sufficient permissions in Salesforce to maintain integration stability.
Following these steps should resolve most issues with the Salesforce integration. If you continue to encounter errors, please contact Primer support for further assistance.
Last updated