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 CRM Integration.

CRED's Salesforce integration provides bidirectional sync of AccountsContactsOpportunitiesCampaignsCampaign MembersTasksNotes, and any Custom Objects you enable, plus one-way import of Salesforce Business Processes (opportunity pipelines), Opportunity StagesCustom 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 *__c object

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 BusinessProcess records 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 Note object). CRED maintains the ContentDocumentLink relationships 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) and WhatId (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 (EntityDefinition where DeveloperName ends 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 LeadsFilesAttachmentsEmailMessages, 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: https://commercial.credplatform.com/my-account/workspace-integrations

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 fullopenidchatter_apivisualforce, 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:

  1. 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.

  2. Step 2/3 — Configure {Object} Fields. Set the per-field update mode (see Field Settings below). This step is where the "Enrichment Settings" column lives.

  3. 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 LastModifiedDate with a rolling 2-day lookback

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 WhoId and WhatId polymorphic references — CRED resolves those to the correct CRED Contact, Account, or Opportunity.

  • Notes are stored as ContentNote in Salesforce and maintain their ContentDocumentLink associations 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 CRM Integration — Field Management.

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:

  1. Required in CRM — the field is mandatory in Salesforce. If it's empty, Salesforce will reject the record on write.

  2. 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

  1. In the Integration Wizard, or via My Account → Data Model → Fields, open the custom field you want to configure.

  2. 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:

  1. 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

  2. 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.

  3. 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 domainticker/exchangecountry, 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:

  1. Go to My Account → Workspace Integrations.

  2. 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.

  3. 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:

  1. 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.

  2. Duplicate records. Use the Matching tab to reconcile. Set create rules to Manual or Off to prevent automatic creation.

  3. 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.

  4. Permission errors (INSUFFICIENT_ACCESSFIELD_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.

  5. 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.

  6. 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