Articles

How to Import Data into CRM: A Zoho CRM Step-by-Step Guide.

7 min read

How to Import Data into Zoho CRM — branded guide cover

A distributor handed us a spreadsheet of 6,000 contacts and asked us to "just import it." We ran a 50-row test first — good thing, because the file was about to create roughly 900 duplicate accounts and drop every phone number into a text field nobody would ever search. Knowing how to import data into Zoho CRM properly is the difference between an import and a mess: five minutes of prep. As Zoho CRM consultants, we get called in to clean up botched imports more often than to run new ones, and the fix is almost always the same handful of steps done in the right order. This guide walks through how to import data into Zoho CRM without the duplicate explosion.

Importing data into Zoho CRM means uploading a cleaned CSV or XLS file through the import wizard, choosing whether to add or update records, picking a unique field so the system catches duplicates, mapping each spreadsheet column to a CRM field, and running it — then verifying the result and rolling it back if something went wrong.

Before you import: clean the file and pick the order

The import wizard is only as good as the file you feed it. Do this work in the spreadsheet, not in the CRM:

  • Dedupe the source. Remove obvious duplicate rows and standardize formats — one phone column, consistent state spellings, dates in one format. Zoho's Deduplicate tool can auto-merge exact matches after import, but merged records are deleted permanently and skip the Recycle Bin, so it is far safer to catch duplicates before they land.

  • Add a unique column. Email works for most contact and lead files. If you have a source-system ID, keep it — it becomes your match key for future updates.

  • Split it by module. Leads, Contacts, Accounts, and Deals each import separately.

Order matters because of lookups. Import the "parent" records first so the child records have something to link to: Leads or Accounts first, then Contacts, then Deals. If you import Deals before the Accounts they belong to, the account lookup lands empty and you get a pipeline full of orphaned deals.

How to import data into Zoho CRM, step by step

Once the file is clean, the wizard itself is fast. In Zoho CRM:

  1. Open the module (say, Leads) and choose Import > Import [Module].

  2. Upload the file. Row limits scale by edition: 10,000 rows on Standard, 20,000 on Professional, 30,000 on Enterprise, and 50,000 on Ultimate for a CSV; XLS, XLSX, and VCF files cap at 5,000 records per batch on every edition (Zoho CRM import docs). Bigger files just mean more batches.

  3. Choose the import action — Add new records, Update existing ones, or Both. This is the setting that saves you from duplicates, so slow down here.

  4. Set the matching field. If you picked Update or Both, tell Zoho which field is unique (Record ID, or Email/record name). Rows that match an existing value get updated instead of duplicated; the rest are added.

  5. Map the fields. Click Apply Auto Mapping to let Zoho line up columns with matching field names, then fix the rest by hand. Any column you leave unmapped is simply ignored — no error, no warning.

  6. Assign the owner, then run it. You can route new records to an owner and optionally trigger workflows on import.

A worked example: 2,000 leads and the mapping gotcha

Say you have 2,000 trade-show leads in a CSV. On Professional (20,000-row limit), the whole file imports in one pass. You set the action to Add, choose Email as the matching field so any rep already in the system does not get cloned, and hit auto-map.

Here is where teams get burned. Auto-map matches on column names, and your spreadsheet header says "Company." Zoho's field is "Account Name." Auto-map leaves it unmapped — silently — and 2,000 leads import with a blank company. Nobody notices until a rep filters by account and half the list vanishes.

The tip: after auto-map, read the unmapped-columns list before you click import. It is the single most common reason an import "loses" data. Rename the header to match, or map it manually. While you are there, confirm that pick-list values in the file (Lead Status, Source) exactly match the CRM's options — an unmatched value imports as blank, not as a new option.

Auto-mapping matches on column names, not meaning. The columns it silently skips are where imports go wrong.

Need help with a large or multi-object migration rather than a single file? That is a different discipline — see our Zoho CRM migration services, and if the data lives across several apps, real Zoho integration work usually beats a manual export-import cycle. Book a free Zoho consultation and we will scope it with you.

Common mistakes — and how to roll back

The failure modes repeat across every rescue we run:

  • Importing straight to production with no test. Always run a 20–50 row sample first, check it in the CRM, then import the rest.

  • Wrong action setting. Leaving it on "Add" when you meant to update is how a clean database doubles overnight.

  • Ignoring the unmapped list. The mapping gotcha above. Read it every time.

  • Mismatched pick-list and date formats. These import as blanks, not errors, so they are easy to miss until reporting breaks.

When an import does go sideways, Zoho gives you a real undo. Go to Setup > Data Administration > Import > Import History, select the batch, and click Rollback to remove the records it added. Two limits worth knowing: you have 30 days to roll back before the import locks in, and rollback only removes newly added records — it does not reverse updates made to existing records (Zoho import history docs). So a bad Add import is fully reversible; a bad Update import is not, which is exactly why the test run matters.

