How to import ZoomInfo data into Salesforce Leads
ZoomInfo exports contact lists as CSV files from Contact Search. This template maps the export to Salesforce's standard lead fields: names, email, job title, company, website, industry, the office address, and the LinkedIn profile URL. The export ships Direct Phone plus Company HQ Phone; Salesforce Leads have one Phone field, so the two are combined and the first available number wins. The LinkedIn Contact Profile URL column maps to the custom LinkedIn_URL__c Lead field, so create that field on the Lead object in Salesforce before importing, or repoint the mapping in the column mapper. Lead Source is set to ZoomInfo and Status to Open - Not Contacted on every row. Phones, emails, and country names are standardized. Mobile phone, intent, and scoop columns are tier-gated and not part of this template. Data Salesforce has no standard lead field for is listed in the Columns we don't use section.
Field-by-field mapping
This is the complete column mapping from ZoomInfo to Salesforce Leads. The left column is the header in your CSV export. The right column is the Salesforce Leads field it should map to.
Before you start
This template's destination has 3 required fields that need attention before upload. You can still use this template. The steps below tell you what to add and where.
- Email
Salesforce Leads require Email when org-level validation is on. ZoomInfo's credit-based reveal model leaves Email blank for unrevealed contacts in some export configurations.
What to do. Reveal the contacts in ZoomInfo and re-export, or filter rows with blank Email out of your CSV before uploading.
- Last NameLastName
Salesforce requires Last Name on every lead. ZoomInfo exports ship a Last Name column on every row, so this is reliably populated.
What to do. Scan your CSV for blank Last Name rows before uploading.
- Company
Salesforce requires Company on every lead. ZoomInfo exports ship a Company Name column on every row, so this is reliably populated.
What to do. Scan your CSV for blank Company rows before uploading. Fill any blanks with a placeholder ('Unknown').
| First Name | First NameFirstName | |
| Last Name | Last Name*LastName | |
| Job Title | Title | |
| Email Address | Email* TransformLowercased and trimmed | |
| Direct Phone → Company HQ Phone | Phone Salesforce Leads 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.) | |
| Company Name | Company* | |
| Website | Website ZoomInfo ships the company website. Salesforce Leads store it on the Lead's Website field. | |
| Industry | Industry ZoomInfo ships a single industry value per row, so it maps straight to the Lead's Industry field. ZoomInfo's industry taxonomy does not match Salesforce's, so expect the import to create new picklist values. | |
| "ZoomInfo" | Lead SourceLeadSource Set on every row. Change the value, or remove it, in the column mapper if your process records lead source differently. | |
| "Open - Not Contacted" | Lead StatusStatus Set on every row. This is Salesforce's standard new-lead status. If your org renamed its Lead Status picklist, change the value in the column mapper to match before you run the job. | |
| Person Street | Street ZoomInfo ships the person's office address. That address block maps to the Lead's Street, City, State, Postal Code, and Country fields. The company HQ address block is a separate set of columns and is not mapped. | |
| Person City | City | |
| Person State | State/ProvinceState | |
| Person Zip Code | Zip/Postal CodePostalCode | |
| Person Country | Country | |
| LinkedIn Contact Profile URL | LinkedIn URLLinkedIn_URL__c Maps to a custom Salesforce field called LinkedIn_URL__c. Create that field on the Lead object in Salesforce before importing, or open the mapping in Operelio and point the column at a different field instead. |
Required by Salesforce Leads.
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 Salesforce Leads.
- Management Level
Salesforce Leads 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 Lead picklist field such as Management_Level__c with ZoomInfo's values (C-Level, VP-Level, Director, Manager, Non-Manager).
- Job Function
Salesforce Leads 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 Lead field if you want ZoomInfo's function classification in Salesforce.
- Department
Salesforce Leads have no native department field. The data is real and useful, Salesforce just has no standard place for it.
If you need it. Map it by hand to a custom Lead field called Department__c if you want department in Salesforce.
- Salutation
Salesforce Leads have a Salutation field at the API level, but Operelio's Salesforce Leads 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 Lead.
- Email Domain
Salesforce Leads 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 Leads 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 Leads have a Fax field at the API level, but Operelio's Salesforce Leads 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.
- Last Updated
Salesforce Leads have 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 Lead field.
- Source
The template already sets Lead Source to 'ZoomInfo' on every row, so the per-row column has nothing to add. Every ZoomInfo row carries the literal value 'ZoomInfo' anyway.
If you need it. None needed. Change the Lead Source value in the column mapper if your process uses a different label.
- LinkedIn Company Profile URL
The contact's LinkedIn profile is already mapped to LinkedIn_URL__c. This entry is the company LinkedIn page, which is company-level data and belongs on the Account record.
If you need it. Run a separate ZoomInfo to Salesforce Accounts pass, or map it by hand to a custom Account field.
- Company Revenue, Company Founded Year, Company Type, Stock Ticker, Company Description
These are company-level data points. Salesforce Leads 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
Salesforce Leads have 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 Lead.
If you need it. Land the HQ address on the Salesforce Account record in a separate pass if you need it.
- SIC Code, NAICS Code
Salesforce Leads 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 Lead fields.
- Company Employees
Salesforce Leads have no native employee-count field on the standard layout. Company Employees is company-level data that belongs on the Salesforce Account record.
If you need it. Run a separate ZoomInfo to Salesforce Accounts pass to land employee count on the Account record.
Formatting and cleanup
ZoomInfo exports rarely match the format Salesforce Leads 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 Lead field
- 5.Sets Lead Source to ZoomInfo and Status to Open - Not Contacted on every row
- 6.Title-cases name fields, including ZoomInfo's ALL-CAPS job titles
- 7.Normalizes country names to a standard form
- 8.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 Leads.
ZoomInfo to Salesforce Leads 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 lead fields.
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 Leads 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 to ZoomInfo's Advanced and Elite plans and is not part of this template's expected column set.
Why does the template set Lead Source and Status?
A freshly sourced ZoomInfo list is a new lead from ZoomInfo, so the template sets Lead Source to ZoomInfo and Status to Open - Not Contacted on every row. Open - Not Contacted is Salesforce's standard new-lead status. If your org renamed its Lead Status picklist, change the value in the column mapper to match before you run the job.
Does this template handle ZoomInfo's LinkedIn URLs?
Yes. The LinkedIn Contact Profile URL column is mapped to a custom Salesforce field called LinkedIn_URL__c. Create that field on the Lead object in Salesforce before importing, or open the mapping in Operelio and point the column at a different field instead. The separate LinkedIn Company Profile URL belongs on the Account record.
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 duplicate leads?
Salesforce checks for duplicates based on your org's matching rules. Review your duplicate settings in Salesforce Setup before importing to control how matches are handled, especially if you already have leads from the same ZoomInfo searches.