ZohoZoho CRMHubSpot ContactsHubSpot Contacts12 fields

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.

Try it freeNo credit card needed

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.

ZohoZoho CRM columnHubSpot ContactsHubSpot field
First NameFirst Namefirstname
Last NameLast Namelastname
EmailEmailemail

TransformLowercased and trimmed

PhonePhone Numberphone

TransformStandardized to international format (+1, +44, etc.)

MobileMobile Phone Numbermobilephone

TransformStandardized to international format (+1, +44, etc.)

CompanyCompany Namecompany
TitleJob Titlejobtitle
Mailing StreetStreet Addressaddress
Mailing CityCitycity
Mailing StateState/Regionstate
Mailing ZipPostal Codezip
Mailing CountryCountry/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. 1.Lowercases and trims email addresses
  2. 2.Standardizes both Phone and Mobile numbers to international format (+1, +44, etc.)
  3. 3.Maps Zoho's Mobile field to HubSpot's mobilephone property (both numbers preserved)
  4. 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.

Try it free

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.