Importing data into Zoho CRM without breaking your records

September 24, 2026

A step-by-step guide to importing data into Zoho CRM. Load accounts before contacts before deals, deduplicate first, map every field and test before the full upload.

Abstract layered blocks settling into ordered rows, suggesting records loading into a system in sequence

What importing data into Zoho CRM involves

Importing data into Zoho CRM means taking records you hold elsewhere, usually in spreadsheets or an old system, and loading them into CRM modules. A module is Zoho's name for a group of similar data, such as Accounts, Contacts or Deals. Zoho describes Data Import as a way to transfer data from external sources into CRM, for example when you buy leads or move prospects over from another business unit.

The mechanics are simple. The consequences are harder to reverse. Once an import starts you cannot cancel it. Updates to existing records cannot be reverted. You cannot change the mapping for a field after the import has run.

A careless first load can therefore leave you with duplicate companies, contacts attached to nobody and deals owned by the wrong person. Cleaning that up by hand takes far longer than preparing the files properly.

This guide covers the order that keeps links between records intact, how to clean and deduplicate a spreadsheet, how field mapping works, how to run a test import and how to set record ownership after the load. If you are new to the product, our beginner's guide to Zoho CRM explains modules and records before you start.

Choose the import tool or the data migration tool

Zoho CRM has two ways to bring data in, and choosing the wrong one creates extra work. The import tool adds, updates, or both adds and updates records in one module at a time. It is available in all editions. Zoho says it is designed for frequent imports that are simple and specific to one module.

The data migration tool is for moving your entire dataset from another CRM or system into several modules at once. Zoho recommends it when you need to bring in attachments or images, or fill system fields such as Created Time and Modified Time. The migration wizard maps files to modules, matches columns to fields and creates modules where needed. It accepts a ZIP folder of CSV files with no sub-folders, up to 10 GB or 200 CSV files. For background on the wider project, see what data migration covers.

Your situationUse
Adding a list of new leads or contactsImport tool
Updating a field on existing records in one moduleImport tool
Moving everything from an old CRM into several modulesData migration tool
Bringing across files, images or original created datesData migration tool

Some data cannot come in through the import feature at all. Zoho lists reports, invoices, quotes, purchase orders, forecasts, sales orders and templates as items you cannot import.

Use the import tool for one module at a time and the migration tool for a whole system
Import toolData migration tool
Scope of one runOne moduleSeveral modules at once
Best suited toFrequent, simple importsMoving a full dataset from another CRM or system
Zoho recommends it forAdding or updating records in a moduleAttachments, images and original Created and Modified Time
Files acceptedCSV, XLS, XLSX or VCFA ZIP folder of CSV files
What you doAdd, update or upsert recordsMap files to modules and columns to fields
AvailabilityAll editionsWhole system moves

Prepare your spreadsheets before anything else

Most failed imports fail because of the file, not the software. Zoho's current help page for the import tool sets these limits: CSV, XLS, XLSX and VCF files, with VCF only for the Leads, Contacts and Users modules. Each file can be up to 25 MB and hold up to 500 columns. The row limit depends on your edition.

EditionMaximum rows per import file
Free1,000
Standard / Zoho One Standard20,000
Professional50,000
Enterprise / Zoho One Enterprise100,000
Ultimate / CRM Plus200,000

Zoho's older help page, written for the old version of the import tool, gives lower limits and caps Excel and VCF files at 5,000 records per batch, with CSV required above that. If your screens look different from the current help, check which version you are on. Saving as CSV avoids the Excel cap either way.

Then clean the file itself:

  • Remove blank rows. More than 10 consecutive empty rows are treated as the end of the file, and anything below them is ignored.
  • Save as UTF-8. Zoho names UTF-8 as the usual encoding, and the wrong encoding can make an import fail.
  • Strip special controls. Combo filters or embedded images in Excel files can cause unexpected errors.
  • Check permissions. You need the Import Records profile permission, or the Import option is hidden.

Deduplicate before you upload

Zoho checks for duplicates during an import, but only on one unique field per module. According to Zoho's import FAQs, these are the default fields:

ModuleDuplicate check field
LeadsEmail
ContactsEmail
AccountsAccount Name
DealsDeal Name
CasesSubject

