CRM migration
Field-level mapping, validation, and rollback between Close and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Close
Source
Salesforce Sales Cloud
Destination
Compatibility
9 of 12
objects map 1:1 between Close and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Close to Salesforce Sales Cloud is a structural migration, not a record copy. Close collapses prospects into a unified Lead-Contact model, while Salesforce separates unqualified prospects (Lead), qualified buyers (Contact), and business entities (Account). We resolve that three-part split using Close's status field and contact-to-company relationship during the scoping phase, then pre-create the Salesforce schema — including Custom Objects, Record Types, and stage-probability maps — before any data loads. Activity history (calls, emails, SMS, tasks) must come through the Bulk API because Close's CSV export intentionally omits all activity data. Workflows on Growth and Scale plans do not migrate; we deliver a written inventory of every active Workflow for the customer's admin to rebuild in Salesforce Flow. Custom Activities and Custom Objects require a three-phase dependency pipeline that we execute in strict order to avoid validation errors at insert time.
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 Close 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.
Close
Lead
Salesforce Sales Cloud
Lead
1:1Close Leads with a status indicating they are not yet qualified to a company map directly to Salesforce Lead. Standard fields (name, email, phone, status, owner, created_at, updated_at) map 1:1. Close's lead_status property maps to Salesforce Lead Status picklist. Any Lead Custom Fields migrate as custom fields on the Salesforce Lead object. We use the Close API to export Leads rather than relying on Smart View CSV exports, which are only available from the Leads tab.
Close
Contact
Salesforce Sales Cloud
Contact
1:1Close Contacts map to Salesforce Contact. Each Close Contact carries a direct link to a Close Company record. We resolve this at migration time: if the Contact has an associated Company, we create the corresponding Salesforce Account first, then attach the Contact via AccountId. If the Contact has no Company, it becomes a Salesforce Contact without an Account. Email, phone, owner, and all Contact Custom Fields migrate 1:1.
Close
Company
Salesforce Sales Cloud
Account
1:1Close Company records map directly to Salesforce Account. Company name becomes Account Name, domain becomes Website, industry and address fields map to their Salesforce counterparts. Account is created before any Contact import so the AccountId lookup is satisfied at the moment of Contact insert. Close Company Custom Fields migrate as custom fields on the Salesforce Account object.
Close
Opportunity
Salesforce Sales Cloud
Opportunity
1:1Close Opportunities map to Salesforce Opportunity. The Opportunity amount, stage, expected close date, and owner migrate 1:1. The Close pipeline reference maps to a Salesforce Record Type that we configure before migration, with the pipeline stage mapping to the corresponding Sales Process stage. Closed-Lost and Closed-Won dates migrate to Salesforce's CloseDate and IsClosed fields.
Close
Pipeline
Salesforce Sales Cloud
Record Type + Sales Process
lossyEach Close pipeline becomes a Salesforce Record Type on Opportunity with a corresponding Sales Process that whitelists the relevant stage values. Stage probability percentages migrate from Close to Salesforce StageProbability, rounded to the nearest integer. Stage ordering is preserved by setting the picklist value order in the destination.
Close
Activity: Call
Salesforce Sales Cloud
Task (TaskSubtype = Call)
1:1Close call activity records migrate to Salesforce Task with TaskSubtype set to Call. Call disposition, duration, and recording URL migrate to custom Task fields. The WhoId points to the migrated Lead or Contact; the WhatId points to the related Opportunity or Account. ActivityDate is set to the original Close timestamp to preserve timeline ordering.
Close
Activity: Email
Salesforce Sales Cloud
EmailMessage + Task
1:1Close email activity records migrate to Salesforce EmailMessage (the email body and headers) linked to an Activity Task (the timeline entry). The WhoId on Task points to the migrated Lead or Contact. Email thread IDs are preserved to maintain conversation threading in Salesforce.
Close
Activity: SMS
Salesforce Sales Cloud
Task (TaskSubtype = SMS)
1:1Close SMS activity records migrate to Salesforce Task with TaskSubtype set to SMS. The message body and direction (inbound/outbound) migrate to custom Task fields. The WhoId points to the migrated Lead or Contact. SMS is not a standard Salesforce Task subtype; we configure a custom TaskSubtype value or use a custom field for SMS-specific data if the org does not have TaskSubtype enabled.
Close
Activity: Task
Salesforce Sales Cloud
Task
1:1Close task activity records map directly to Salesforce Task. Status, Priority, due date, and assigned owner migrate 1:1. Owner resolution uses the email-based User mapping established during owner reconciliation.
Close
Custom Activity Type
Salesforce Sales Cloud
Custom Object + Custom Fields
lossyClose Custom Activities are user-defined activity types with their own field schema. Migration requires a three-phase pipeline: first, we create a Salesforce Custom Object matching the Custom Activity Type name with a __c suffix. Second, we create all type-scoped custom fields on the new object. Third, we import the activity records against the pre-created schema. This ordering is strict — attempting to import before the schema is complete returns validation errors.
Close
Custom Object
Salesforce Sales Cloud
Custom Object
lossyClose Custom Objects are fully user-defined record types. Migration follows the same three-phase pipeline as Custom Activities: create the Salesforce Custom Object with matching API name, create all custom fields including lookup relationships to standard objects, then import the records. If a Custom Object has a lookup to another Custom Object, we sort by dependency and create the parent first.
Close
Attachment
Salesforce Sales Cloud
ContentDocument (ContentVersion + ContentDocumentLink)
1:1Attachments on Close Leads and Contacts are downloaded via the Close API as binary files. We re-upload them to Salesforce as ContentVersion records linked via ContentDocumentLink to the migrated Lead or Contact. The attachment filename and any associated notes migrate as the ContentDocument Description field. Large attachments (over 25 MB) require chunked upload via the Salesforce ChunkedFileProcessor.
| Close | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Activity: Call | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Activity: Email | EmailMessage + Task1:1 | Fully supported | |
| Activity: SMS | Task (TaskSubtype = SMS)1:1 | Fully supported | |
| Activity: Task | Task1:1 | Fully supported | |
| Custom Activity Type | Custom Object + Custom Fieldslossy | Fully supported | |
| Custom Object | Custom Objectlossy | Fully supported | |
| Attachment | ContentDocument (ContentVersion + ContentDocumentLink)1:1 | 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.
Close gotchas
CSV exports drop all activity history silently
Smart Views can only export from the Leads tab
Workflows gatekept behind Growth and Scale plans
Custom Activities require strict dependency ordering
Rate limits enforced per endpoint group
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 export audit
We audit the Close account across tier (Solo/Essentials/Growth/Scale), Custom Activities, Custom Objects, pipeline count, active Workflows, and activity volume. We request a JSON-format export confirmation from the customer to verify that engagement history will be present in the export. We pair this with a Salesforce edition decision: Essentials ($25/user) covers most migrations without custom objects; Professional ($75/user) is required for custom objects and advanced workflow; Enterprise ($165/user) is required for record-triggered Flow at scale, advanced reporting types, or territory management. The discovery output is a written migration scope document and Salesforce edition recommendation.
Schema design and dependency mapping
We design the destination schema in Salesforce. This includes provisioning Custom Objects (with __c API names matched to Close names), custom fields (type-mapped to Salesforce field types), Record Types (one per Close pipeline), Sales Processes (stage whitelist per Record Type), Page Layouts, and the Lead-Contact-Account split rule based on the customer's Close contact-to-company relationships. Schema is deployed to a Salesforce Sandbox first for validation. If the customer uses Custom Activities, we sequence the schema creation as a dependency chain before any data migration begins.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox using production-like data volume. The customer's RevOps lead reconciles record counts (Leads in, Contacts in, Accounts in, Opportunities in, Activities in), spot-checks 25-50 random records against the Close source, and signs off the schema and mapping before production migration begins. Any mapping corrections — field type mismatches, picklist value gaps, required field gaps — happen in Sandbox, not in production.
Owner reconciliation and User provisioning
We extract every distinct Close user referenced on Lead, Contact, Opportunity, and activity records and match by email against the Salesforce destination org's User table. Owners without a matching Salesforce User go to a reconciliation queue. The customer's Salesforce admin provisions missing Users (active or inactive depending on whether the original Close user is still active). Migration cannot proceed past this step because OwnerId references are required on most standard objects.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Close Companies), then Contacts (with AccountId resolved), then Leads (with status-based split applied), then Opportunities (with RecordTypeId and OwnerId resolved), then Custom Objects (sorted by interdependency), then Custom Activities (three-phase pipeline), then Activity history (Tasks, Events, EmailMessages via Bulk API 2.0), then Attachments. Each phase emits a row-count reconciliation report before the next phase begins. Bulk API 2.0 chunking handles large activity volumes with exponential backoff on API limit responses.
Cutover, validation, and Workflow rebuild handoff
We freeze writes in Close during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver the Workflow inventory document to the customer's admin team with a recommended Salesforce Flow equivalent for each active Workflow. We support a one-week hypercare window where we resolve reconciliation issues raised by the sales team. We do not rebuild Close Workflows as Salesforce Flow inside the migration scope; that is a separate engagement.
Platform deep dives
Close
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 Close 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
Close: Per endpoint group with a lower limit on write operations; 429 response includes rate_reset value; limits enforced at the organisation level across all API keys.
Data volume sensitivity
Close 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 Close to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Close 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 Close
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.