How to import Zoho CRM data into HubSpot
Moving from Zoho CRM to HubSpot? This template maps 12 fields including name, email, phone, mobile, company, title, and full mailing address. Zoho exports also include Lead Source, Tag, and Description columns that don't have a default HubSpot home. The section below explains what to do with each one if you need it.
Field-by-field mapping
This is the complete column mapping from Zoho CRM to HubSpot. The left column is the header in your CSV export. The right column is the HubSpot field it should map to.
| First Name | First Namefirstname | |
| Last Name | Last Namelastname | |
| Emailemail TransformLowercased and trimmed | ||
| Phone | Phone Numberphone TransformStandardized to international format (+1, +44, etc.) | |
| Mobile | Mobile Phone Numbermobilephone TransformStandardized to international format (+1, +44, etc.) | |
| Company | Company Namecompany | |
| Title | Job Titlejobtitle | |
| Mailing Street | Street Addressaddress | |
| Mailing City | Citycity | |
| Mailing State | State/Regionstate | |
| Mailing Zip | Postal Codezip | |
| Mailing Country | Country/Regioncountry |
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 HubSpot.
- Lead Source
Zoho's Lead Source records how each contact came in (e.g. Website, Referral, Trade Show). HubSpot has a similar Original Source property, but its values are set by HubSpot tracking rather than by external imports.
If you need it. Create a custom property in HubSpot called Zoho Lead Source and map this column to it, then re-run this template.
- Tag
Zoho tags export as a comma-separated string. HubSpot uses static lists and properties rather than free-form tags.
If you need it. After import, create HubSpot static lists matching your Zoho tags and add contacts in bulk using a saved view.
- Description
Zoho's Description column holds free-text per contact. A push attaches this as a note on each contact it creates, which is a better home for this kind of context than a field. A contact already in your CRM keeps the notes it has.
If you need it. None needed if you push: the column is kept in your file and the push screen offers to attach it as a note on each contact the push creates. A contact already in your CRM keeps the notes it has, so pushing the same file twice does not add a second copy. If you are importing the CSV by hand instead, create a custom multi-line text property in HubSpot and map this column to it.
Formatting and cleanup
Zoho CRM exports rarely match the format HubSpot expects. Fix these first.
- 1.Lowercases and trims email addresses
- 2.Standardizes both Phone and Mobile numbers to international format (+1, +44, etc.)
- 3.Maps Zoho's Mobile field to HubSpot's mobilephone property (both numbers preserved)
- 4.Converts Mailing address columns to HubSpot's address, city, state, zip, and country properties
Or skip the manual work
Operelio runs this cleanup and mapping for you. Upload your Zoho CRM export and download a clean file for HubSpot, or connect HubSpot and push the records straight in. You see what will be created and updated before anything is written.
Zoho CRM to HubSpot 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 HubSpot's phone field and Mobile maps to mobilephone. You keep both numbers for each contact.
Will custom Zoho fields transfer?
This template maps the 12 standard fields listed above. Custom Zoho fields appear in the export but need manual mapping in Operelio to reach HubSpot.
What about Zoho deals and accounts?
This template handles contact records only. Deals, accounts, and pipeline data require separate exports and a different import process in HubSpot.
What happens to Zoho tags and lead source?
Neither maps to a default HubSpot property. See 'Columns we don't use' below for how to handle each one.
Will this create duplicates in HubSpot?
Operelio decides this, not the importer. A push matches on email, including the additional addresses a merge left behind on a contact, so a row lands on the existing contact rather than beside it. Updates fill blank fields only unless you choose otherwise, and the report shows the split before anything is written. Importing the file by hand follows HubSpot's own rule instead. HubSpot uses email as the unique identifier. Contacts with matching emails update the existing record. New emails create new contacts.