How to import Zoho CRM data into Freshsales
Moving from Zoho CRM to Freshsales? This template maps name, email, phone, mobile, company, title, and the full address to Freshsales's snake_case contact fields. Freshsales splits phone numbers into Work and Mobile, so Zoho's Phone goes to work_number and Mobile goes to mobile_number.
Field-by-field mapping
This is the complete column mapping from Zoho CRM to Freshsales. The left column is the header in your CSV export. The right column is the Freshsales field it should map to.
| First Name | First Namefirst_name | |
| Last Name | Last Name*last_name | |
| Emailemail TransformLowercased and trimmed | ||
| Phone | Work Numberwork_number TransformStandardized to international format (+1, +44, etc.) | |
| Mobile | Mobile Numbermobile_number TransformStandardized to international format (+1, +44, etc.) | |
| Company | Company Namecompany_name | |
| Title | Job Titlejob_title | |
| Mailing Street | Addressaddress | |
| Mailing City | Citycity | |
| Mailing State | Statestate | |
| Mailing Zip | Zip Codezipcode | |
| Mailing Country | Countrycountry |
Required by Freshsales.
Columns we don't use
Your Zoho CRM export includes 3 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in Freshsales.
- Lead Source
Zoho's Lead Source is a per-org picklist. Freshsales has a Lead Source field on contacts, but its values are set per-org and may not match Zoho's exactly.
If you need it. After import, map Zoho's Lead Source values to Freshsales's Lead Source field. Add any missing values to the Freshsales picklist first so every row imports without errors.
- Tag
Zoho tags export as a comma-separated string. Freshsales uses custom fields or lifecycle stages instead of free-form tags.
If you need it. Add a custom multi-select field on the Freshsales Contact called Tags, or build saved filters in Freshsales after import to segment by Zoho tag values.
- Description
Freshsales contacts don't have a default Description field. Freshsales stores notes as separate Note records attached to the contact.
If you need it. Add a custom multi-line text field on the Freshsales Contact called Imported Description, then re-run this template to map Description.
Formatting and cleanup
Zoho CRM exports rarely match the format Freshsales expects. Fix these before you import.
- 1.Lowercases and trims email addresses
- 2.Standardizes both Phone and Mobile numbers to international format (+1, +44, etc.)
- 3.Renames Zoho columns to Freshsales's snake_case API names
- 4.Maps Zoho's Phone to work_number and Mobile to mobile_number (both numbers preserved)
- 5.Maps Zoho's Mailing address block to Freshsales's address, city, state, zipcode, country fields
Or skip the manual work
Operelio runs this cleanup and mapping for you. Upload your Zoho CRM export and download a clean, import-ready file for Freshsales.
Zoho CRM to Freshsales FAQ
How do I export contacts from Zoho CRM?
Go to your Contacts or Leads module, select the records you need (or select all), click the three-dot menu, and choose Export to CSV.
Are both phone numbers preserved?
Yes. Phone maps to Freshsales's work_number and Mobile maps to mobile_number. You keep both numbers for each contact.
What about Zoho's underscored field names?
Zoho exports use space-separated column names (e.g. 'First Name', 'Mailing Street'). The template renames them to Freshsales's snake_case fields (first_name, address, etc.) so the import wizard pairs them up by name.
What about Zoho deals and accounts?
This template handles contact records only. Deals and accounts require separate exports and a different import process in Freshsales.
Will this create duplicate contacts in Freshsales?
Freshsales uses email as the unique identifier on contacts. Contacts with matching emails update the existing record. New emails create new contacts.