A Zoho CRM data import is quick to start. You upload a file, map the columns and click import. The trouble shows up later: duplicates, contacts under the wrong company, picklists with five spellings of one value, and records owned by nobody. Cleaning the file first is less work than cleaning the CRM afterwards.
This post is a checklist for the file and for the CRM it goes into. It also says which steps the Zoho CRM AI Assistant can help with.
Decide what goes in, and in which order
Before you touch the data, list the modules you are importing and the order. Records that others link to go first: accounts before contacts, contacts before deals. If deals arrive before their accounts exist, they have nothing to link to. Leave out what nobody needs, such as old test records.
Remove duplicates in the file
Duplicates come from merged spreadsheets, repeated exports and people typed in twice. Check the file before it goes in:
- Contacts and leads by email. Compare emails ignoring case and spaces at the start or end.
- Accounts by name. "Northfield Dental", "Northfield Dental Ltd" and "Northfield Dental " are one company to you and three to a matching rule.
- Rows that already exist in the CRM. A row can be unique in the file and still match a record in Zoho CRM. Decide whether such rows should be skipped, should update the existing record, or should fill only its empty fields.
Fill required fields
Zoho CRM refuses a record when a mandatory field is empty. Last Name on contacts and leads, Account Name on accounts and Deal Name, Stage and Closing Date on deals are common ones, and your org may have made other fields mandatory. Check the module's layout, then check the file for blanks in those columns.
Match picklist values
A picklist only accepts its own options. If the file says "Trade show", "Tradeshow" and "Expo" and the Lead Source picklist has "Trade Show", map every spelling to one option before the import. Do the same for stages, industries, countries and any custom picklist. Check how your import tool treats a value that is not an option, so it is not silently dropped or added.
Set the owners
Every record in Zoho CRM has an owner. If the file has an owner column, its values must match users in your CRM. Decide what happens to rows owned by someone who has left, or by nobody. Otherwise they can land with whoever ran the import.
Keep accounts and contacts linked
A contact is linked to its account by a lookup, and an import usually matches it by the account name in the file. A name spelled differently from the account in the CRM either fails or creates a second account. Make the company names in the contact file match your accounts exactly. If you can, compare the email domain of each contact with the account's website, to catch contacts filed under the wrong company.
Use one format for dates and phones
Pick one date format for the whole file and confirm it in the import settings. 03/04/2026 is a different day in the US and in the UK. Amounts need a consistent decimal separator, and a currency if your org uses more than one.
Phone numbers should be in one format too, ideally with the country code, such as +44 20 7946 0958.
Run a test import
Import 10 to 20 rows first, including the hard cases, such as a duplicate and a name with an accent. Open the records in Zoho CRM and check every mapped field, the owner and the links. Check which workflow rules and assignment rules ran on the new records, and whether they sent any emails. Then import the rest.
Check the CRM after the import
- Compare the record count with the file.
- Look for new duplicates against records that were already there.
- Check that contacts sit under the right accounts and deals under the right contacts.
- Check deal amounts for zeros, negatives and values far above the rest.
- Check that no records are owned by inactive users or by the person who ran the import by mistake.
Where the Zoho CRM AI Assistant helps
The assistant works inside Zoho CRM, on request. It reads and lists records, and changes them only after you approve. It is not Zoho's import tool, and it does not clean the file on your computer. Two use cases import a file you attach, with a plan you approve first; the rest check the CRM before and after an import.
- Contacts without overwriting. Import contacts without overwriting data maps your CSV or XLSX, matches existing contacts by email, creates the new ones and fills only empty fields on existing ones. Rows with no email or several matches are listed, not written. Up to 100 created and 200 updated per request.
- Deals linked to accounts. Import deals from a spreadsheet finds each account by name and contact by email, maps stages to your pipeline, and flags rows with no match or an empty required field such as Closing Date.
- Event lists. Import a trade show list without duplicates checks each row against leads and contacts by email and creates only the new leads.
- Duplicates already in the CRM. Find duplicate contacts by email and Find duplicate accounts group the copies and show what is linked to each. Deleting extras asks for a final confirmation.
- Picklist spellings. Standardize field values changes the spellings you list to the values in your table, and warns when a new value is not a picklist option.
- Contacts under the wrong account. Find contacts under the wrong account compares each contact's email domain with its account's website and relinks the contacts you choose.
- Amounts after the import. Check deal amounts after an import lists deals with zero, negative, missing or unusually large amounts. The list only reads.
- Owners who left. Find records owned by inactive users lists open records still owned by former users and moves them to the people you choose.
The assistant does not reformat dates or phone numbers. Fix those in the file before you import.
Clean the file, test with a few rows, then import the rest and check the result. The assistant helps with the matching and the checks. The cleaning of the file itself is still yours.