The stakes are higher than a wasted afternoon. In Validity's 2024 survey, 31% of CRM admins said poor-quality data costs their organization at least 20% of annual revenue (Validity, State of CRM Data Management in 2024). Every duplicate and every blank company field you import is a small down payment on that number.

The takeaway

A clean import comes down to preparation and order: dedupe the file, pick a unique match key, import parents before children, read the unmapped-columns list, and test on a sample before you commit. Get the field mapping right up front, because that is where good data quietly turns bad — and clean data is what makes the rest of your Zoho investment, from a business systems consultant to good Zoho CRM training and a solid user onboarding checklist, actually pay off.

Facing a migration bigger than a single spreadsheet, or a file you are not sure how to map? Book a free Zoho consultation and we will pressure-test the plan before it touches your live data.

By the CodeStringers Team — Zoho Experts & Custom Software. CodeStringers is a custom software engineering firm with a dedicated Zoho practice, writing from work we've actually shipped for clients.

Find out what one connected Zoho system would change in the way you run.

In a no-risk discovery we look at your CRM, finance and operations systems and who owns each part, and show what a connected system would do differently. You pay only if you proceed. Or see how we approach it.

Book the no-risk discovery

More on the same problem:

Frequently asked questions.

Can you import notes, attachments and activities into zoho crm?

Notes, tasks, calls and meetings each have their own import, and each row needs a reference to the parent record it belongs to, which means the parent records must be imported first and their IDs or a unique field exported for matching. Attachments cannot be bulk imported through the wizard; they are added through the API or by hand. Plan the sequence as records, then activities and notes, then attachments.

How do lookup fields match during a zoho crm import?

A lookup column in the file is matched to the related module by the record's name or by its record ID, depending on the option chosen during mapping. Matching by name fails silently when the spelling differs, leaving the lookup empty, so for anything beyond a small file export the parent records with their IDs and use those. Confirm a handful of records after the import to see that the related list on the parent shows them.

How do you import multi select picklist values?

Put all the values for a record in one cell, separated by semicolons, and make sure each value exactly matches an option already defined on the field. Values that do not match are dropped without an error. If the source system uses a different separator or different labels, clean the column in the spreadsheet first. Test with a few rows and open the records to see that every value landed before importing the rest.

How do you assign record owners during an import?

Either set one owner for the whole batch in the wizard, or include an owner column in the file and map it to Record Owner, using the user's email address or name exactly as it appears in the CRM. Rows whose owner cannot be matched fall back to the importing user. Owners must be active users with access to the module, so add any new team members before the import rather than reassigning records afterwards.

Why do special characters break after importing into zoho crm?

Usually because the file was saved in an encoding other than UTF-8, which turns accented letters and symbols into garbage. Save the CSV as UTF-8 from the spreadsheet application and choose the matching encoding in the import wizard. Check a few records with accents or non-English names in the preview before confirming. If the data is already imported wrongly, rollback within the window and re-import from a correctly encoded file.

How is migrating from another crm different from a csv import?

A migration moves several related modules at once, with the relationships, owners, history and attachments intact, and it has to map the old system's fields, statuses and picklists onto the new ones. A single CSV import handles one module and does not know about the links between records. Zoho offers a migration wizard for some source systems that preserves relationships; for others, the work is a sequence of ordered imports with IDs carried across, which is a project rather than an afternoon.

Where we're not the right answer

We'll tell you if we're a fit. If we're not, we'll tell you that too.

  • Your current stack works and nobody wants to change it
  • You want licences resold at a discount and nothing else
  • Your internal team owns the operating model and is not handing it over
  • You want hours of configuration work and nothing run for you: that is on our services pages, and it is not a managed solution
How we start

Most of our best clients come to us with a feeling, not a plan.

"Something isn't working." "We're outgrowing our tools." "We're afraid to make the wrong move." No-Risk Discovery is a short, practical conversation that gets you clarity before you commit to anything big. We'll tell you if we're a fit. If we're not, we'll tell you that too.

Talk to us

Have a question about this?

Say who you are and ask. A person replies within one business day.

The rest of the form follows your answer.

A new client, or thinking about becoming one

Never shared. Never sold.

What are you looking for?An agentic solution (AI OS) is licensed and sold with managed services. An integrated solution is built for a professional services fee. A Service is professional work, done by the hour, the month or the project. Not sure yet is a fine answer.

Tick every one that applies, or not sure yet.

Agentic solutions (AI OS)

Integrated solutions

Services

Platforms you run today

Pick every one that applies. Choosing one is an answer too.