Excel to Zoho CRM Migration: Complete Guide (2026)
Step-by-step guide to migrating from Excel spreadsheets and Google Sheets to Zoho CRM. Covers data cleanup, field mapping, automation setup, and common pitfalls.
If your sales team runs on Excel spreadsheets — lead lists, deal trackers, customer databases, follow-up logs — you already know the problems. Versions multiply. Nobody knows which file is current. Deals fall through the cracks because someone forgot to update a row. For Shopify and Amazon sellers, this gets worse fast: spreadsheets cannot track which customer came from which channel, what they ordered, or when the last follow-up happened across a 5,000-contact list.
Moving to Zoho CRM fixes this. But the migration is not just dumping a spreadsheet into a CRM. Spreadsheet data is messy by nature: inconsistent formatting, duplicate rows, missing fields, columns that mean different things to different people. Import that mess directly and you get a mess inside a CRM.
TL;DR: Excel-to-Zoho CRM migration takes 2 to 3 days for clean datasets under 1,000 records, and 1 to 2 weeks for larger or messy datasets. Clean the data before import, map columns to the right CRM modules, run a trial import first, then set up automation. eCommerce sellers should add Shopify/Amazon channel source fields and link Zoho CRM to their order management stack after import.
This guide covers how to clean up spreadsheet data, structure it for Zoho CRM, import it without losing anything, and set up the automation that makes a CRM worth using — with eCommerce-specific configuration for Shopify and Amazon sellers.
Why Spreadsheets Stop Working
Nobody starts with a spreadsheet thinking it will become their CRM. A sales rep creates a lead tracker. Someone else adds a column for deal status. Six months later, the whole team depends on a file that was never designed for the job.
For eCommerce sellers on Shopify or Amazon, the breakdown happens faster. You have customers coming in from multiple channels, order history scattered across platform exports, and a contact list that mixes wholesale buyers, retail customers, and distributors. One spreadsheet cannot hold all of that coherently.
Here is where it breaks down at scale:
When three people have their own copy of the spreadsheet (or their own separate spreadsheet), nobody knows which version has the latest data. Updates get lost. Leads get called twice, or not at all.
Excel does not know that a rep called this lead yesterday, that an email went out last Tuesday, or that a meeting is scheduled for Friday. That context lives in people's heads or scattered across inboxes.
Every follow-up reminder, every status update, every report has to be done manually. As the team grows, manual processes do not scale — they just create more opportunities for things to slip.
Managers cannot see the pipeline without asking someone to update the spreadsheet and send it over. Real-time visibility into deal stages, lead sources, and team activity does not exist.
Everyone with the file can see and change everything. There is no way to restrict which reps see which leads, or prevent someone from accidentally deleting a row of customer data.
A CRM solves all of this. The question is how to get there without losing the data you have built up.
Before You Touch Zoho CRM: Clean Your Data
This is the step people skip, and it is the step that causes 90% of import problems. Spreadsheet data is almost never CRM-ready out of the box.
Identify all your spreadsheets
Most teams have data scattered across multiple files. Gather them all:
- The main lead/contact list
- Deal or opportunity trackers
- Customer databases
- Follow-up logs or call logs
- Any Google Sheets that team members maintain independently
- Old spreadsheets archived on shared drives
You need a complete picture before you start mapping anything.
Fix structural problems
Spreadsheet data often has issues that will break a CRM import:
Combined fields that need splitting. A column called "Name" with "John Smith" in it needs to become two columns: "First Name" and "Last Name." Zoho CRM expects them separately.
How to split in Excel: use =LEFT(A2, FIND(" ",A2)-1) for first name and =MID(A2, FIND(" ",A2)+1, LEN(A2)) for last name. In Google Sheets, use =SPLIT(A2, " ").
Inconsistent date formats. Some rows have "12/05/2025", others have "May 12, 2025", others have "2025-05-12." Pick one format (YYYY-MM-DD works best for imports) and standardize the entire column.
Phone number formatting. "(555) 123-4567", "555-123-4567", "5551234567", "+1 555 123 4567". These are all the same number in different formats. Standardize them before import. Zoho CRM accepts most formats, but consistency helps with deduplication later.
Free-text fields that should be picklists. If your "Status" column has "Hot", "hot", "HOT", "Warm", "warm lead", and "interested". That is six values for what should probably be two or three. Standardize these to a clean set of values that will become your Zoho CRM picklist options.
Remove duplicates
Spreadsheets accumulate duplicates naturally. The same lead gets added by two reps, or appears in two different files.
In Excel: Use Data > Remove Duplicates. Choose the columns to match on (email is usually the most reliable).
In Google Sheets: Use Data > Data cleanup > Remove duplicates.
Be careful: Before deleting duplicates, check whether the duplicates have different data in other columns. You may need to merge records rather than just delete one copy.
Fill in missing required fields
Zoho CRM will require certain fields during import, at minimum a Last Name for Contacts and Leads. Scan your data for blank cells in critical columns. Fill them in now, or flag them for follow-up after import.
Decide what not to import
Not everything in your spreadsheet belongs in a CRM. Consider skipping:
- Leads from 3+ years ago with no activity
- Contacts with no email address and no phone number
- Duplicate entries you cannot merge meaningfully
- Internal notes or comments that have no CRM equivalent
- Temporary calculations or helper columns
Less data imported cleanly beats more data imported messily.
Planning Your Zoho CRM Structure
Before importing a single row, you need to know where it is going.
Map spreadsheet columns to CRM modules
Zoho CRM organizes data into modules. Here is how typical spreadsheet data maps:
| Your Spreadsheet | Zoho CRM Module | When to Use |
|---|---|---|
| Lead list / prospect list | Leads | Unqualified contacts who have not been vetted yet |
| Customer list / client database | Contacts + Accounts | Qualified contacts and their companies |
| Deal tracker / opportunity log | Deals | Active sales opportunities with stages and values |
| Company list | Accounts | Companies you do business with or are targeting |
| Follow-up log / call log | Activities (Tasks, Calls, Events) | Scheduled and completed sales activities |
| Product list | Products | Items or services you sell |
The Leads vs. Contacts decision is the most important one. In Zoho CRM, Leads are unqualified prospects, people you are still vetting. Contacts are qualified people you have a relationship with, linked to an Account (company). Most spreadsheet data is a mix of both. You will need to sort your rows into these two groups before import.
A practical rule: if you have done business with them or they are actively in your pipeline, they are Contacts. Everyone else is a Lead.
Map columns to fields
For each spreadsheet column, decide which Zoho CRM field it maps to.
| Common Spreadsheet Column | Zoho CRM Field | Module | Notes |
|---|---|---|---|
| First Name | First Name | Leads / Contacts | Required for Contacts |
| Last Name | Last Name | Leads / Contacts | Required |
| Leads / Contacts | Primary dedup key | ||
| Phone | Phone | Leads / Contacts | |
| Company | Company | Leads / Accounts | For Leads, it is a text field. For Contacts, create a linked Account |
| Job Title | Title | Leads / Contacts | |
| Address | Street / City / State / Zip / Country | Leads / Contacts | May need to split a single address column into parts |
| Lead Source | Lead Source | Leads | Standard picklist |
| Status | Lead Status or Stage | Leads / Deals | Map to picklist values |
| Deal Value | Amount | Deals | Numeric, currency format |
| Expected Close Date | Closing Date | Deals | Date format must be consistent |
| Notes / Comments | Description | Any module | Long text field |
Columns that do not have a standard field? Create custom fields in Zoho CRM before importing. Go to Setup > Customization > Modules > [Module] > Fields to add them.
Setting Up Zoho CRM Before Import
For a comprehensive walkthrough of modules, layout customization, and automation setup beyond this migration context, see our Zoho CRM setup guide.
Configure the basics
- Organization settings: company name, currency, time zone, fiscal year
- Roles and profiles: who can see and edit what
- Users: add your team members so records can be assigned to them during import
Create custom fields
For every spreadsheet column that does not match a standard Zoho CRM field, create a custom field with the correct type:
- Text columns → Single Line or Multi Line
- Yes/No columns → Checkbox
- Dropdown values → Pick List (create all values before import)
- Numbers → Number or Currency
- Dates → Date or DateTime
Set up picklist values
This matters more than people realize. If your spreadsheet has a "Lead Source" column with values like "Website", "Referral", "Trade Show", and "Cold Call", you need to create those exact values in Zoho CRM's Lead Source picklist before importing. Mismatched values will import as blank.
Go to Setup > Customization > Modules > Leads > Fields > Lead Source > edit the picklist values.
Configure deal pipeline stages
If you are importing deals, set up your pipeline stages to match whatever your spreadsheet uses for deal status. You can rename stages later, but they need to match during import.
The Import Process
Step 1: Run a trial import
Always test first. Pick 50 to 100 rows from your spreadsheet and import them.
- Go to the module you are importing into (e.g., Leads)
- Click the import icon (or go to Setup > Data Administration > Import)
- Upload your CSV or XLS file
- Map columns to fields. Zoho will auto-map some based on header names
- Set import options:
- Duplicate handling: Choose whether to skip, overwrite, or merge duplicates (match on email, usually)
- Assignment: Assign all records to a specific user, or map a column to the Record Owner field
- Run the import
After it completes, check:
- Did all 50-100 records import? (Check the import summary for skipped/failed records)
- Are names in the right fields?
- Are dates displaying correctly?
- Are picklist values populated or blank?
- Are phone numbers and emails intact?
Fix any mapping issues and run another test batch if needed.
Step 2: Import in the right order
If you have data for multiple modules, order matters:
- Accounts. Import companies first
- Contacts. Import contacts and link them to Accounts using company name or Account ID
- Deals. Import deals and link them to Accounts and Contacts
- Leads. Import unqualified leads (these are independent)
- Activities. Import tasks, calls, and events linked to Leads or Contacts
Importing Contacts before Accounts means the Account-Contact link has nothing to connect to. Always go parent-first.
Step 3: Handle large datasets
Zoho CRM's import limits depend on your plan: 10,000 records per CSV batch on Standard, 20,000 on Professional, 30,000 on Enterprise, and 50,000 on Ultimate. XLS/XLSX files are limited to 5,000 records across all plans. For larger datasets:
- Split your CSV into multiple files that fit within your plan's batch limit
- Import each file sequentially
- Use the "Skip duplicates" option to prevent re-importing records from overlapping rows
- For very large datasets (100,000+ records), consider using the Zoho CRM API with a migration script for better control and error handling
Step 4: Verify and clean up
After importing everything:
- Check record counts. The number of records in Zoho should match your spreadsheet row count (minus duplicates and intentionally skipped rows).
- Spot-check 20 to 30 records. Open random records and verify all fields populated correctly.
- Run a duplicate check. Go to Setup > Data Administration > Deduplicate to find and merge any duplicates that slipped through.
- Check the import log. Zoho CRM provides a log of skipped and failed records with reasons. Download it and fix any issues.
What to Set Up After Import
Getting data into the CRM is half the job. The other half is making the CRM actually useful, which means setting up the things spreadsheets could never do.
Assignment rules
Stop manually assigning leads. Set up rules that route leads automatically based on criteria:
- Leads from a specific region go to the rep covering that territory
- Leads from a specific source go to the team handling that channel
- Round-robin assignment distributes leads evenly across the team
Go to Setup > Automation > Assignment Rules.
Workflow rules
Automate the follow-up tasks that used to require someone checking the spreadsheet:
- When a new lead is created, send a welcome email automatically
- When a deal stage changes to "Negotiation", create a task for the manager to review
- When a lead has not been contacted in 3 days, send a reminder to the assigned rep
Go to Setup > Automation > Workflow Rules.
Scoring rules
Replace your gut-feeling lead prioritization with data-driven scoring:
- +10 points for leads from your website
- +5 points for leads with a company email (not Gmail/Yahoo)
- +15 points for leads who opened your email
- -5 points for leads with no phone number
Go to Setup > Automation > Scoring Rules.
Email templates
Create templates for common outreach: introduction emails, follow-ups, meeting requests, proposals. Your team can personalize them per contact without writing from scratch every time.
Reports and dashboards
Build the reports you always wished your spreadsheet could produce:
- Pipeline by stage (how many deals at each stage, total value)
- Lead source analysis (which sources produce the most qualified leads)
- Sales activity report (calls made, emails sent, meetings booked per rep)
- Revenue forecast (projected close dates and deal values)
This is the real payoff of moving to a CRM. The data you already had in spreadsheets now powers real-time visibility.
Common Pitfalls and How to Avoid Them
1. Importing without cleaning first
The most common mistake. Messy data in, messy CRM out. Spend the time on data cleanup before import. It is always faster than fixing records one by one after.
2. Putting everything into Leads
Not every contact is a Lead. If you have done business with someone, they are a Contact linked to an Account. Dumping everything into Leads means your pipeline reports and Account-based views will be empty.
3. Skipping the trial import
Importing thousands of records and then discovering that dates are in the wrong format or names are in the wrong field is a nightmare to fix. Always test with a small batch first.
4. Forgetting to create picklist values before import
If your spreadsheet has "Referral" as a lead source but Zoho CRM's Lead Source picklist does not include "Referral", that field imports blank. Create all picklist values before importing.
5. Not splitting combined fields
A "Full Name" column will not map to Zoho CRM, which expects "First Name" and "Last Name" separately. Same for full addresses that need to be split into Street, City, State, Zip, and Country.
6. Importing in the wrong order
Contacts linked to Accounts that do not exist yet will lose their company association. Always import parent records (Accounts) before child records (Contacts, Deals).
7. No data entry standards after migration
The CRM is only as good as the data going into it. If your team keeps entering data inconsistently after migration, you will end up with the same mess you had in spreadsheets, just inside a fancier tool. Set up validation rules, mandatory fields, and picklists to enforce consistency from day one.
Google Sheets to Zoho CRM
If your team uses Google Sheets instead of Excel, the process is identical with one extra step: export your Google Sheet as a CSV first.
- Open the Google Sheet
- Go to File > Download > Comma Separated Values (.csv)
- Follow the same cleanup, mapping, and import process described above
Ongoing sync option: If you want Zoho CRM to pull data from Google Sheets automatically (for example, leads from a form that feeds into a Sheet), use Zoho Flow to set up a Google Sheets-to-Zoho CRM integration. New rows in the Sheet can automatically create Leads or Contacts in Zoho CRM.
Zoho CRM Pricing for Teams Moving from Spreadsheets
If you are coming from spreadsheets, you are probably cost-conscious. Here is what Zoho CRM costs:
| Edition | Price (per user/month, billed annually) | Good For |
|---|---|---|
| Free | $0 (up to 3 users) | Very small teams testing the waters |
| Standard | $14 | Small teams needing basic CRM + reports |
| Professional | $23 | Teams needing workflow automation + multiple pipelines |
| Enterprise | $40 | Teams needing advanced customization + AI (Zia) |
| Ultimate | $52 | Large teams needing max storage + advanced analytics |
Most teams moving from spreadsheets start on Standard ($14/user/month) or Professional ($23/user/month). If you have fewer than 3 users, the free tier is a legitimate starting point. You can upgrade later without losing data.
For context: the cost of one missed deal because a lead fell through the cracks in a spreadsheet almost certainly exceeds a year of Zoho CRM licensing for your entire team.
Realistic Timelines
| Dataset Size | Records | Timeline | Key Variables |
|---|---|---|---|
| Small | Under 1,000 | 2-3 days | Clean data, simple columns |
| Medium | 1,000-10,000 | 1-2 weeks | Multiple spreadsheets, data cleanup needed, custom fields |
| Large | 10,000-50,000+ | 2-3 weeks | Scattered files, heavy dedup, automation setup |
The data import itself is fast, taking minutes for most datasets. The timeline is really about how long the cleanup takes. A spreadsheet with 5,000 rows of clean, consistent data imports in 10 minutes. A spreadsheet with 5,000 rows of messy data can take a week to clean up before you even touch the import button.
Phase breakdown (medium dataset)
| Phase | Duration | What Happens |
|---|---|---|
| Gather and audit spreadsheets | 1-2 days | Find all files, document columns, identify overlaps |
| Data cleanup | 3-5 days | Split fields, standardize formats, deduplicate, fill gaps |
| Zoho CRM setup | 1-2 days | Configure modules, custom fields, picklists, roles |
| Import and validation | 1 day | Trial import, full import, spot-check |
| Automation and training | 2-3 days | Workflow rules, assignment rules, team training |
DIY vs. Getting Help
DIY works when your spreadsheet has fewer than 5,000 rows, the data is relatively clean, you have one or two files rather than a dozen scattered ones, and someone on your team can manage CRM admin basics without it becoming a side project.
A migration partner makes sense when data is scattered across many files and formats, the cleanup work is significant, you want automation set up from day one (assignment rules, workflows, scoring), you need the CRM connected to Shopify, Amazon, or Zoho Books after import, or nobody on the team has time to learn CRM setup during a busy period.
Zolify has handled more than 100 eCommerce CRM migrations, from Excel files with 200 rows to Google Sheets with 80,000 rows. Our CA on staff validates the data structure and field mapping before import, so the financial contact records and customer payment data are clean from day one. As an Official Zoho Authorized Partner, we configure the assignment rules, workflow automation, and eCommerce integrations (Shopify, Amazon, WooCommerce) that turn a basic CRM into an operational tool.
For Shopify and Amazon sellers who need Zoho CRM to connect to their order management and accounting stack, see our Zoho CRM eCommerce guide for the integration architecture that goes beyond the initial spreadsheet migration.
If you are evaluating whether a full eCommerce ops setup makes sense alongside the CRM migration, an eCommerce Ops Audit is the right starting point. It covers the CRM, order management, and accounting configuration together rather than scoping each system separately.
Also in this series: HubSpot to Zoho CRM migration | Salesforce to Zoho CRM migration | Pipedrive to Zoho CRM migration | Freshsales to Zoho CRM migration | Legacy CRM to Zoho migration
Frequently Asked Questions
Yes. Zoho CRM supports direct CSV and XLS/XLSX file imports for all standard modules including Leads, Contacts, Accounts, and Deals. You upload the file, map your spreadsheet columns to Zoho CRM fields, and import. CSV import limits vary by plan: 10,000 records per batch on Standard, 20,000 on Professional, 30,000 on Enterprise, and 50,000 on Ultimate. XLS/XLSX imports are limited to 5,000 records per batch across all plans.
For a small dataset under 1,000 records with clean data, you can complete the migration in 2 to 3 days. For larger datasets with 5,000 to 50,000 records that need cleanup and deduplication, expect 1 to 2 weeks. The data import itself is fast. Most of the time goes into cleaning up messy spreadsheet data and configuring Zoho CRM properly before import.
No, as long as your spreadsheet data is properly formatted and your field mapping is correct. Common causes of data loss during import are mismatched column headers, date format inconsistencies, and exceeding field character limits. Running a trial import with 50 to 100 records first catches these issues before they affect your full dataset.
Yes. Export your Google Sheet as a CSV file and import it into Zoho CRM the same way you would import an Excel file. Zoho CRM also integrates with Google Workspace, so you can set up ongoing sync if needed. The import process is identical once you have the CSV.
Excel formulas, conditional formatting, cell colours, and macros do not transfer to Zoho CRM. Only the raw cell values are imported. If you rely on formulas for calculated fields like deal value or lead score, you will need to recreate that logic using Zoho CRM formula fields or workflow rules.
See exactly where your Shopify, Amazon, or WooCommerce ops are leaking — free.
Get a personalised eCommerce Ops Audit: inventory gaps, accounting leaks, and order-flow bottlenecks — with a Zoho fix roadmap. Delivered in 48 hours, at no cost.



