CRM migration
Field-level mapping, validation, and rollback between Concord CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Concord CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
10 of 12
objects map 1:1 between Concord CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Concord CRM to Salesforce is a structural migration that restructures Concord's flat Contact-Company model into Salesforce's Lead-Contact-Account hierarchy. Concord stores contacts with a company_id foreign key pointing to a flat company list; Salesforce separates unqualified prospects into Leads, qualified contacts into Contacts attached to Accounts, and uses Lookups instead of foreign key IDs. We resolve the Contact split during scoping, pre-create the Account hierarchy, and preserve the Concord company_id association for audit. Concord's workflow automations do not fire during data import, so we deliver a written inventory of every active automation for manual rebuild in Salesforce Flow. File attachments in Concord CRM cannot be exported through the standard export tool or REST API, so they are excluded from migration scope and flagged for manual retrieval. We migrate Contacts, Companies, Deals, Products, Activities, custom fields, and historical timestamps. We do not migrate Workflows, Sequences, automations, Reports, or Forms as code, and we do not provide post-migration admin support, training, or workflow rebuild as standard scope.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Concord CRM object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Concord CRM
Contact
Salesforce Sales Cloud
Lead or Contact (split required)
1:manyConcord CRM stores contacts with a flat company_id foreign key pointing to a Companies record. Salesforce does not have a direct equivalent of this flat model. We split Concord contacts into Salesforce Leads and Contacts based on a rule defined during scoping: contacts without an assigned company or with a prospect status map to Lead; contacts with an assigned company map to Contact and get linked to an Account via AccountId Lookup. The original Concord company_id is preserved in a custom field concord_company_id__c on the Contact for reconciliation audit. Concord does not have a separate Lead object, so the split is a pure transformation at migration time rather than a conversion.
Concord CRM
Company
Salesforce Sales Cloud
Account
1:1Concord Companies map directly to Salesforce Account. Company name becomes Account Name, domain becomes Website, and industry fields map by type. Concord's company_id is preserved as a custom field concord_company_id__c on Account to support the Contact lookup resolution during Contact migration. Accounts must be imported before Contacts because the Contact migration requires AccountId to be resolved before insert. If Concord contacts reference a company_id with no matching Concord Company record, we hold those contacts in a reconciliation queue for the customer to decide: create a placeholder Account or convert those contacts to Leads.
Concord CRM
Deal
Salesforce Sales Cloud
Opportunity
1:1Concord Deals map to Salesforce Opportunity. The Concord dealstage value maps to a Salesforce StageName that we configure during pipeline setup. Closed-Lost reason and Closed-Won reason from Concord custom fields become Salesforce Loss Reason and Won Reason fields. Concord's assigned user maps to Salesforce OwnerId via email matching against the destination User table. If Concord supports multiple pipelines (enterprise extension), each pipeline maps to a Salesforce Opportunity Record Type with its own Sales Process whitelist.
Concord CRM
Product
Salesforce Sales Cloud
Product2
1:1Concord Products map to Salesforce Product2 records with Standard Price Book entries created during migration. Concord SKU (hs_sku equivalent) maps to ProductCode. Price, name, and description migrate directly. Product2 must be created and a Pricebook2 activated before any OpportunityLineItem records reference them.
Concord CRM
Activities: Calls
Salesforce Sales Cloud
Task (TaskSubtype = Call)
1:1Concord call activities map to Salesforce Task with TaskSubtype set to Call. Call disposition, duration, and notes preserve in custom Task fields. The linked resource type and resource_id from Concord determine the WhatId on Task: if the Concord call was linked to a Deal, the WhatId points to the migrated Opportunity; if linked to a Contact or Company, the WhatId resolves after Contact and Account migration completes. ActivityDate is set to the original Concord timestamp to preserve timeline ordering.
Concord CRM
Activities: Meetings
Salesforce Sales Cloud
Event
1:1Concord meeting activities map to Salesforce Event. StartDateTime, EndDateTime, and Location migrate directly. Attendee information from Concord's linked resources resolves to EventRelation records pointing at the migrated Contact, Lead, or User records. If the Concord meeting was linked to a Deal, WhatId points to the migrated Opportunity after Opportunity migration completes.
Concord CRM
Activities: Tasks
Salesforce Sales Cloud
Task
1:1Concord task activities map to Salesforce Task with Status, Priority, and ActivityDate preserved. Task subject and body migrate as-is. The task assignment resolves by matching the Concord assigned user to the migrated Salesforce OwnerId via User email lookup. Concord's linked resource type and ID determine WhatId resolution, which is deferred until Account and Opportunity migration complete.
Concord CRM
Activities: Notes
Salesforce Sales Cloud
Note
1:1Concord notes with a linked resource type and ID map to Salesforce Note records linked via ContentDocumentLink to the parent Lead, Contact, Account, or Opportunity. Note body migrates as rich text. The parent record lookup resolves after the relevant object migration completes, using the concord_resource_type and concord_resource_id fields to route each note to the correct destination record.
Concord CRM
Custom Fields
Salesforce Sales Cloud
Custom Fields
1:1Concord CRM custom fields use UUID as the API key in request payloads, with different payload formats for boolean, date, select, text, and number field types. We map each Concord custom field to a Salesforce custom field of equivalent type: text fields become Text(255) or Long Text Area, dates become Date, selects become Picklist or Multi-Select Picklist, numbers become Number. Custom field API names in Concord may not match Salesforce __c naming conventions, so we normalize during schema design. Concord custom fields are discovered during scoping and the destination custom fields are pre-created in Salesforce before any data import.
Concord CRM
Users
Salesforce Sales Cloud
User
1:1Concord CRM Users export via REST API with email, name, and role. We match by email against the Salesforce destination org's User table. Any Concord User without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before record migration resumes. Role permissions from Concord (such as export permission) do not map to Salesforce profiles or permission sets; we document them as a manual rebuild item for the customer's admin.
Concord CRM
Pipeline Stages
Salesforce Sales Cloud
Opportunity Stage
lossyConcord CRM stores deal stages as values attached to the deal pipeline. We map each Concord stage name to a Salesforce StageName value within a Salesforce Sales Process. Stage probability percentages migrate from Concord to Salesforce StageProbability. Multiple Concord pipelines (if used via enterprise extension) map to Salesforce Opportunity Record Types with separate Sales Process configurations per Record Type.
Concord CRM
Attachments
Salesforce Sales Cloud
None
1:1Concord CRM does not include a document attachment export feature in the standard export tool or REST API. Attachments stored in the application file system (storage/app directory) cannot be retrieved through the documented export interface and require manual file system access via the hosting server. File attachments are excluded from migration scope and flagged in the documentation for manual retrieval post-migration. If the customer requires attachment migration, a separate file system export step coordinated with the Concord hosting administrator is required outside standard migration scope.
| Concord CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split required)1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Product | Product21:1 | Fully supported | |
| Activities: Calls | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Activities: Meetings | Event1:1 | Fully supported | |
| Activities: Tasks | Task1:1 | Fully supported | |
| Activities: Notes | Note1:1 | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| Users | User1:1 | Fully supported | |
| Pipeline Stages | Opportunity Stagelossy | Mapping required | |
| Attachments | None1:1 | Not supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Concord CRM gotchas
Workflows do not fire during data import
Self-hosted data export requires role permission
API pagination cap at 100 records per page
Domain transfer requires full server migration
CSRF headers cause API auth failures
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the Concord CRM instance across record counts (Contacts, Companies, Deals, Products, Activities), custom field inventory, active workflow configurations, and user roster. We confirm export permissions are assigned to the API token user (Concord requires role-based export permission) and validate API connectivity with Bearer token auth. We design the Salesforce destination schema including custom fields, Account-Contact hierarchy structure, Opportunity Record Types, Sales Processes, and the Contact-to-Lead split rule. The discovery output is a written migration scope document covering record counts, field mapping, pipeline configuration, and automation inventory.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-equivalent data volume. The customer's RevOps lead reconciles record counts against the Concord CRM source (Accounts in, Contacts in, Leads in, Opportunities in, Activities in), spot-checks 25-50 random records for field-level accuracy, and validates the Contact-Account association. The split rule for contacts without company_id is validated here. Sign-off on the sandbox migration must occur before production migration begins; any mapping corrections are made in the Sandbox, not in production.
Schema pre-creation in Salesforce
We pre-create all destination Salesforce custom fields, Opportunity Record Types, Sales Processes, and page layouts before any data import begins. Custom fields use __c suffixes per Salesforce convention, and field types are mapped from Concord's field types (boolean to Checkbox, date to Date, select to Picklist, text to Text). If Concord uses custom objects or extended entities, we provision Salesforce custom objects of matching API names with their own field sets and lookup relationships. Schema is deployed to Sandbox during validation and to Production during the cutover window.
Owner and user reconciliation
We extract every distinct Concord user referenced on Contact, Company, Deal, and Activity records and match by email against the Salesforce destination org's User table. Concord roles and permissions do not map to Salesforce profiles or permission sets; we document the role structure for manual rebuild. Owners without a matching Salesforce User are held in a reconciliation queue. The customer's Salesforce admin provisions any missing Users before record import resumes, because OwnerId references are required on most standard objects at insert time.
Production migration in dependency order
We run production migration in record dependency order: Accounts (from Concord Companies, first because Contacts reference them), Leads and Contacts (with AccountId resolved for Contacts, concord_company_id preserved in a custom field for audit), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Products and Pricebook entries (if migrating product-linked Deals), Activities (Tasks, Events, Notes via Bulk API 2.0 with chunking and parent-record lookup resolution), Custom fields last (all standard object imports complete to avoid field-not-found errors). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation handoff
We freeze Concord CRM writes during the cutover window, run a final delta migration of any records created or modified during the migration, then enable Salesforce as the system of record. We deliver the Concord workflow inventory document to the customer's admin team with recommended Salesforce Flow equivalents. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's sales team. We do not rebuild Concord Workflows as Salesforce Flow inside the migration scope; that is a separate engagement. We do not migrate Reports, Forms, or Landing Pages; these are documented for manual rebuild.
Platform deep dives
Concord CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Concord CRM and Salesforce Sales Cloud.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Concord CRM: Per-minute limits documented in X-RateLimit-Limit and X-RateLimit-Remaining response headers; exact values vary and are not publicly specified.
Data volume sensitivity
Concord CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Concord CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Concord CRM to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Concord CRM
Other ways to arrive at Salesforce Sales Cloud
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.