Unique fields are not case sensitive. "Hartley Engineering Ltd" and "HARTLEY ENGINEERING LTD" count as the same account. "Hartley Engineering Limited" does not. Zoho will create it as a second company, and your contacts will split between the two.

So fix duplicates in the spreadsheet, where you can see them side by side. Sort by company name and standardise suffixes such as Ltd and Limited. Sort contacts by email and merge rows that share one. Contacts with no email address get no duplicate protection at all, so check those by name.

At Svennis we deduplicate the account list first and treat that cleaned list as the master that every other file must match, because a single mismatched company name breaks every contact and deal linked to it. It is the most common cause of messy migrations we are asked to repair.

One more warning: Zoho advises using the module ID as the unique field only when re-importing records you exported from Zoho CRM. Used in any other case, it may create duplicates.

Load accounts, then contacts, then deals

Records in Zoho CRM link to each other. A contact belongs to an account. A deal belongs to an account and usually to a contact. Zoho calls the record being pointed at the parent, and the record doing the pointing the child. If the parent does not exist when the child arrives, the link cannot be made. "Parent record not found" is one of the error types Zoho lists for migrations.

That gives a fixed order for a spreadsheet-based import:

  1. Accounts. Your cleaned company list, one row per company.
  2. Contacts. Each row carries an Account Name that matches an account exactly, so Zoho can attach the person to the company.
  3. Deals. Each row carries the Account Name and the contact, so the opportunity lands on the right record.

Leads sit outside this chain. A lead is an unqualified prospect with no account yet, so you can import leads at any point.

The order also matters for undoing. Zoho states that undoing imported contacts deletes the imported accounts associated with them, and the reverse also applies. If you need to roll back one file, expect the linked file to go with it. Keep each source file saved so you can reload in the same sequence.

Load accounts before contacts and deals, or child records have no parent to link to
StepWhat each row carriesWhy it comes at this point
1. 1. AccountsOne cleaned row per companyCreates the parent records the other files point to
2. 2. ContactsAn Account Name matching an account exactlyAttaches each person to the right company
3. 3. DealsThe Account Name and the contactLands each opportunity on the right company and person
4. 4. Check linksSample records opened in each moduleCatches parent record not found errors before the full load

Map every field on purpose

Field mapping tells Zoho which column in your file goes into which CRM field. Zoho calls it an important step, and you cannot change the mapping after the import. As Ruler Analytics shows in its walkthrough of a leads import, Zoho first shows which fields it mapped automatically. You then use the Mapped and Unmapped tabs to finish the job, or click + Create New Fields for columns with no home.

Do not trust the automatic matches blindly. A column called "Phone" might hold mobiles, landlines or both. Decide which field each column feeds before you open the import screen. If you need fields that do not exist yet, create them properly in setup first; our guide to customising your CRM covers field types.

Mandatory fields and empty values

Records with no value in a mandatory field are not imported. Zoho's Replace Empty Values option lets you set a fallback value during mapping, so those rows are not skipped. When updating existing records, Skip updating empty values stops blank cells overwriting data already in the CRM.

Fields you cannot import into

The import tool does not support Auto Number, Formula, Rollup Summary, Layout, Created Time, Modified Time, Created By, Modified By, File Upload and Image Upload fields. Leave those columns out, or use the data migration tool where it applies.

A worked example: moving a sales spreadsheet into Zoho CRM

Take a small UK distributor keeping its customers in one Excel workbook: a sheet of companies, a sheet of people and a sheet of open quotes it treats as deals. It uses the Professional edition and wants everything in Zoho CRM with the right links and owners.

  1. Split and clean. Save each sheet as its own CSV in UTF-8: accounts.csv, contacts.csv and deals.csv. Delete blank rows and any filters.
  2. Deduplicate accounts. Standardise company names and remove repeats. This list is now the reference for the other two files.
  3. Match children to parents. Check that every Account Name in contacts.csv and deals.csv appears exactly as written in accounts.csv.
  4. Add an owner column. Put each salesperson's CRM user name or email against their records, ready for mapping.
  5. Import accounts. Choose Add as new records, map columns, check the owner mapping and run it.
  6. Import contacts, then deals. Same steps, confirming the Account Name column maps to the account lookup.
  7. Review. Open a handful of accounts and confirm their contacts and deals appear on the record.

Each file sits well inside the Professional limit of 50,000 rows and 25 MB, so no splitting is needed. Before step 5, though, the distributor should run a test import, covered next.

