Phase 1: Audit before you touch anything

Every failed CRM data migration I have been called in to rescue skipped the same step: nobody documented what the old system actually did. Before touching data, I spend three to five days producing an inventory — every object and record count, every custom field with its fill rate, every workflow, flow, and Apex trigger, every integration and its direction, every report anyone opened in the last quarter, and every user with their real usage level.

The fill-rate analysis is the highest-value hour of the entire project. Export each object's fields and calculate what percentage of records actually populate them. In a typical SME org, a third of custom fields sit below 10 percent fill. Those fields represent abandoned initiatives, and they do not migrate. A 70-person staffing agency I moved had 214 custom fields on Contact; we migrated 61. Nobody has ever asked where the other 153 went.

This phase ends with a written scope document: what migrates, what gets archived as CSV exports, and what is deliberately rebuilt differently. Get it signed by the sales director, not just the IT contact. The signature matters later, when someone asks in week six why a pet field is missing.

Phase 2: Field mapping and object translation

Salesforce and Zoho CRM objects mostly correspond one-to-one — Leads to Leads, Accounts to Accounts, Opportunities to Deals, Cases to Zoho Desk tickets — but the differences hide in the details. Salesforce record types usually become Zoho layouts or a picklist. Opportunity stages need explicit mapping because your pipeline should be redesigned, not photocopied. Person Accounts, if you use them, need a deliberate decision since Zoho handles B2C contacts differently.

Build the mapping as a spreadsheet with four columns: source object and field, target object and field, transformation rule, and owner sign-off. Transformation rules are where the thinking lives — date formats, picklist value consolidation, splitting a text field that reps abused into structured data. I mark every row as direct, transformed, or dropped. That spreadsheet later becomes both my import configuration and my validation test plan, which is why I refuse to keep the mapping only in someone's head.

Two traps deserve special mention. First, Salesforce stores state and country as controlled picklists if enabled; Zoho needs matching values or imports will silently create variants. Second, currency handling differs — multi-currency orgs need their exchange rate history exported, because Zoho will apply current rates to historical deals unless you migrate closed amounts as fixed values.

Phase 3: Clean before you load

A migration is the cheapest data cleaning opportunity you will ever get, because you are exporting everything to CSV anyway. Deduplicate accounts and contacts before import, not after — Zoho's built-in deduplication helps, but merging 4,000 duplicates inside a live CRM is far more painful than removing them in a spreadsheet. I use domain matching for accounts and email matching for contacts as the first pass, then manual review for the ambiguous tail.

Decide your history horizon deliberately. My default recommendation: migrate all accounts and contacts, open deals in full, closed deals from the last three years with core fields only, and activities from the last 12 to 18 months. Older material goes into an archived export stored where finance can reach it. Loading ten years of dead tasks into a fresh CRM buys you nothing except slower searches and a cluttered first impression for the very users you are trying to win over.

Phase 4: The import itself

Order matters because relationships must resolve. My sequence: users first, then accounts, contacts, deals, activities, notes, and finally attachments. Zoho crm import wizards handle the standard path well for files under 25,000 rows per batch and preserve lookup relationships if you import a Salesforce record ID into a dedicated field on every record — do this without exception, it is your Rosetta Stone for linking children to parents and for auditing later.

For larger or messier datasets I skip the wizards and use Zoho's Bulk Write API with scripted transforms, and for clients who want a managed path, Zwitch — Zoho's own Salesforce migration tool — covers standard objects respectably. Whatever the tool, run the entire migration twice: once into a sandbox for validation, once for real. The sandbox run always finds something — a picklist mismatch, a mangled date column, owner assignments pointing at deactivated users. Finding it in rehearsal costs an afternoon; finding it in production costs trust.

Attachments deserve their own plan. Salesforce file exports come through a weekly export or the API, sizes add up fast, and not everything needs to live in Zoho. I typically migrate files attached to open deals and active accounts, and archive the rest to organised cloud storage with links.

Phase 5: Rebuild automation — do not transplant it

Workflows, flows, and Apex do not migrate; they must be rebuilt in Zoho's stack — workflow rules, Blueprint for stage-gated processes, and Deluge functions for anything custom. This is a feature disguised as a chore. Automations accrete over years, and half of what I find in a mature Salesforce org fires on conditions that no longer occur or notifies people who left the company. Rebuild only what the audit proved is alive.

Blueprint deserves special attention because it has no exact Salesforce equivalent and clients consistently rate it their favourite discovery. Where Salesforce enforces process through validation rules that yell at reps after the fact, Blueprint walks them through required steps at each pipeline transition. The Osaka logistics client I have written about elsewhere cut their quote-to-order errors by well over half simply because Blueprint made the correct next action the easiest one.

Integrations get rebuilt in this phase too. Mainstream connections — Microsoft 365, Google Workspace, common telephony, accounting — are native or one-click. Anything bespoke becomes a Deluge function or a middleware flow. Budget real time here; integrations are the most common source of go-live delay in my projects.

Phase 6: Cutover, validation, and the human side

Cutover weekend follows a fixed script: freeze Salesforce edits Friday evening, run the final delta import, execute the validation suite, and open Zoho Monday morning. Validation is the mapping spreadsheet come alive — record counts per object matched to source, sum of open pipeline value matched to a Salesforce report taken at freeze, twenty randomly sampled accounts checked field by field, and every integration fired end to end. Numbers first, spot checks second, sign-off third.

Keep Salesforce alive read-only for 30 to 60 days as a safety net, then export final archives and terminate. And invest more in training than feels necessary — not feature tours, but role-based sessions using the team's real accounts and live deals. The migration succeeds or fails in the first two weeks of usage. My honest warning: even a clean migration produces a two-to-three week productivity dip while muscle memory rebuilds. Plan it away from quarter-end, tell the team it is coming, and it passes; pretend it will not happen and it becomes the story everyone tells about the project.

Key takeaways

  • Audit first: field fill-rate analysis typically kills a third of custom fields before migration, and the scope document needs a business signature, not just IT's.
  • Import a Salesforce record ID onto every migrated record — it is the key that preserves relationships and makes post-migration auditing possible.
  • Run the full migration twice: the sandbox rehearsal always catches picklist mismatches, date mangling, or orphaned owners before they cost trust.
  • Rebuild automation from the audit rather than transplanting it, and budget for a two-to-three week productivity dip after go-live — it is normal.

Conclusion

None of this is exotic — it is checklists, spreadsheets, and rehearsal, executed in the right order. But order and discipline are exactly what separates a migration the sales team barely notices from one they resent for a year. If you are planning a Salesforce-to-Zoho move and want either a second pair of eyes on your plan or someone to run the whole sequence, this is the core of what I do, and the audit phase alone will tell you whether the project is worth starting.

Enjoyed this article?

Vivek Kumar Singh

Vivek Kumar Singh

Technical Expert · Full Stack Cloud Engineer · Tokyo, Japan