CRED × Salesforce — sync, enrichment, troubleshooting
Last updated: May 13, 2026
CRED × Salesforce — sync, enrichment, troubleshooting
Audience: CRED customers using Salesforce as their CRM.
Purpose: Answer the day-one operational questions about the Salesforce integration — sync cadence, manual triggers, enrichment vs sync, troubleshooting fields that fail to sync, and where to find action logs.
Read this first: CRED × CRM — How the integration works in the CRED UI. That article covers the cross-CRM concepts (sync vs enrichment, update modes, action logs, etc). This article covers the Salesforce-specific behaviour.
Quick answers
Question | Short answer | Section |
|---|---|---|
How often does CRED sync with Salesforce? | Continuous incremental sync via SOQL filtered by | |
How do I trigger a manual sync (SF → CRED, CRED → SF)? | Per-record buttons in CRED, list-level bulk actions, or a full re-sync from Settings. | |
Why doesn't "Sync with Salesforce" enrich the record at the same time? | Sync moves data; enrichment uses credits. Use auto-enrich on create, or build a workflow with Enrich → Sync to Salesforce. | |
Mapped fields not passing over — how to troubleshoot? | Walk the seven-reason checklist; the Salesforce-specific gotchas are FLS (Field-Level Security), validation rules, and required-on-layout fields. | |
Where are the action logs? | Record Activity tab, Sync Log, Workflow Run Log, Audit Log — each row shows the Salesforce error code and the SOQL row ID. |
1. What CRED syncs from Salesforce
Salesforce has the deepest coverage of any CRM CRED integrates with — 13 entity types:
Salesforce object | CRED entity | Direction |
|---|---|---|
| RemoteUser | Read-only |
| Account | Two-way |
| Contact | Two-way |
| Opportunity | Two-way |
| OpportunityPipeline | Read-only |
| OpportunityStage | Read-only |
| Campaign | Two-way |
| CampaignMember | Two-way |
| Task | Two-way |
| Note | Two-way |
| CustomEntity (metadata) | Read-only |
| CustomEntityRecord | Two-way |
| Transcript | Read-only |
Custom objects: Fully supported. CRED auto-discovers every custom object accessible to the connected user and lets you opt them in to sync individually.
Custom fields: Auto-discovered on every standard and custom object during initial setup.
Sandbox vs Production: Both are supported. Pick the environment when connecting; sandbox uses test.salesforce.com and the connection is tagged so production data is never accidentally written.
2. When and how often CRED syncs with Salesforce
Initial sync
Triggered immediately after OAuth completes. CRED runs a full DATA_SYNC_READ for each entity type in dependency order, staggered every two minutes:
Users
Accounts
Contacts
Custom entity metadata
Custom entity records
Pipelines (BusinessProcess)
Stages (OpportunityStage)
Opportunities
Campaigns
Campaign members
Tasks
Notes (ContentNote)
Transcripts (Conversation)
Total time is org-size-dependent; large orgs (1M+ accounts and contacts) often take overnight to complete. Progress is visible in Settings → Integrations → Salesforce → Sync log.
Ongoing incremental sync
SOQL queries filter by
LastModifiedDate >=the last sync timestamp.A new pass is queued shortly after the previous one finishes; new and modified records typically arrive in CRED within a few minutes.
Deleted records: CRED uses Salesforce's
getDeletedRecords()SOAP endpoint to detect deletions in the last 30 days. Records deleted more than 30 days ago are not detected (Salesforce's recycle-bin retention limit) — if you need to clean those up, run a full re-sync.If a read task hangs > 15 min it is auto-restarted. Failed Phase-2 records are retried after 4h.
Rate-limit awareness
Salesforce REST API limit is 15,000 calls / 24h per organization across all apps connecting to your org. CRED self-throttles and watches the Limits endpoint — if remaining calls drop below 1,000 we pause sync for an hour to avoid blocking your other Salesforce apps. If you have a small Developer or Essentials org with a low ceiling, contact us — we can lower the throughput target.
Bulk API for very large operations
For initial reads of objects with millions of records, CRED can fall back to the Bulk API (10,000 records / batch, 15 batches / 24h). This is configured per connection — ask your CSM if you need it enabled.
3. How to trigger a manual sync
Salesforce → CRED (pull)
Scope | How | What happens |
|---|---|---|
One record | Open the record in CRED → 3-dot menu → Refresh from Salesforce | Single SOQL by |
List / collection | List menu → Sync → Pull from Salesforce | Targeted reads of every record's Salesforce |
Whole org | Settings → Integrations → Salesforce → Run full sync | Re-runs the full read for every entity type. Heavy |
CRED → Salesforce (push)
Scope | How | What happens |
|---|---|---|
One record | Record header → Sync with Salesforce | Creates the Account / Contact / Opportunity / … in Salesforce if it doesn't exist; updates if it does. Returns the SF URL on success |
Bulk | List → select rows → Bulk actions → Sync to Salesforce | Schedules a write per record; uses Composite API where possible |
Workflow | Add a Sync to CRM step | Every record entering the step is written to Salesforce |
Manual sync respects update modes — if write-back is OFF, the button is disabled.
4. Sync vs Enrichment with Salesforce
The "Sync with Salesforce" button moves the record's current CRED values to Salesforce. It does not run the CRED enrichment waterfall and does not consume credits. Three ways to combine them:
Manual two-step: click Enrich, wait for fields to populate, then click Sync with Salesforce.
Workflow: Workflows → trigger on list / signal / create → Enrich → Sync to CRM (Salesforce).
Auto-enrich on create: Settings → Integrations → Salesforce → Enrichment → toggle Auto-enrich on create. Every new record gets the waterfall before it's written back.
See the cross-CRM article for the full rationale on why we keep these separate.
5. Mapped fields not passing over — Salesforce-specific troubleshooting
Walk the seven-reason cross-CRM checklist first. Salesforce has three extra reasons:
Salesforce error | Meaning | Fix |
|---|---|---|
| The connected user's profile / permission set does not have FLS (Field-Level Security) write access on this field, OR the field is read-only on the user's page layout. | Grant the field on the user's profile / permission set, or pick a different connected user. |
| A Salesforce validation rule rejected the write (e.g. "Annual revenue must be > 0"). | Either fix the value before sync (use a workflow to coerce) or relax / scope the validation rule. |
| The Salesforce object requires a field on its layout that CRED isn't providing. | Map that field in CRED, or set a default in Salesforce. |
| The field was renamed / deleted in Salesforce. | Refresh the schema (Settings → Integrations → Salesforce → Refresh fields) and re-map. |
| The Salesforce record is locked by another process (often the Apex trigger queue, batch jobs, or a competing integration). | CRED retries automatically (1–5s backoff). Persistent locks point to a Salesforce config issue — check Apex jobs. |
| OAuth token expired and refresh failed. | Reconnect Salesforce. |
| Org hit its 24h API ceiling (15k REST calls). | Wait until the 24h reset, or upgrade your Salesforce edition. Investigate which app is consuming the calls. |
| SOQL was rejected. Almost always a custom field with unusual characters. | Open a ticket with the field name; we'll patch the query. |
FLS — the most common Salesforce-specific blocker
Salesforce's Field-Level Security means every field on every object can be hidden / read-only / read-write per profile and per permission set. CRED writes as the user who connected the integration. If that user's profile lacks write access on a field, that field will silently fail with INSUFFICIENT_ACCESS_OR_READONLY.
Recommended setup:
Create a dedicated "CRED Integration User" in Salesforce.
Give it a profile (or a permission set on top of a base profile) with read+write access to every object and field you want to sync.
Connect CRED as that user. This avoids "it works for Alice but not for Bob" classes of bugs.
If you can't create a dedicated user, audit FLS on the connected user's profile for every field in your CRED → Salesforce mapping.
Validation rules
Salesforce validation rules fire on every write. If a CRED-pushed value fails a rule, the write is rejected and logged. Open Salesforce Setup → Object Manager → [object] → Validation Rules to audit.
Required-on-layout fields
A field can be marked "required" on the page layout (separate from "required on the object"). If CRED isn't pushing that field, the write fails. Either map the field in CRED or move "required" to a default in Salesforce.
6. Action logs
Same four locations as every CRM. Salesforce specifics:
Record Activity tab in CRED shows the Salesforce
Idfor every sync attempt — copy/paste it into Salesforce's URL bar to jump to the record.Each error log entry includes the Salesforce
errorCode,fields[]array (which fields the error applies to), and the API call'srequestId. TherequestIdcan be used by Salesforce support to trace the failure in their logs.Salesforce Setup → Setup Audit Trail (in Salesforce, not CRED) lists permission and metadata changes — useful when "this used to work" but now doesn't.
If a sync fails with
UNABLE_TO_LOCK_ROWrepeatedly on the same record, check Salesforce's Setup → Apex Jobs for long-running batch jobs touching that object.
7. Salesforce integration limits and known constraints
Limit | Value | Note |
|---|---|---|
REST API calls / 24h (Salesforce orgwide) | 15,000 | Shared across every app on your org. CRED pauses below 1,000 remaining |
Bulk API records / batch | 10,000 | Used for initial reads of large objects when enabled |
Bulk API batches / 24h | 15 | For very large initial syncs we may stretch this across days |
SOAP | 30 days | Records deleted > 30 days ago are missed unless you full-re-sync |
Composite API records / call | 200 | Used for batch writes |
Field metadata cache | 1 hour | If you add a new SF field and don't see it, click Refresh fields |
Things that look like a sync bug but aren't
Person Accounts are partially supported. Standard B2B accounts work without caveats; if your org uses Person Accounts, a few fields behave differently — talk to your CSM before mapping.
Multi-currency orgs: Opportunity amounts respect the
CurrencyIsoCodeon the record. CRED converts to the connection's default for display but stores the original currency.Record types: If an object has multiple record types, CRED defaults to the user's default record type for new records. Specify the record type in the field mapping if you need a non-default.
8. Reference — CRED-side technical detail
Library:
jsforce(Salesforce JavaScript SDK)API version: 62.0
Query language: SOQL with cursor pagination via
nextRecordsUrlAuth: OAuth 2.0 Authorization Code with automatic token refresh
Production OAuth host:
login.salesforce.comSandbox OAuth host:
test.salesforce.com