Run a test import and know how undo works

A test import is a small file, say the first few dozen rows of each CSV, loaded in the real order. It shows you mapping mistakes, missing mandatory values and broken links while the damage is small.

Zoho's import options decide what a test can safely touch:

  • Add as new records adds rows as new records and skips rows that match an existing value in the unique field.
  • Update existing records only changes existing records found by a unique field, and creates nothing new.
  • Both (Upsert) adds what is missing and updates what is already there.

Undo is the safety net, with limits. Added records can be undone for imports made within the last 30 days, after which Zoho confirms the import automatically. Updates to existing records cannot be reverted at all. So run your tests with Add as new records, not updates.

After each test, check the import history. Zoho lets you see why rows failed for imports in the last seven days. Fix the source file, undo the test, and repeat until the test file loads cleanly. Only then run the full files.

Set record ownership and control automation

Every record in Zoho CRM has an owner, and ownership drives who sees what, who gets tasks and whose pipeline a deal counts towards. Zoho's FAQs give three ways to assign owners during an import:

  • Users: pick one user to own every record in the file.
  • Lead Assignment Rules: let your existing rules distribute leads.
  • Field Mapping: map an owner column from your file, which suits mixed ownership.

For a full migration, record owners are associated through a user.csv file containing each user's first name, last name, email and user ID. Add your team as CRM users before the load, or the owner values have nothing to match.

Workflows during the load

Imports can fire your automation. On the older import tool, the option to trigger configured automation appears only when the file has fewer than 10,000 rows. Date-based workflows run even when that option is unchecked, because they work from dates. If you have a workflow that emails customers on a renewal date, an import of historic records could trigger it. Pause such workflows before the load.

If you later need to overwrite existing values by Record ID, the Overwrite option is available on the Enterprise edition and above. Only mapped fields are overwritten.

What this means for a UK business

For a UK company the practical points are data location, support and the edition you pay for. Zoho's own G-Cloud listing for Zoho CRM states that data storage and processing take place in the European Economic Area. Note that in your supplier records before you move customer data across.

The same listing prices Zoho CRM at £16 to £52 per user per month. The edition you choose sets your import ceiling, from 20,000 rows per file on Standard to 200,000 on Ultimate, and decides whether you have the Overwrite option. If you plan regular bulk updates, factor that into the edition decision.

Support matters on migration day. The listing describes free technical support for eight hours per workday, with Premium support responding within 3 hours and Enterprise support within 1 hour. Schedule a large load for a working morning, not a Friday evening.

Dates need attention too. Many UK spreadsheets write dates day first, and the data migration wizard asks you to set the supported date and time formats. Check one date column in your test import before trusting the rest.

Finally, keep your source files. The listing states that accounts with no activity for over 120 days are deleted with all their data, so a copy outside the CRM is sensible insurance while you settle in.

Your edition sets the file ceiling, from 1,000 rows on Free to 200,000 on Ultimate: Free 1000, Standard / Zoho One Standard 20,000, Professional 50,000, Enterprise / Zoho One Enterprise 100,000, Ultimate / CRM Plus 200,000 (rows per import file)
Source: help.zoho.com

Next steps

Work through these in order before you load any live data:

  1. Pick the tool. Import tool for single modules, data migration tool for a whole system with files and original dates.
  2. Check your edition's limits for rows per file, and confirm you have the Import Records permission.
  3. Clean each file: CSV in UTF-8, no blank rows, no filters or embedded images.
  4. Deduplicate accounts first, then contacts by email, using the cleaned account list as the reference.
  5. Write a mapping sheet listing every column and its target field, including owner and mandatory fields.
  6. Add users and pause date-based workflows.
  7. Run a test import of accounts, contacts and deals in that order, check links, undo and fix.
  8. Run the full load in the same order, then check the import history for failed rows within seven days.

Once your data is in, the next job is making the CRM fit how you sell. Our intermediate Zoho CRM guide covers what to set up after the basics. If the migration involves several systems or years of history, see how we handle Zoho CRM implementation for UK firms and decide whether to run it yourself or bring help in.

Sources

Looking for a Zoho partner in the UK? Svennis has been a Zoho Premium Partner since 2011, with more than 200 implementations delivered. See how we work as a UK Zoho Partner.