How to import ZoomInfo data into Salesforce Contacts
ZoomInfo exports contact lists as CSV files from Contact Search. This template maps the export to Salesforce's standard contact fields: names, email, job title, department, the person's mailing address, and the LinkedIn profile URL. ZoomInfo's Contact Search export ships one person phone column, Direct Phone, plus a Company HQ Phone; Salesforce Contacts have one Phone field, so the two are combined and the first available number wins. The LinkedIn Contact Profile URL column maps to a custom LinkedIn_URL__c Contact field, so create that field on the Contact object in Salesforce before importing, or repoint the mapping in the column mapper. 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. This template creates Contact records; link each one to its Account by company name after import. Company-level data is listed in the Columns we don't use section.
Field-by-field mapping
This is the complete column mapping from ZoomInfo to Salesforce Contacts. The left column is the header in your CSV export. The right column is the Salesforce Contacts field it should map to.
| First Name | First NameFirstName | |
| Last Name | Last Name*LastName Salesforce requires a Last Name on every Contact. This template creates Contacts; link each one to its Account by company name after import. | |
| Job Title | Title | |
| Email Address | Email TransformLowercased and trimmed | |
| Direct Phone → Company HQ Phone | Phone Salesforce Contacts have one Phone field. Direct Phone and Company HQ Phone are combined into Phone, taking the first available number in that order. TransformStandardized to international format (+1, +44, etc.) | |
| Department | Department ZoomInfo ships a single department value per row, so it maps straight to Salesforce's Department field. | |
| Person City | Mailing CityMailingCity ZoomInfo ships the person's office address. Its city, state, and country map to the Contact's Mailing City, State, and Country. Salesforce Contacts in this template's schema have no Mailing Street or Postal Code field. | |
| Person State | Mailing StateMailingState | |
| Person Country | Mailing CountryMailingCountry | |
| LinkedIn Contact Profile URL | LinkedIn URLLinkedIn_URL__c Maps to a custom Salesforce field called LinkedIn_URL__c. Create that field on the Contact object in Salesforce before importing, or open the mapping in Operelio and point the column at a different field instead. |
Required by Salesforce Contacts.
Columns we don't use
Your ZoomInfo export includes 27 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in Salesforce Contacts.
- Company Name
Salesforce Contacts associate to an Account rather than carrying a company name on the Contact itself. This template creates Contact records; the Account link is a separate step.
If you need it. After import, link each Contact to its Account in Salesforce, or run a ZoomInfo to Salesforce Accounts pass first and match on company name.
- Website
The company website belongs on the Salesforce Account record, not the Contact.
If you need it. Run a separate ZoomInfo to Salesforce Accounts pass to land the website on the Account record.
- Industry
Salesforce Contacts have no native Industry field. Industry is company-level data and belongs on the Account record.
If you need it. Run a ZoomInfo to Salesforce Accounts pass to land industry on the Account, or map it by hand to a custom Contact field.
- Management Level
Salesforce Contacts have no native Management Level field on the standard layout. ZoomInfo's seniority tiers are useful for filtering, Salesforce just has no standard place for them.
If you need it. Map it by hand to a custom Contact picklist field with ZoomInfo's values (C-Level, VP-Level, Director, Manager, Non-Manager).
- Job Function
Salesforce Contacts have 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 field if you want ZoomInfo's function classification in Salesforce.
- Salutation
Salesforce Contacts have a Salutation field at the API level, but Operelio's Salesforce Contacts schema does not expose it by default.
If you need it. Map it by hand to the Salutation field after the template loads if you want the honorific on the Contact.
- Email Domain
Salesforce Contacts have no native field for the email domain on its own. The domain is already part of the email address.
If you need it. None needed. The domain is already part of the Email Address this template maps.
- Company HQ Phone
Salesforce Contacts have one Phone field, which this template fills from Direct Phone, then Company HQ Phone. ZoomInfo's Contact Search export ships no mobile phone column, so Direct Phone is the one that lands.
If you need it. Land the HQ phone on the Salesforce Account record in a separate pass if you need it.
- Company Fax
Salesforce Contacts have a Fax field at the API level, but Operelio's Salesforce Contacts schema does not expose it, and ZoomInfo's Company Fax column is aging and mostly empty.
If you need it. None needed. This column is safe to ignore.
- LinkedIn Company Profile URL
The company's LinkedIn page belongs on the Salesforce Account record, not the Contact.
If you need it. Run a separate ZoomInfo to Salesforce Accounts pass to land the company LinkedIn URL on the Account record.
- Company Employees, Company Revenue, Company Founded Year, Company Type, Stock Ticker, Company Description
These are company-level data points. Salesforce Contacts have no native fields for them, they belong on the Salesforce Account record.
If you need it. Run a separate ZoomInfo to Salesforce Accounts pass to land these on the Account record.
- Company HQ Address, Company HQ City, Company HQ State, Company HQ Zip, Company HQ Country
This template fills the Contact's Mailing address 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 Salesforce Account record in a separate pass if you need it.
- Person Street, Person Zip Code
This template's Salesforce Contacts schema maps Mailing City, State, and Country, but not Mailing Street or Postal Code.
If you need it. If you need the full mailing address on the Contact, map Person Street and Person Zip Code to MailingStreet and MailingPostalCode by hand in the column mapper.
- SIC Code, NAICS Code
Salesforce Contacts have 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 Salesforce Accounts pass, or map them by hand to custom Contact fields.
- Last Updated, Source
Salesforce Contacts have no native fields for when ZoomInfo last refreshed the record or the constant Source value. Source is the literal 'ZoomInfo' on every row.
If you need it. Filter your ZoomInfo export on Last Updated before uploading, or map either column by hand to a custom Contact field.
Formatting and cleanup
ZoomInfo exports rarely match the format Salesforce Contacts 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 single Phone field with the first available number, checking Direct Phone, then Company HQ Phone
- 4.Maps LinkedIn Contact Profile URL to the custom LinkedIn_URL__c Contact field
- 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 Salesforce Contacts.
ZoomInfo to Salesforce Contacts 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 to map it to Salesforce contact fields.
Why Salesforce Contacts instead of Leads?
Contacts are the right destination when the person already belongs to an account you work, or when your team skips the Lead object. If you're importing cold prospects, the ZoomInfo to Salesforce Leads template is the better fit for that. Both ship so you can pick at the destination picker.
How do Contacts link to Accounts?
This template creates Contact records. Salesforce Contacts associate to an Account rather than carrying a company name on the Contact itself, so the Company Name column is not mapped. After import, link each Contact to its Account in Salesforce, or run a ZoomInfo to Salesforce Accounts pass first and match on company name.
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. Salesforce Contacts have one Phone field, so the template fills it with the first available number, checking Direct Phone first, then Company HQ Phone. Mobile Phone is tier-gated and is not part of this template's expected column set.
Why is Mailing Street not mapped?
This template's Salesforce Contacts schema maps Mailing City, State, and Country, but not Mailing Street or Postal Code. ZoomInfo ships Person Street and Person Zip Code; if you need the full mailing address on the Contact, map those two columns to MailingStreet and MailingPostalCode by hand in the column mapper.
Will this create duplicate contacts?
Salesforce checks for duplicates based on your org's matching rules. Review your duplicate settings in Salesforce Setup before importing, especially if you already have contacts from the same ZoomInfo searches.