How to import ZoomInfo data into HubSpot
ZoomInfo exports contact lists as CSV files from Contact Search. This template maps the export to HubSpot's standard contact fields: names, email, job title, company, website, industry, LinkedIn profile, and the person's office address. ZoomInfo's Contact Search export ships one person phone column, Direct Phone, plus a Company HQ Phone; the main Phone field takes the first available of the two. Lifecycle Stage and Lead Status, which ZoomInfo's export doesn't carry, are set to Lead and New on every row. Phones are standardized, emails are lowercased, and country names are normalized. Mobile phone, intent, and scoop columns are tier-gated and not part of this template's expected column set. Data HubSpot has no standard field for, like Management Level and Job Function, is listed in the Columns we don't use section.
Field-by-field mapping
This is the complete column mapping from ZoomInfo 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 | |
| Job Title | Job Titlejobtitle | |
| Email Address | Emailemail TransformLowercased and trimmed | |
| Direct Phone → Company HQ Phone | Phone Numberphone HubSpot's main Phone field takes the first available work number: Direct Phone first, then Company HQ Phone. Whichever is present wins; the other is skipped. TransformStandardized to international format (+1, +44, etc.) | |
| "Lead" | Lifecycle Stagelifecyclestage Set on every row. ZoomInfo doesn't ship a lifecycle stage, and a freshly sourced Contact Search list is a Lead. Change the value, or remove it, in the column mapper if your process is different. | |
| "New" | Lead Statushs_lead_status Set on every row. ZoomInfo doesn't ship a lead status, and a newly imported prospect starts as New. Change the value, or remove it, in the column mapper if your process is different. | |
| Company Name | Company Namecompany | |
| Website | Website URLwebsite | |
| LinkedIn Contact Profile URL | LinkedIn Biohs_linkedinbio Maps to HubSpot's LinkedIn Bio property, the home for a contact's LinkedIn profile. The separate LinkedIn Company Profile URL column is not mapped here. | |
| Industry | Industryindustry ZoomInfo ships a single industry value per row, so it maps straight to HubSpot's Industry field. ZoomInfo's industry taxonomy does not match HubSpot's, so expect the import to create new picklist values. | |
| Person Street | Street Addressaddress ZoomInfo ships the person's office address. That address block maps to the contact's address fields. The company HQ address block is a separate set of columns and is not mapped. | |
| Person City | Citycity | |
| Person State | State/Regionstate | |
| Person Zip Code | Postal Codezip | |
| Person Country | Country/Regioncountry |
Columns we don't use
Your ZoomInfo export includes 23 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in HubSpot.
- Management Level
HubSpot Contacts has no native Management Level field. ZoomInfo's seniority tiers are useful for filtering, HubSpot just has no standard place for them.
If you need it. Map it by hand to a custom contact property with picklist values matching ZoomInfo's (C-Level, VP-Level, Director, Manager, Non-Manager).
- Job Function
HubSpot Contacts has no native Job Function field. Job Title already carries the role, and Job Function is ZoomInfo's broader category on top of that.
If you need it. Map it by hand to a custom contact property if you want ZoomInfo's function classification in HubSpot.
- Department
HubSpot Contacts has no native department field. The data is real and useful, HubSpot just has no standard place for it.
If you need it. Map it by hand to a custom contact property if you want department in HubSpot.
- Salutation
HubSpot Contacts has no native salutation field. ZoomInfo's honorific is useful for formal industries, HubSpot just has no standard place for it.
If you need it. Map it by hand to a custom contact property if you want the honorific in HubSpot.
- Email Domain
HubSpot Contacts has no native field for the email domain on its own. HubSpot derives the domain from the email address itself.
If you need it. None needed. The domain is already part of the Email Address this template maps.
- Company HQ Phone
HubSpot Contacts has two phone fields. ZoomInfo's Contact Search export ships no mobile phone column, so the Mobile Phone Number field stays empty and the main Phone field takes Direct Phone first, then Company HQ Phone. When Direct Phone is present, the HQ number is not used on the contact.
If you need it. Land the HQ phone on the HubSpot Company record in a separate pass if you need it.
- Company Fax
HubSpot Contacts has no native fax field, and ZoomInfo's Company Fax column is aging and mostly empty.
If you need it. None needed. This column is safe to ignore.
- Last Updated
HubSpot Contacts has no native field for when ZoomInfo last refreshed the record. It is useful for filtering stale rows before import, not after.
If you need it. Filter your ZoomInfo export on Last Updated before uploading, or map it by hand to a custom contact property.
- Source
Every ZoomInfo row carries the literal value 'ZoomInfo', so there is nothing to map per-row. HubSpot Contacts has no native lead-source field either.
If you need it. None needed. The template sets Lifecycle Stage and Lead Status as constants instead.
- Company Founded Year, Company Type, Stock Ticker, Company Description, LinkedIn Company Profile URL
These are company-level data points. HubSpot Contacts has no native fields for them, they belong on the HubSpot Company record.
If you need it. Run a separate ZoomInfo to HubSpot Companies pass to land these on the Company record.
- Company HQ Address, Company HQ City, Company HQ State, Company HQ Zip, Company HQ Country
HubSpot Contacts has one address block, which this template fills from ZoomInfo's Person address. The HQ address is a second address and there is no native place for it on the contact.
If you need it. Land the HQ address on the HubSpot Company record in a separate pass if you need it.
- SIC Code, NAICS Code
HubSpot Contacts has no native fields for industry classification codes. They are company-level data, and ZoomInfo ships them comma-separated.
If you need it. Run a ZoomInfo to HubSpot Companies pass, or map them by hand to custom properties.
- Company Employees, Company Revenue
HubSpot Contacts has no native fields for employee count or company revenue. These are company-level data points that belong on the HubSpot Company record.
If you need it. Run a separate ZoomInfo to HubSpot Companies pass to land these on the Company record.
Formatting and cleanup
ZoomInfo exports rarely match the format HubSpot expects. Fix these before you import.
- 1.Lowercases and trims email addresses
- 2.Standardizes phone numbers to international format (+1, +44, etc.)
- 3.Fills the main Phone field with the first available work number, checking Direct Phone, then Company HQ Phone
- 4.Sets Lifecycle Stage to Lead and Lead Status to New on every row, since ZoomInfo's export carries neither
- 5.Title-cases name fields, including ZoomInfo's ALL-CAPS job titles
- 6.Normalizes country names to a standard form
- 7.Trims whitespace and removes blank rows
Or skip the manual work
Operelio runs this cleanup and mapping for you. Upload your ZoomInfo export and download a clean, import-ready file for HubSpot.
ZoomInfo to HubSpot FAQ
How do I export from ZoomInfo?
In ZoomInfo Sales, open Contact Search, apply your filters, select the records you want, and click Export to download a CSV. Upload that CSV to Operelio.
How does the template handle ZoomInfo's phone columns?
ZoomInfo's Contact Search export ships a Direct Phone column for the person and a Company HQ Phone for the company switchboard. The main Phone field takes the first available work number, checking Direct Phone first, then Company HQ Phone. Mobile Phone is tier-gated to ZoomInfo's Advanced and Elite plans and is not part of this template's expected column set.
Why does the template set Lifecycle Stage and Lead Status?
ZoomInfo's export doesn't carry a lifecycle stage or a lead status, but HubSpot has both fields and reps expect them filled. A freshly sourced Contact Search list is a Lead in the New status, so the template sets Lifecycle Stage to Lead and Lead Status to New on every row. If your process uses different values, change them, or remove them, in the column mapper before you run the job.
Why aren't Management Level and Job Function mapped?
HubSpot Contacts has no standard fields for Management Level, Job Function, or Department. The data is real and useful, HubSpot just has no native place for it. Those columns are listed in the Columns we don't use section. If you want them in HubSpot, create a custom property and map the column to it by hand.
What if my ZoomInfo export has different columns?
ZoomInfo's column set varies by tier. This template expects the standard Contact Search column set. Tier-gated columns like Mobile Phone, Intent, and Scoops are not in the expected set, so the import won't reject rows when they're absent. If your export has extra columns, map them by hand in the column mapper.
Will this create duplicates if a contact already exists in HubSpot?
No. HubSpot uses email as the unique identifier for contacts. Rows whose email matches an existing contact update that record; rows with a new email create a new contact.