CRM migration
Field-level mapping, validation, and rollback between CRM Service and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
CRM Service
Source
Salesforce Sales Cloud
Destination
Compatibility
8 of 17
objects map 1:1 between CRM Service and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from CRM Service to Salesforce is a platform-to-platform migration with a significant schema gap. CRM Service uses ServiceNow's NOW platform with a unified table data model where the same base table can serve multiple record types; Salesforce uses a relational object model with standard objects (Account, Contact, Case) and optional custom objects. We flatten the ServiceNow table hierarchy during extraction, split unified person records into Salesforce Contact and Lead objects where appropriate, and map the entire field set before loading. Case records (Issues in CRM Service) migrate to Salesforce Case with priority, status, and contact linkage preserved. Custom tables in CRM Service become Salesforce custom objects, pre-provisioned with their schema including all custom fields, reference fields, and table-level ACLs. Workflows, Flow Designer automations, and ServiceNow scripted business rules do not migrate; we deliver a written automation inventory for the customer's Salesforce admin to rebuild in Flow. Attachment migration requires a separate export path via the ServiceNow Attachments table and re-upload to Salesforce ContentDocument.
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 CRM Service 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.
CRM Service
Company
Salesforce Sales Cloud
Account
1:1CRM Service Company records map to Salesforce Account. The company_name field maps to Account Name, and any additional CRM Service fields (industry, website, location) map to standard Account fields. We use Company sys_id as the external ID during import to enable subsequent Contact lookups without relying on name deduping.
CRM Service
Contact
Salesforce Sales Cloud
Contact
1:1CRM Service Contact records map to Salesforce Contact with AccountId resolved via the Company lookup. Email becomes Contact Email, phone becomes Phone, and first_name/last_name map to FirstName and LastName. We flag duplicate Contact creation when an incoming Contact email matches an existing Salesforce Contact and surface the conflict to the customer's admin for merge or skip decision.
CRM Service
User (in CRM Service person table)
Salesforce Sales Cloud
Lead
1:manyCRM Service's unified person table holds both internal users and external contacts with a role discriminator. External persons with a customer role and no active Account association map to Salesforce Lead. The original person role is preserved in a custom field crm_service_original_role__c on Lead for audit. Internal users map to Salesforce User via the User mapping below.
CRM Service
Issue / Case
Salesforce Sales Cloud
Case
1:1CRM Service Issues map to Salesforce Case. issue_type maps to Case Origin, priority maps to Case Priority, and state maps to Case Status. The assigned_to reference resolves to a Salesforce User via the User mapping; the contact reference resolves to the Salesforce Contact via email match. We recommend excluding resolved Issues older than 24 months unless the customer specifically requires the full archive.
CRM Service
Task
Salesforce Sales Cloud
Task
1:1CRM Service Tasks map to Salesforce Task with Status, Priority, and due_date preserved. Task assignment migrates by resolving the assigned_to reference to Salesforce OwnerId via the User mapping. Closed tasks and open tasks both migrate by default unless the customer scopes only completed work.
CRM Service
Knowledge Article
Salesforce Sales Cloud
Article (Knowledge Object)
1:1CRM Service Knowledge records map to Salesforce Knowledge if the destination org includes the Knowledge object (available in Professional and above with a Knowledge add-on). Article titles, text, and category assignments migrate as KnowledgeArticleVersion and KnowledgeArticleDataCategory records. Without Knowledge enabled, articles migrate as Salesforce Chatter Files or custom Article objects documented for manual handoff.
CRM Service
Custom Table (ServiceNow Studio)
Salesforce Sales Cloud
Custom Object (__c)
1:1Any custom table created in ServiceNow Studio exports with its table name as the object API name and all columns as fields. We pre-create the Salesforce custom object with a matching __c API name, all custom fields (with Salesforce-compatible types), and lookup relationships to standard objects before data load. Table-level ACLs from ServiceNow map to Salesforce field-level security and sharing rules configured by the customer's admin.
CRM Service
Attachment
Salesforce Sales Cloud
ContentDocument + ContentVersion
1:1CRM Service Attachments stored in theAttachments table are exported to a staging location with their parent table and sys_id references. We re-upload each file as a Salesforce ContentVersion record and link it via ContentDocumentLink to the parent Salesforce record (Account, Contact, Case, or custom object) resolved via the original sys_id cross-reference map. Large attachments (over 35 MB per file) are chunked and uploaded via the Bulk API with binary handling.
CRM Service
User
Salesforce Sales Cloud
User
1:1CRM Service User records map to Salesforce User by email match. Active users get Active = true; inactive users default to Active = false unless the customer specifies archiving. We resolve ServiceNow roles and groups to Salesforce Profiles and Roles during scoping and recommend the customer provision any net-new Salesforce Users before the production migration phase.
CRM Service
Group
Salesforce Sales Cloud
Queue
lossyCRM Service Groups map to Salesforce Queues. We create a Queue per ServiceNow Group during schema setup, and migrate Group membership by mapping each Group Member's User to the corresponding Salesforce User in that Queue. Queues for Cases and Leads are created separately from those for Opportunities if the customer uses both record types.
CRM Service
Department
Salesforce Sales Cloud
Division or Custom Field
lossyServiceNow Departments migrate as a custom Division picklist on User or as a custom field on Account depending on whether the customer uses department for organizational reporting. We recommend the custom field approach for most migrations since Salesforce does not have a native Department object.
CRM Service
SLA Definition
Salesforce Sales Cloud
Entitlement or Custom Field
lossyCRM Service SLA definitions have no direct Salesforce equivalent in Sales Cloud. We map SLA names and thresholds to a custom Entitlement Sla field on Case or a custom Case field tracking first response and resolution deadlines. The customer's Salesforce admin configures Salesforce Entitlements (Service Cloud feature) if SLA enforcement is required.
CRM Service
Incident / Problem / Change
Salesforce Sales Cloud
Case
lossyCRM Service Incident, Problem, and Change records all map to Salesforce Case with a Record Type discriminator so that each ServiceNow record type maps to a separate Case Record Type. Incident becomes Case Record Type = Incident, Problem becomes Case Record Type = Problem, and Change becomes Case Record Type = Change. This preserves the operational classification while consolidating into a single Salesforce object.
CRM Service
Service Catalog Item
Salesforce Sales Cloud
Custom Object or Record Type
lossyCRM Service Catalog items are configuration records without a Salesforce standard equivalent. We map catalog items to a custom object (Service_Catalog_Item__c) with fields for item name, description, category, and price. The customer rebuilds the catalog UX in Salesforce Experience Cloud or a custom Visualforce/Lightning page post-migration.
CRM Service
Variable
Salesforce Sales Cloud
Custom Field
lossyCRM Service Variables (catalog variables, record producer fields) map to custom fields on the Service Catalog Item custom object or on the parent Case record depending on variable scope. Variable types (string, boolean, reference, choice) map to equivalent Salesforce field types.
CRM Service
Configuration Item (CMDB)
Salesforce Sales Cloud
Custom Object or Asset
lossyCRM Service CMDB Configuration Items do not have a standard Salesforce equivalent outside of Service Cloud's Asset object. For most sales-oriented migrations, we recommend mapping active Configuration Items to Salesforce Asset records linked to Account, and archiving stale CI records. If the customer requires the full CMDB, we create a custom Configuration_Item__c object.
CRM Service
Survey / Customer Satisfaction
Salesforce Sales Cloud
Custom Field on Case
lossyCRM Service survey responses map to a custom CSAT_Score__c field on Case or to a related custom object (Survey_Response__c) linked to Case. Survey questions do not migrate as structured forms; we deliver the response data as records and a form rebuild recommendation for the customer's admin.
| CRM Service | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Company | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| User (in CRM Service person table) | Lead1:many | Fully supported | |
| Issue / Case | Case1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Knowledge Article | Article (Knowledge Object)1:1 | Fully supported | |
| Custom Table (ServiceNow Studio) | Custom Object (__c)1:1 | Fully supported | |
| Attachment | ContentDocument + ContentVersion1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Group | Queuelossy | Fully supported | |
| Department | Division or Custom Fieldlossy | Fully supported | |
| SLA Definition | Entitlement or Custom Fieldlossy | Fully supported | |
| Incident / Problem / Change | Caselossy | Fully supported | |
| Service Catalog Item | Custom Object or Record Typelossy | Fully supported | |
| Variable | Custom Fieldlossy | Fully supported | |
| Configuration Item (CMDB) | Custom Object or Assetlossy | Fully supported | |
| Survey / Customer Satisfaction | Custom Field on Caselossy | Fully 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.
CRM Service gotchas
API rate limits vary by edition without public documentation
Data Export frequency limited by edition tier
Custom object __c suffix causes field name mismatches in exports
Automations and flows do not migrate between platforms
Multi-select picklist values may exceed destination field limits
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 source audit
We audit the CRM Service instance across all active tables, custom tables created in ServiceNow Studio, workflow and flow definitions, user list, and attachment volume. We extract the full schema for each table including reference fields, choice lists, and any conditional visibility rules. We pair this with a destination Salesforce edition decision: Professional ($80/user) covers most migrations without complex custom objects; Enterprise ($165/user) is required for record-triggered Flow at scale, advanced reporting types, or bulk API with higher throughput; Unlimited ($330/user) only if 24x7 support and unlimited custom apps are required. The discovery output is a written migration scope, a table-to-object mapping matrix, and a Salesforce edition recommendation.
Schema design and cross-reference table build
We design the destination Salesforce schema. This includes provisioning all standard objects with appropriate page layouts, Record Types (one per ServiceNow record type if mapping to Case), and custom fields for any unmapped ServiceNow columns. We create all custom __c objects to match ServiceNow custom table names and pre-define every custom field with Salesforce-compatible types. We build the cross-reference table mapping each ServiceNow sys_id to the corresponding Salesforce record ID so that reference fields can resolve at migration time. Schema is validated in a Salesforce Sandbox before any production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using a representative data sample. The customer's Salesforce admin and a data steward reconcile record counts across all objects, spot-check 30-50 records against the CRM Service source, and validate that reference fields (AccountId on Contact, ContactId on Case, OwnerId on all objects) resolve correctly. Any mapping corrections are applied in the next sandbox iteration until reconciliation passes. No production data moves until the sandbox sign-off is received.
User reconciliation and Salesforce User provisioning
We extract every distinct CRM Service user referenced as assigned_to, opened_by, or contact on any migrating record. We match by email against the Salesforce destination org's User table. Any CRM Service user without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before production migration. Inactive CRM Service users are mapped to inactive Salesforce Users unless the customer specifies archiving. Owner lookups on records cannot resolve until all owner Users are provisioned.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from CRM Service Companies), Users (validated, not migrated), Contacts (with AccountId resolved via cross-reference), Leads (from external persons in the unified person table), Cases (from Issues and Incidents with ContactId and OwnerId resolved), Tasks, Custom Object records, and Attachments (ContentVersion re-upload with ContentDocumentLink). Each phase emits a row-count reconciliation report before the next phase begins. We use the Salesforce Bulk API with batch chunking, exponential backoff on rate-limit responses, and validation rule bypass coordinated with the customer's admin.
Cutover, delta sync, and automation rebuild handoff
We freeze CRM Service record writes during cutover, run a final delta migration capturing any records modified during the migration window, then mark Salesforce as the system of record. We deliver the automation inventory document listing every active CRM Service workflow, Flow Designer flow, and client script with a recommended Salesforce Flow equivalent and estimated rebuild hours. We support a one-week hypercare window where we resolve any record linkage issues or data quality flags raised by the customer's team. We do not rebuild CRM Service automations as Salesforce Flow within the migration scope; that work is handled by the customer's Salesforce admin or a certified implementation partner as a separate engagement.
Platform deep dives
CRM Service
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 CRM Service and Salesforce Sales Cloud.
Object compatibility
3 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
CRM Service: Varies by edition and license type; not publicly documented with specific numbers.
Data volume sensitivity
CRM Service exposes a bulk API — large-volume migrations stream efficiently.
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 CRM Service to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your CRM Service 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 CRM Service
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.