CRM Integration Technical Process - Salesforce
Last updated: September 1, 2026
This article provides a detailed overview of the technical process behind the Salesforce integration. It's helpful for a client's Data Governance team to evaluate technical approach before proceeding with system integration.
Overview
This article covers the technical setup and sync behaviour specific to Salesforce. For general CRM integration concepts — including field management, data matching, syncing rules, and troubleshooting — see .
CRED's Salesforce integration provides bidirectional sync of Accounts, Contacts, Opportunities, Campaigns, Campaign Members, Tasks, Notes, and any Custom Objects you enable, plus one-way import of Salesforce Business Processes (opportunity pipelines), Opportunity Stages, Custom Object schemas, and Users.
All data is processed within CRED's secure, SOC 2-compliant infrastructure. Data residency depends on your workspace configuration — contact your CRED representative to confirm your hosting region.
CRED supports compliance with major data protection frameworks including GDPR (EU), SOC 2, and other applicable regulations.
Setup time depends on data volume, the number of enabled entity types, and your Salesforce edition. Salesforce enforces org-wide API request limits per 24-hour window (typically 15,000–1,000,000+ depending on edition and user count), so larger initial syncs draw against that quota. Contact your CRED representative for a scoped estimate before a large migration.
Supported Entities
CRED Entity | Salesforce Object | Import (SF → CRED) | Export (CRED → SF) |
|---|---|---|---|
Account | Account | Yes | Yes |
Contact | Contact | Yes | Yes |
Opportunity | Opportunity | Yes | Yes |
Opportunity Pipeline | BusinessProcess | Yes | No |
Opportunity Stage | OpportunityStage | Yes | No |
Campaign | Campaign | Yes | Yes |
Campaign Member | CampaignMember | Yes | Yes |
Task | Task | Yes | Yes |
Note | ContentNote | Yes | Yes |
Custom Object schema | EntityDefinition | Yes | No |
Custom Object records | Any | Yes | Yes |
Remote User | User | Yes | No |
Notes
Business Processes, Opportunity Stages, Custom Object schemas, and Users are read-only — Salesforce manages them and CRED does not write back.
Opportunity Pipelines in Salesforce are modelled as active
BusinessProcessrecords tied to the Opportunity object. CRED also synthesises a "Default Salesforce Opportunity Pipeline" so opportunities without an explicit BusinessProcess have a home.Notes are synced using Salesforce's modern ContentNote object (the newer replacement for the legacy
Noteobject). CRED maintains theContentDocumentLinkrelationships so a Note stays linked to its Account, Contact, Opportunity, Task, or Lead in Salesforce.Tasks cover Salesforce's Task object generally — including logged calls, which Salesforce models as Tasks. CRED resolves the polymorphic
WhoId(Contact/Lead) andWhatId(Account/Opportunity) references so a Task lands on the right CRED record.Campaign Members are limited to those with
Type = 'Contact'. Lead-typed campaign members are filtered out on import (Leads are not currently a supported CRED entity for Salesforce).Custom Objects. CRED discovers your custom object schemas (
EntityDefinitionwhereDeveloperNameends in__c) automatically. To sync records of a specific custom object, enable it in the Integration Wizard after the initial schema import completes.Custom fields. Custom fields on any supported object are discovered and mappable in the Integration Wizard alongside standard fields.
Salesforce Leads, Files, Attachments, EmailMessages, and Events are not currently synced. These are on the roadmap — check with your CRED representative for the latest timeline.
How to Connect Salesforce
Step 1: Access Workspace Integrations
Navigate to My Account → Workspace Integrations, or go directly to:
Find Salesforce under the CRMs & Sales Platforms category and click Enable.
Step 2: Authenticate
A confirmation modal titled Authenticate appears asking How would you like to authenticate?. Select the Login with Salesforce card and click Continue to be redirected to Salesforce's login page.
What CRED asks for. On the Salesforce consent screen you'll see CRED request two OAuth scopes:
Access and manage your data (
api) — allows CRED to read and write the Salesforce objects and fields the connecting user's profile has access to. CRED does not elevate beyond the connecting user's own permissions.Perform requests at any time (
refresh_token) — allows CRED to renew its own access token so it does not need to prompt the user to sign in again on every sync.
CRED does not request full, openid, chatter_api, visualforce, or web access, and does not read from or write to any Salesforce object outside those you enable in the Integration Wizard.
Which Salesforce account to use.
The connecting user must have API Enabled on their profile. Salesforce Essentials does not include API access; those orgs cannot connect today.
The user's profile / permission sets must grant object and field-level access to whatever CRED needs to read or write. CRED enforces no separate integration-user pattern — whatever the connecting user can see, CRED can see; whatever the connecting user can edit, CRED can edit.
Tip: Use a shared service account (a dedicated Salesforce integration user) rather than an individual employee's account so the connection isn't tied to a single team member.
Sandbox connections. Production CRED workspaces currently connect to Salesforce production orgs only (login.salesforce.com). If you need to test the integration against a Salesforce sandbox (test.salesforce.com), contact your CRED representative to arrange it.
Step 3: Initial Data Sync
After authenticating, you'll be returned to CRED. The initial sync begins automatically.
A progress indicator in the sidebar shows read status and percentage complete.
Click Start Configuring to open the Integration Wizard, or access it later via Settings on the Salesforce tile.
The initial sync runs tier by tier — Users, Business Processes, Opportunity Stages, and Custom Object schemas first, then Accounts and Contacts, then Opportunities, Campaigns, Campaign Members, Tasks, Notes, and any enabled Custom Object records — so downstream records have the reference data they need.
Step 4: Configure with the Integration Wizard
The wizard walks through each imported object in three steps:
Step 1/3 — Start configuring your {import}. Map Salesforce fields to CRED fields, including standard and custom fields. Use + Custom to create new CRED fields. Use Ignore to skip a field.
Step 2/3 — Configure {Object} Fields. Set the per-field update mode (see below). This step is where the "Enrichment Settings" column lives.
Step 3/3 — {Object} enrichment settings. Set the entity-level create rule and review credit estimates.
Sync Behaviour
Sync Schedule
Direction | Trigger | Timing |
|---|---|---|
Salesforce → CRED (initial import) | Automatic on connect | Begins ~4 minutes after OAuth, runs tier by tier |
Salesforce → CRED (ongoing) | Manual — Sync from CRM button, or workflow action | No automatic recurring poll today; incremental reads use each record's |
CRED → Salesforce | Event-driven — on any in-app edit to a synced record | ~3-second delay, then queued to Salesforce's dedicated background worker |
Manual Sync to CRM button | User action | Enqueues a background job; runs seconds later, not synchronously |
Notes
Sync timings are subject to change. This page will always reflect current values.
CRED does not currently expose per-workspace or per-plan sync-frequency controls. If you need a specific automatic re-sync cadence, contact your CRED representative.
Salesforce jobs run on a dedicated worker queue, isolated from CRED's other background work.
Deletes
CRED reconciles Salesforce deletions on a rolling 29-day window using Salesforce's sObject.deleted() API. Records deleted in Salesforce more than 29 days ago will not be reflected in CRED unless you manually clean them up. Run a Sync from CRM if you need to catch up on recent deletions on demand.
Rate Limiting
Salesforce enforces an org-wide API request limit per rolling 24-hour window (the specific ceiling depends on your Salesforce edition and licensed user count). When Salesforce returns the REQUEST_LIMIT_EXCEEDED error, CRED automatically retries the request with exponential backoff (up to 5 attempts, 1 to 60 seconds between attempts). If the request still fails after five retries, the sync job errors out and the failure surfaces in the sync issues sidebar rather than silently disappearing.
Non-quota errors (authentication, validation, permissions, network) are not automatically retried — they're reported to the sync issues sidebar directly.
Session and Token Handling
CRED refreshes its Salesforce access token automatically as long as the refresh token is valid. If a Salesforce administrator revokes CRED's session or the refresh token expires, CRED flags the workspace connection as Relink Needed and pauses sync until an admin re-authenticates from Workspace Integrations. The error message from Salesforce is stored alongside the connection so support can pinpoint the cause.
Key Entity Relationships
Each Salesforce Account syncs 1:1 to a CRED Account (which stores the Salesforce ID and sync state).
CRED then matches the Account to a CRED Company — the enriched entity with financials, sponsorship deals, and audience data.
Every synced record carries an Account ID; a Company ID is only present once CRED has matched the account to a known company. Not every account will have a company match.
Each Salesforce Contact syncs 1:1 to a CRED Contact, which CRED then matches to a CRED Person — the same pattern as Account → Company.
Opportunities sync with their Business Process (pipeline) and current stage. Salesforce Business Processes appear in CRED as Opportunity Pipelines; individual OpportunityStage records become Opportunity Stages under each pipeline.
Tasks carry their Salesforce
WhoIdandWhatIdpolymorphic references — CRED resolves those to the correct CRED Contact, Account, or Opportunity.Notes are stored as ContentNote in Salesforce and maintain their
ContentDocumentLinkassociations to Accounts, Contacts, Opportunities, and Tasks on both sides.Campaign Members link a Contact to a Campaign; CRED syncs these as first-class records with their status and response fields intact.
Where Synced Data Appears in CRED
Synced contacts appear under People → My Contacts.
Synced accounts appear under Company → My Accounts.
Previous activity history for matched contacts (Tasks, Notes) is visible in the contact timeline.
Last activity timestamps are displayed in both CRED and Salesforce.
Manual Sync
Three ways to push data to Salesforce on demand:
Per record. Open the 3-dot menu on a company, contact, or opportunity row (or the record's sidebar), and choose Sync to Salesforce.
Selected records in bulk. Select rows in any list (Accounts, Contacts, Opportunities, Campaign Contacts, and other supported list types), then use the footer action-bar Export button (the label changes to Export All when nothing is selected). Its dropdown includes CSV, Excel, and — when Salesforce is connected — Sync to Salesforce.
Entire list. Use the Export All button in the list header. Same dropdown, including Sync to Salesforce.
Important: Export (CSV or Excel) and Sync to Salesforce are separate actions surfaced under the same dropdown. Export produces a downloadable file; Sync to Salesforce pushes records into Salesforce. Choose the correct dropdown item for what you want to do.
Field Settings
For full field management documentation, see .
Default settings for new Salesforce connections
When a new Salesforce connection is set up, CRED seeds these defaults:
Object (entity) level: Update Mode = On Demand, Create Rule = Manual. This means CRED will only create or update records in Salesforce when you explicitly trigger a sync — nothing pushes automatically until you decide it should.
Field level: Update Mode = Null Value Only, Create Rule = On. This means new fields default to only filling gaps in Salesforce rather than overwriting existing values.
Both levels can be adjusted in the Integration Wizard after the initial sync completes.
Per-Field Update Modes
Set on Step 2/3 of the Integration Wizard. Dropdown options:
Mode | Behaviour |
|---|---|
Null Value Only | Only populate if the Salesforce field is currently null or empty |
Overwrite | Always replace the Salesforce value with the CRED value |
Off | Do not update this field |
Per-Entity Create Rules
Set on Step 3/3 of the Integration Wizard. Dropdown options:
Rule | Behaviour |
|---|---|
On | Always create a new record, even if a potential duplicate exists |
Off | Never create new records |
Manual | Only create when Sync to CRM is clicked and no match is found |
Required Fields
There are two levels of field requirements:
Required in CRM — the field is mandatory in Salesforce. If it's empty, Salesforce will reject the record on write.
Required in CRED — the field is marked as required within CRED's sync settings. The record will not sync until that field is populated; the sync button is disabled with a message indicating which fields are missing.
Is Exportable?
An admin-level toggle per field that controls whether the field's data can be included in CSV/Excel exports. Use this to comply with internal data handling policies — fields marked non-exportable will not appear in any exported file.
Read & Write Controls
Each mapped field has configurable read, update, and delete settings. To remove a field from syncing, unmap it in the Integration Wizard.
Sync Limits
Sync limits vary based on your selected CRED plan. Contact your CRED representative to understand the limits applicable to your workspace.
Layering CRED Sources on a Field (Source Priority)
For any custom field CRED creates during Salesforce import — or any field you configure afterwards — you can layer additional CRED data sources so the field falls back through a prioritized "waterfall." This lets you enrich Salesforce records directly with CRED's own catalog: for example, if a Salesforce Account is missing a website domain, fill it from the corresponding CRED Company field.
How to reach it
In the Integration Wizard, or via My Account → Data Model → Fields, open the custom field you want to configure.
In the right-side settings panel, select the Source tab.
How the panel is organised
Source priority — the ordered list of sources CRED consults, top to bottom, when populating this field. The first source that returns data wins; CRED then stops walking the list.
Recommended order badge — appears when your current ordering matches CRED's recommended default for this field/entity combination. Reordering, disabling, or adding sources will clear the badge until the ordering matches the recommendation again.
Duplicate from existing field — copies the entire source configuration from another field you've already configured. Useful when the same waterfall applies to many fields.
Add source — appends a new source card to the bottom of the list.
Per-source toggle — enables or disables that source without deleting it. Disabled sources are skipped when the waterfall runs.
Drag handle / delete — reorder cards by dragging; remove one with the delete button.
Configuring a source card
Each source is defined by three dropdowns:
Source Type — where the data comes from. Options include:
CRED — CRED's own enriched catalog
Internal Data — your workspace's uploaded or internally generated data
LLM — a large-language-model-derived value
User Input — a value the user is expected to enter manually
Calculation — a value computed from other fields
Merge-Dev — data from third-party sources routed through Merge
Entity Type — the CRED entity to pull from. The list is constrained by the parent field:
If the parent field is on an Account, Entity Type is Company.
If the parent field is on a Contact, Entity Type is Person.
Additional entities may appear when Source Type is Internal Data.
Field — the specific field on the chosen entity. This is searchable and paginated for the larger catalogs (e.g. CRED Company).
Behaviour at sync time
When the field is resolved, CRED walks the enabled sources in order and returns the first non-null value.
Sources marked as disabled are skipped.
If no source returns a value, the field is left empty.
Note: CRM systems (including Salesforce itself) are not selectable as Source Types in the waterfall — this feature layers CRED's own data catalog onto a field, not another CRM connection.
Matching & Deduplication
CRED matches Salesforce accounts to CRED companies using a fuzzy match on company name (Jaro-Winkler similarity), with website domain, ticker/exchange, country, and social identifiers (LinkedIn, Twitter) used as tiebreakers when present.
When CRED's match score is high enough, the imported account is automatically linked to the existing CRED Company. Below that threshold, CRED flags the record in the Matching UI for review rather than auto-linking.
Matching statistics (matched vs total) are visible in the Integration Wizard and under My Account → Settings → Matching.
Click on a row to adjust which CRED Company an imported account is matched to.
Monitor remaining (unmatched) accounts and manually find matching entries.
Go-Live Checklist
Before rolling the integration out to your team:
☐ Verify the authorising Salesforce user has API Enabled and appropriate object / field access on their profile
☐ Confirm the org you're connecting is the intended production org (sandbox connections require CRED-side setup)
☐ Ensure all essential fields are mapped and update modes are set correctly
☐ Confirm required fields are populated for records you intend to sync
☐ Adjust the object-level Update Mode / Create Rule defaults (On Demand + Manual) if you want automatic pushes to Salesforce
☐ Enable any Custom Objects you want to sync (they're discovered but not activated by default)
☐ Test sync functionality with a sample set of records in both directions
☐ Validate that reporting data is accurate post-sync
☐ Train sales and support teams on the new integration workflow (manual sync, matching, troubleshooting)
☐ Review Is Exportable? settings for sensitive fields
☐ For any custom fields where fallback behaviour matters, confirm the Source Priority list is set the way you want
Disconnecting Salesforce
To disable or disconnect the integration:
Go to My Account → Workspace Integrations.
Find the Salesforce tile. On a connected tile you'll see three inline controls: an Enabled pill, a gear-icon Settings button, and a red Disconnect button.
Click Disconnect directly on the tile to revoke the connection.
Disconnecting stops all syncing. Existing records in both systems are retained but will no longer update. Re-connecting requires a new OAuth flow and a fresh initial sync.
Troubleshooting
Sync errors
Check the sync issues sidebar on the account record for field-level error codes and messages.
Common issues:
Record not syncing. Check that required fields are populated. Verify the Salesforce connection is active under Workspace Integrations. Confirm the object-level Create Rule and Update Mode are set to values that permit the action you're taking.
Duplicate records. Use the Matching tab to reconcile. Set create rules to Manual or Off to prevent automatic creation.
Connection shows "Relink Needed." The Salesforce refresh token was revoked or expired. Reconnect from Workspace Integrations → Salesforce → Enable — no data is lost, but the initial re-sync will run again.
Permission errors (
INSUFFICIENT_ACCESS,FIELD_INTEGRITY_EXCEPTION). The connecting user's Salesforce profile lacks read or edit access on the object or field. Grant access via the profile or a permission set and re-run the sync — no re-authentication is required as long as the connection is still active.REQUEST_LIMIT_EXCEEDED. Your Salesforce org has exhausted its 24-hour API request quota. CRED automatically retries up to 5 times with exponential backoff. After the fifth failed attempt the job errors out and the failure surfaces in the sync issues sidebar — kick off a fresh sync once the quota window has cleared, or contact your Salesforce administrator about increasing the limit.Field not populating as expected. Open the field's Source tab and confirm the Source Priority list has an enabled source that can supply a value for this record.
Filing a support ticket
When reporting a sync issue, include:
Screenshot of the affected record (both CRED and Salesforce)
Which fields are mapped and their update modes
Expected vs. actual behaviour
Steps to reproduce
Error details from the sync issues sidebar