CRM migration
Field-level mapping, validation, and rollback between Zoho CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Zoho CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
15 of 17
objects map 1:1 between Zoho CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3-6 weeks
Try the reverse
Overview
Moving from Zoho CRM to Salesforce Sales Cloud is a structural schema migration. Zoho stores Accounts and Contacts in one unified Companies module with phone, website, and address fields duplicated across both entity types, while Salesforce splits these into separate Account and Contact objects with a lookup relationship that must be satisfied at import time. Zoho's subform data model (line items inside Quotes, Sales Orders, and Purchase Orders) requires separate API fetches to reconstruct as Salesforce child records. Zoho Blueprints are workflow configurations that cannot export as data; we document each one so your admin rebuilds equivalents in Salesforce Flow post-migration. We sequence the migration in dependency order (Users, Accounts, Contacts, Products, Deals/Opportunities, Activities) and resolve Owner IDs by matching Zoho user emails to Salesforce User records before record import begins. Workflows, Blueprints, and Zoho-specific automations do not migrate as code.
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.
Source platform
Zoho CRM platform overview
Scorecard, SWOT, gotchas, and pricing for Zoho CRM.
Destination platform
Salesforce Sales Cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Salesforce Sales Cloud.
Data migration guide
The complete Salesforce migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Zoho CRM migration guide
Understand the data you're exporting from Zoho CRM before mapping it.
Destination checklist
Salesforce migration checklist
Pre- and post-cutover tasks for moving onto Salesforce Sales Cloud.
Source checklist
Zoho CRM migration checklist
Exit checklist for unwinding your Zoho CRM setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Zoho 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.
Zoho CRM
Lead
Salesforce Sales Cloud
Lead
1:1Zoho Lead records map directly to Salesforce Lead. Standard fields (First_Name, Last_Name, Email, Phone, Company, Lead_Status, Lead_Source) map to Salesforce equivalents with identical names. Custom fields carry over with __c suffix appended. Lead_Status picklist values from Zoho are normalized to the Salesforce Lead Status picklist; any Zoho-specific statuses are mapped to the nearest Salesforce equivalent or flagged for the customer's admin to add as a custom value before migration.
Zoho CRM
Accounts (Companies)
Salesforce Sales Cloud
Account
1:1Zoho Accounts (internally labeled 'Companies') map to Salesforce Account. The Account_Name, Website, Industry, Annual_Revenue, and Number_of_Employees fields map directly. Zoho stores phone and address on the Account record directly; these map to Account.Phone and BillingAddress fields in Salesforce. Account is created before any Contact import so that the AccountId lookup is satisfied at Contact insert time.
Zoho CRM
Contacts
Salesforce Sales Cloud
Contact
1:1Zoho Contacts map to Salesforce Contact with a required lookup to the Account resolved via AccountId. Zoho stores phone and mailing address on the Contact record; these map to Contact.Phone and MailingAddress in Salesforce. We resolve the Contact-to-Account relationship by matching Zoho Contact.Account_Name to the Account.Name already imported, falling back to domain-based matching if exact name match fails.
Zoho CRM
Deals
Salesforce Sales Cloud
Opportunity
1:1Zoho Deals map to Salesforce Opportunity. The Deal_Name field maps to Opportunity.Name; Amount, Closing_Date, and Probability transfer directly. Zoho's pipeline and stage assignments map to Salesforce Opportunity.StageName, which we configure as part of the target schema design. Owner assignments are resolved via the email-based User mapping. Multi-pipeline Zoho configurations become Salesforce Record Types on Opportunity.
Zoho CRM
Pipeline
Salesforce Sales Cloud
Record Type + Sales Process
lossyEach Zoho pipeline becomes a Salesforce Record Type with a corresponding Sales Process that whitelists the relevant stage values. Stage probability percentages migrate from Zoho to Salesforce StageProbability. If Zoho has custom stage names (e.g., 'Proposal Sent', 'Negotiation'), we create equivalent Stage values in the Salesforce Sales Process and document any non-standard stage additions.
Zoho CRM
Products
Salesforce Sales Cloud
Product2
1:1Zoho Products map to Salesforce Product2 records. Product_Code maps from Zoho Product_Code to Product2.ProductCode. Standard Price Book entries are created during import with UnitPrice mapped from Zoho's Unit_Price field. Product2 is imported before any Quote or Sales Order migration to satisfy the Pricebook2 reference.
Zoho CRM
Quotes
Salesforce Sales Cloud
Quote
1:1Zoho Quotes map to Salesforce Quote, which is available from the Professional tier Salesforce edition. Quote headers (Account, Contact, Valid_Date, Description) map directly. Zoho line items inside Quotes are stored as subform child records; we issue separate API calls to Zoho to fetch all Quote_Subform rows, then insert them as Salesforce OpportunityLineItem records linked to the Opportunity derived from the Zoho Quote's related Deal.
Zoho CRM
Sales Orders
Salesforce Sales Cloud
Order
1:1Zoho Sales Orders map to Salesforce Order. Zoho's subform line items (Product, Quantity, Unit_Price, Discount) are fetched separately via the Zoho subform API endpoint and reconstructed as Salesforce OrderItems. The Account lookup is resolved via the Account mapping. Order.Status is set to Draft pending activation after all line items are committed.
Zoho CRM
Tasks
Salesforce Sales Cloud
Task
1:1Zoho Tasks map to Salesforce Task. Subject, Status, Priority, Activity_Date, and Description transfer directly. The linked-to record (WhatId) is resolved by matching the Zoho parent record type and ID to the equivalent Salesforce record. Owner assignments use the email-to-User mapping to resolve Salesforce OwnerId.
Zoho CRM
Events
Salesforce Sales Cloud
Event
1:1Zoho Events map to Salesforce Event with Start_DateTime, End_DateTime, and Location preserved. Zoho stores attendee information as related Contact records; these map to EventRelation records in Salesforce linked to the corresponding Contact. The linked-to record (WhatId) is resolved via parent record type matching against the imported Accounts, Contacts, or Deals.
Zoho CRM
Calls
Salesforce Sales Cloud
Task (TaskSubtype = Call)
1:1Zoho Call records map to Salesforce Task with TaskSubtype = Call. Call duration, disposition, and any caller notes transfer to custom Task fields. The WhoId on the Task points to the linked Contact or Lead; ActivityDate is set from the Zoho Call timestamp to preserve timeline ordering.
Zoho CRM
Notes
Salesforce Sales Cloud
Note
1:1Zoho Notes map to Salesforce Note records linked via ContentDocumentLink to the parent record (Lead, Contact, Account, or Opportunity). Note body migrates as rich text. We preserve the Note created-by and created-date metadata from Zoho. If the Note contains attachments, these are handled via the Zoho Attachments API and uploaded as ContentDocument records.
Zoho CRM
Attachments
Salesforce Sales Cloud
ContentDocument
1:1Attachments in Zoho are stored as separate file records linked to parent modules via lookup IDs. They do not appear in standard CSV exports and must be fetched via the Zoho Attachments API endpoint (GET /Attachments). We download each file, then upload to Salesforce as ContentVersion linked to the parent record via ContentDocumentLink. This requires the migration user to have Content workspace permissions in the Salesforce destination org.
Zoho CRM
Custom Modules
Salesforce Sales Cloud
Custom Object
1:1Zoho custom modules are discovered via GET /settings/fields and mapped to Salesforce custom objects with a __c API name suffix. We introspect the custom module's field metadata (field type, required, picklist values) before mapping. The destination Salesforce schema (custom object, custom fields, field types, validation rules) is deployed via metadata API or change set before any data import begins. Lookup relationships to standard objects (Accounts, Contacts) are resolved via the pre-imported parent record mapping.
Zoho CRM
Tags
Salesforce Sales Cloud
Multi-Select Picklist or Topic
lossyZoho Tags are cross-module label objects that export with the parent record in CSV. We parse tag arrays from Zoho's API response and reconstruct them in the destination using either a Salesforce multi-select picklist field (preferred if tag count is under 200) or Salesforce Topics with TopicAssignment records. The customer chooses the strategy during scoping.
Zoho CRM
Users
Salesforce Sales Cloud
User
1:1Zoho User records (full name, email, role, profile, active status) are extracted during discovery. We build an email-to-User-ID mapping table against the Salesforce destination org's User table. Any Zoho Owner ID referenced on a record is translated to the matching Salesforce User ID at import time. Inactive Zoho users are imported as inactive Salesforce Users or flagged in a reconciliation queue for the customer's admin to provision before record import begins.
Zoho CRM
Blueprints
Salesforce Sales Cloud
Salesforce Flow (rebuild)
1:1Zoho Blueprints are workflow automation configurations stored as process rules, not as data records. They cannot be exported from Zoho CRM via API or CSV. We run a Blueprint discovery scan during the scoping phase, document every Blueprint's trigger, stage progression conditions, and automated actions in a written handoff document, and recommend equivalent Salesforce Flow constructs for each. The customer's admin or a Salesforce partner rebuilds these post-migration; they are not part of the data migration scope.
| Zoho CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Accounts (Companies) | Account1:1 | Fully supported | |
| Contacts | Contact1:1 | Fully supported | |
| Deals | Opportunity1:1 | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Products | Product21:1 | Fully supported | |
| Quotes | Quote1:1 | Fully supported | |
| Sales Orders | Order1:1 | Fully supported | |
| Tasks | Task1:1 | Fully supported | |
| Events | Event1:1 | Fully supported | |
| Calls | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Notes | Note1:1 | Fully supported | |
| Attachments | ContentDocument1:1 | Mapping required | |
| Custom Modules | Custom Object1:1 | Mapping required | |
| Tags | Multi-Select Picklist or Topiclossy | Mapping required | |
| Users | User1:1 | Mapping required | |
| Blueprints | Salesforce Flow (rebuild)1: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.
Zoho CRM gotchas
API access requires Professional tier or above
Subform fields do not export cleanly via CSV
API credit consumption is non-linear
Export download links expire in 7 days
Owner (User) assignments require pre-mapped user IDs
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 source Zoho CRM org across plan tier, active modules, custom fields, subform usage (Quotes, Sales Orders, Purchase Orders), Blueprints, and Owner assignments. We inventory every active Blueprint and document its trigger and actions for the rebuild handoff. We run a picklist gap analysis comparing Zoho field values against the target Salesforce org's active picklists and document any additions required. The discovery output is a written migration scope document, a field-level mapping table, and a Salesforce edition recommendation based on the customer's user count and required features.
Schema design and sandbox provisioning
We design the destination schema in a Salesforce Sandbox (Full Copy or Developer Pro). This includes provisioning custom objects and fields (with __c API names), Record Types (one per Zoho pipeline), Sales Processes (stage whitelist per Record Type), Page Layouts, and the Salesforce Lead Status and Industry picklist values required to accept the migrating data. Any missing picklist values are added by the customer's Salesforce admin before the Sandbox migration begins. Schema is validated via Salesforce metadata API or change set before any data moves.
User and Owner reconciliation
We extract every distinct Zoho user referenced as an Owner on any record and match by email against the Salesforce destination org's User table. Inactive Zoho users are held in a reconciliation queue. The customer's Salesforce admin provisions any missing Salesforce Users and confirms whether departed Zoho users should be created as inactive Salesforce Users or reassigned to an active owner. Migration cannot proceed past this step because OwnerId references are required on most standard Salesforce objects.
Sandbox migration and reconciliation
We run a full migration into the Salesforce Sandbox using production-like data volume. The customer's RevOps lead reconciles record counts (Accounts in, Contacts in, Leads in, Opportunities in, Activity records in), spot-checks 25-50 random records against the Zoho source for field-level accuracy, and validates that picklist values imported correctly. Any mapping corrections, missing picklist values, or schema adjustments happen here before the production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Zoho Companies), Contacts (with AccountId resolved), Leads, Products and Pricebook entries (required for Quote and Sales Order line items), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Quotes and their subform line items (fetched separately via Zoho API and inserted as OpportunityLineItem records), Sales Orders and their line items, Activity history (Tasks, Events, Calls, Notes via Bulk API 2.0), Attachments (via Zoho Attachments API uploaded to Salesforce ContentVersion), Custom Modules (last, after standard object lookups are satisfied). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and Blueprint rebuild handoff
We freeze Zoho writes 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 Blueprint inventory document to the customer's admin team, mapping each Zoho Blueprint to recommended Salesforce Flow equivalents. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's sales team. We do not rebuild Zoho Blueprints as Salesforce Flow inside the migration scope; that is a separate engagement.
Platform deep dives
Zoho CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Zoho CRM and Salesforce Sales Cloud.
Object compatibility
1 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
Zoho CRM: Starter: 500 req/min | Professional: 2,500 req/min | Enterprise: 10,000 req/min, plus a credit-based system for complex queries (1–3 credits per COQL fetch).
Data volume sensitivity
Zoho CRM 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 Zoho CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Zoho 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 Zoho 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.