Clean CSVs for Zoho CRM imports
A Zoho CRM import fails on ordinary things: a Full Name column where the module wants a mandatory Last Name, accented names that arrive as question marks, the same person sitting in two exported lists. Sigmera is not a Zoho connector and asks for no OAuth grant — you export the spreadsheet, clean it in a browser tab, and add it back through Zoho's own import wizard. The contact list never leaves your device on the way through.
How it works
- 1Export from Zoho CRM, or start from the file you were sentPull the module you need out of Zoho CRM as a spreadsheet, or begin with whatever list arrived in your inbox from a trade show, a form, or a colleague. Nothing has to be connected first: Sigmera has no Zoho integration, no connected app, and no API access to your account. The starting point is a file on your machine.
- 2Clean it in a browser tabDrop the spreadsheet into Sigmera. It is parsed by JavaScript running on your own computer, so a list of named contacts and their phone numbers is not transmitted to a server. Deduplicate across the stacked exports, split the full-name column, standardise the phone numbers, and correct the owner and date columns — previewing every change before you commit to it.
- 3Save a CSV within Zoho's import limitsZoho CRM accepts XLS, XLSX, CSV, and VCF files. The CSV size ceiling depends on your edition — 25 MB on Enterprise and Ultimate, 10 MB on Professional and Standard, 5 MB on the free tier — while XLS and XLSX are capped at 5,000 records per batch. Sigmera writes a plain UTF-8 CSV, which is the format with the most headroom and the one that keeps accented characters intact.
- 4Import through Zoho's own import wizardIn Zoho CRM, open the module you are importing into and start an import. Choose whether to add records as new, update existing records only, or both, and set the field the wizard matches on — Record ID, or Email and Record Name. Map the columns, either with automatic mapping or by hand, set the date and time format your file uses, and run the import.
Common Zoho CRM clean-ups
Zoho CRM's import lets you add records as new, update existing records only, or both, and find the matching record by Record ID or by Email / Record Name. That match is on the value as written, so two rows for the same person survive it whenever the addresses differ by casing or a stray leading space — which is exactly what happens when you stack a leads export, a filtered contacts view, and a spreadsheet a colleague sent. Zoho's own troubleshooting notes list duplicate email addresses among the reasons rows do not import cleanly. Collapse them in the file first and the wizard has far less to reconcile.
- Stack your exported spreadsheets into one sheet with matching headers
- Open the remove-duplicates tool and match on the email column, ignoring case and surrounding spaces
- Review the flagged rows and keep the record you want
- Download the deduplicated CSV and import it
Every Zoho CRM module has mandatory fields, and for both Leads and Contacts the required one is Last Name. A spreadsheet that carries a single "Full Name" column has nothing to map to it, so the import either stops at the mapping step or you end up with the whole name crammed into Last Name and personalisation broken from day one. Splitting the column before the upload gives the wizard a real First Name and Last Name to auto-map, and keeps compound surnames intact instead of guessing at them row by row.
- Load the CSV and select the full-name column
- Split it into first, middle, and last name fields
- Preview the rows with two surnames or a middle initial and correct the edge cases
- Download the CSV with a populated Last Name column
Phone numbers reach a CRM as free text, so one export can carry (415) 555-0100, 415.555.0100, and 020 7123 4567 in the same column. Nothing rejects them, and then the same person imports twice because two spellings of one number do not match, and telephony integrations sitting on top of Zoho cannot route a number with no country code. Rewriting the column to E.164 — a leading plus, the country calling code, then the national number, 15 digits at most — fixes both at once.
- Load the CSV and select the phone column
- Set the default country for numbers that arrive without a code
- Rewrite the whole column to a single consistent format
- Check the rows that could not be parsed, then download
Zoho detects character encoding when you upload the file, and its troubleshooting guidance is blunt about the failure mode: save the .csv as a UTF-8 encoded file before importing, or characters outside the plain-ASCII range come through wrong. The usual culprit is a spreadsheet saved through a regional Excel default, which turns a name like Grzegorz Wójcik into mojibake that then has to be corrected record by record inside the CRM. Writing the file as UTF-8 on the way out avoids the correction pass entirely.
- Convert the workbook to a single-sheet CSV
- Confirm the accented and non-Latin characters still render in the preview
- Fix any values that were already corrupted upstream with find and replace
- Download the UTF-8 CSV and import it
When rows do not import, the cause is usually a column-wide pattern rather than one bad record. Zoho's troubleshooting article points at a Lead Owner column holding display names instead of an email address or ID, and at owners who are no longer active users. The import wizard also lets you set the date and time format the file uses, so values are not ignored. Each of those is one find-and-replace across the column, run before the upload rather than after the wizard hands back a list of rejects.
- Read the reason Zoho reported for each rejected row
- Rewrite the owner column from display names to the email addresses Zoho expects
- Standardise the date column to one format across every row
- Re-import the corrected file in a single pass
Sources
Frequently asked questions
- Does Sigmera connect to my Zoho CRM account?
- No. There is no connected app, no OAuth grant, and no API access. Sigmera cleans the exported spreadsheet in your browser, and you import the result yourself through Zoho CRM's own wizard. Nothing in your CRM is exposed during the cleaning step, because nothing in your account is reachable from Sigmera in the first place.
- What file formats and size limits does Zoho CRM accept for an import?
- Zoho CRM imports Excel (XLS, XLSX), CSV, and vCard (VCF) files. The CSV limit depends on your edition: 25 MB on Enterprise and Ultimate, 10 MB on Professional and Standard, and 5 MB on the free edition. VCF files are capped at 5 MB throughout, and XLS or XLSX imports are limited to 5,000 records per batch. A cleaned CSV is usually the least restrictive route for a large list.
- Which fields are mandatory for a Zoho CRM lead or contact import?
- Each module has its own required fields. For both Leads and Contacts the mandatory one is Last Name; for Accounts it is Account Name. A spreadsheet with a single Full Name column has nothing to map to that field, so split the name into first and last before you upload rather than letting the whole string land in Last Name.
- Doesn't Zoho CRM already handle duplicates during an import?
- Partly. The wizard lets you add records as new, update existing records only, or do both, and find the matching record by Record ID or by Email and Record Name. The comparison is on the stored value, so rows that differ only by casing or a leading space read as two different people and both get created. Zoho's troubleshooting guidance also lists duplicate email addresses as a reason rows fail. Deduplicating the file first, matching case-insensitively on email, removes most of that.
- Why do accented names come through garbled in Zoho CRM?
- Character encoding. Zoho detects the encoding when the file is uploaded and lets you set it manually, but its troubleshooting article is direct about the fix: save the .csv as a UTF-8 encoded file before importing it. A spreadsheet exported through a regional Excel default is the usual source of the problem, and the damage shows up on exactly the records you least want to retype — names with diacritics.
- Why did some of my rows fail to import?
- Usually a column-wide pattern rather than individual bad records. Zoho's troubleshooting article points to a Lead Owner column holding display names instead of an email address or user ID, owners who are no longer active users, and duplicate email addresses. Date values are ignored when the format in the file does not match the one set in the wizard. Correcting the pattern across the whole column and re-importing is faster than fixing rejected records one at a time.
- Is it GDPR-safe to clean a Zoho CRM export this way?
- Cleaning a contact export is processing under GDPR wherever it happens, and you remain the controller. What changes is who else handles the data. Sigmera reads and rewrites the file with JavaScript in your own browser, so no vendor receives it and no new processor relationship is created. Sending the same list to a cloud cleaner would make that vendor a processor, and Article 28(1) requires a controller to use only processors providing sufficient guarantees of appropriate technical and organisational measures. Browser-side cleaning keeps that link out of the chain.