CRM migration

Migrate from CRM Service to Salesforce Sales Cloud

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 logo

CRM Service

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

47%

8 of 17

objects map 1:1 between CRM Service and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

CRM Service logo

CRM Service

What's pushing teams away

  • Requires dedicated Salesforce administrator or ongoing consultant engagement for configuration changes that other CRMs handle through self-service
  • Per-user pricing compounds significantly as teams grow, with essential features like workflow automation and advanced reporting gated behind Enterprise and above
  • Complex data model with multiple object types and custom fields creates migration complexity and data cleaning requirements before switching platforms
  • Implementation costs add approximately 35% to base subscription price when accounting for professional services, training, and change management
  • Limited features in lower tiers force organizations into expensive upgrades when growth requires capabilities like advanced pipeline management or AI-powered insights

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How CRM Service objects map to Salesforce Sales Cloud

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

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

CRM 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)

maps to

Salesforce Sales Cloud

Lead

1:many
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Case

1:1
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Task

1:1
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Article (Knowledge Object)

1:1
Fully supported

CRM 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)

maps to

Salesforce Sales Cloud

Custom Object (__c)

1:1
Fully supported

Any 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

maps to

Salesforce Sales Cloud

ContentDocument + ContentVersion

1:1
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Queue

lossy
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Division or Custom Field

lossy
Fully supported

ServiceNow 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

maps to

Salesforce Sales Cloud

Entitlement or Custom Field

lossy
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Case

lossy
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Custom Object or Record Type

lossy
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Custom Field

lossy
Fully supported

CRM 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)

maps to

Salesforce Sales Cloud

Custom Object or Asset

lossy
Fully supported

CRM 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

maps to

Salesforce Sales Cloud

Custom Field on Case

lossy
Fully supported

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

Gotchas + challenges

What specifically takes care here

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 logo

CRM Service gotchas

High

API rate limits vary by edition without public documentation

Medium

Data Export frequency limited by edition tier

Medium

Custom object __c suffix causes field name mismatches in exports

High

Automations and flows do not migrate between platforms

Low

Multi-select picklist values may exceed destination field limits

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • ServiceNow's unified table model requires flattening before Salesforce import

    CRM Service uses ServiceNow's NOW platform where a single table can hold multiple record types distinguished by a type or class field. For example, the same person table holds users, customers, and employees. We extract records by running targeted queries with type filters, then map each subset to the corresponding Salesforce standard object (Contact, Lead, or User). Skipping the type filtering results in Salesforce Leads without a proper Account association or duplicate Contact records that Salesforce will reject on insert. We define the type-filter rules during scoping and apply them as the first transform step in every migration run.

  • Workflows, Flow Designer flows, and scripted business rules do not migrate

    CRM Service workflows, Flow Designer automations, and client-side scripts are ServiceNow-native configuration artifacts that cannot export to Salesforce. We document every active workflow, flow, and script during discovery and deliver a written automation inventory with trigger conditions, actions, and a recommended Salesforce Flow equivalent. The customer's admin or a certified Salesforce consultant rebuilds them post-migration. This rebuild work typically requires one to three hours per complex workflow and is scoped separately from the data migration.

  • Attachment export requires a separate migration path from CRM records

    CRM Service stores file attachments in theAttachments table linked by table name and sys_id. This is a separate data path from the CRM record extract. We export attachments to a staging location with their parent record cross-reference map, then upload them as Salesforce ContentVersion records linked via ContentDocumentLink to the target Salesforce record. For instances with over 50,000 attachments, we recommend a staged upload with content chunking to stay within Salesforce storage limits and API timeout constraints.

  • ServiceNow reference fields do not use external IDs by default

    CRM Service reference fields point to other records by sys_id internally but expose as human-readable names in exports. When importing into Salesforce, we must resolve every reference field to the corresponding Salesforce external ID (Account external ID on Contact, User email on OwnerId, Case ContactId on Contact) before insert. We build a cross-reference table during extraction that maps each ServiceNow sys_id to its Salesforce record ID so that all lookups resolve correctly at migration time rather than as a post-processing step.

  • Custom tables require Salesforce schema pre-creation before data load

    ServiceNow Studio allows schema-on-write: a new table can be created and data inserted without pre-defining every column. Salesforce requires all custom fields to be created in the Setup UI or via metadata API before records are inserted. We run a schema discovery pass on the source CRM Service instance to enumerate every custom table and its column set, then pre-create the matching custom objects and fields in Salesforce Sandbox before the production migration. Any column discovered during extraction that was not present in the source schema snapshot is flagged and handled as a change request before the next migration run.

Migration approach

Six steps for a successful CRM Service to Salesforce Sales Cloud data migration

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

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

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

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

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

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

Context on both ends of the pair

CRM Service logo

CRM Service

Source

Strengths

  • Comprehensive standard object coverage including Accounts, Contacts, Opportunities, Leads, Campaigns, and Cases
  • Enterprise-grade API with bulk operations, webhooks, and OAuth 2.0 authentication across all editions
  • Highly customizable data model allowing unlimited custom objects with independent schemas and relationships
  • Large ecosystem of certified administrators, consultants, and implementation partners available for complex deployments
  • Advanced reporting and forecasting capabilities available at Enterprise and above tiers including Einstein AI

Weaknesses

  • Per-user pricing model scales linearly, making large teams expensive relative to flat-rate alternatives
  • Essential features gated behind higher tiers: workflow automation, approval processes, and advanced analytics require Enterprise minimum
  • Implementation costs add significant overhead: approximately 35% above subscription for professional services and training
  • Requires dedicated admin or consultant for configuration changes; self-service customization has practical limits without expertise
  • Custom objects and fields create migration complexity when switching platforms, often requiring field-by-field mapping
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across CRM Service and Salesforce Sales Cloud.

  • Object compatibility

    B

    3 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    CRM Service: Varies by edition and license type; not publicly documented with specific numbers.

  • Data volume sensitivity

    A

    CRM Service exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your CRM Service to Salesforce Sales Cloud migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about CRM Service to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during CRM Service to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between five and eight weeks for accounts under 15,000 Contacts, 8,000 Cases, and no custom tables. Migrations with custom tables, large historical Case archives, attachment volumes exceeding 50,000 files, or multi-instance ServiceNow environments move to twelve to twenty weeks because of schema normalization, ContentDocument migration, and ACL translation work. The most time-intensive phase is typically the sandbox validation and reconciliation step, where mapping corrections are applied before any production data moves.

Adjacent paths

Related migrations to explore

Ready when you are

Move from CRM Service.
Land in Salesforce Sales Cloud, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day