How to import Apollo.io data into Zoho Contacts
Apollo.io exports people lists as CSV files. This template maps the export to Zoho's standard contact fields: names, email, job title, company, and the person's mailing address. Apollo ships four phone columns; Zoho Contacts have two phone fields, so Mobile goes to the dedicated Mobile field and the Phone field takes the first available work number from Work Direct, Corporate, or Other. Phones are standardized, emails are lowercased, and country names are normalized. On Apollo's free tier the Email column shows the placeholder email_not_unlocked@domain.com for locked records. Company-level data like Industry and Annual Revenue belongs on the Zoho Account record and is listed in the Columns we don't use section.
Field-by-field mapping
This is the complete column mapping from Apollo.io to Zoho Contacts. The left column is the header in your CSV export. The right column is the Zoho Contacts field it should map to.
| First Name | First NameFirst_Name | |
| Last Name | Last Name*Last_Name | |
| Title | Title | |
| Email* On Apollo's free plan, unrevealed rows arrive as email_not_unlocked@domain.com. Filter those rows out or reveal them in Apollo before mapping. TransformLowercased and trimmed | ||
| Mobile Phone | Mobile Zoho Contacts have two phone fields. Apollo's Mobile Phone lands on the dedicated Mobile field. TransformStandardized to international format (+1, +44, etc.) | |
| Work Direct Phone → Corporate Phone → Other Phone | Phone Zoho's Phone field takes the first available work number: Work Direct Phone first, then Corporate Phone, then Other Phone. TransformStandardized to international format (+1, +44, etc.) | |
| Company | Account NameAccount_Name | |
| Person City | Mailing CityMailing_City Apollo ships both a person location and a company location. This template maps the person-location columns to the Contact's Mailing address fields. | |
| Person State | Mailing StateMailing_State | |
| Person Country | Mailing CountryMailing_Country |
Required by Zoho Contacts.
Columns we don't use
Your Apollo.io export includes 21 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in Zoho Contacts.
- Email Status
Zoho Contacts have no native field for an email confidence flag. Apollo's Verified, Unverified, Guessed, and Unavailable values are useful for filtering, Zoho just has no standard place for them.
If you need it. Create a custom field on the Zoho Contact called Apollo Email Status, then map it by hand.
- Seniority
Zoho Contacts have no native seniority field. The data is real and useful, Zoho just has no standard place for it.
If you need it. Create a custom picklist field on the Zoho Contact called Seniority, then map it by hand.
- Departments
Zoho Contacts have no native department field. Apollo ships several departments per row, comma-separated.
If you need it. Create a custom field on the Zoho Contact called Departments, then map it by hand.
- Corporate Phone, Other Phone, Company Phone
Zoho Contacts have two phone fields. Mobile fills the Mobile field and the Phone field is filled from the first available work number. Company Phone is the same switchboard number as Corporate Phone in most exports.
If you need it. Store the extra numbers on the matched Zoho Account record, or map them by hand to custom Contact fields.
- Person Linkedin Url, Company Linkedin Url
Zoho Contacts have no native LinkedIn field on the standard layout.
If you need it. Create a custom URL field on the Zoho Contact called LinkedIn, then map Person Linkedin Url to it by hand. Company Linkedin Url belongs on the Account record.
- Website, Industry, # Employees, Annual Revenue, Company Description, Founded Year
These are company-level data points. Zoho Contacts have no native fields for them, they belong on the Zoho Account record.
If you need it. Run a separate Apollo to Zoho Accounts pass to land these on the Account record.
- Company Address, Company City, Company State, Company Country
Zoho Contacts have one Mailing address block, which this template fills from Apollo's person-location columns. The company-location block is a second address and there is no native place for it on the Contact.
If you need it. Land the company address on the Zoho Account record in a separate pass if you need it.
- Lists
Zoho Contacts have no native field for the Apollo list a row came from. The list name is useful for segmenting prospects by campaign or saved-search source.
If you need it. Add a custom Contact field in Zoho called Apollo List, then open the column mapper and route Lists to it.
- Created Date
Zoho Contacts have no native field for the date Apollo added the row to your account. The value is useful for filtering older prospects or sorting by recency.
If you need it. Add a custom Contact field in Zoho (date type) called Apollo Created Date, then route Created Date to it in the column mapper.
- Account Owner
Zoho Contacts have no native field for the Apollo user assigned to a row. Account Owner is an Apollo user, not a Zoho user. The two are different identities and mapping them across needs a manual translation table.
If you need it. Add a custom Contact field in Zoho called Apollo Owner if you want to preserve the source of the record. Or use it as a filter in Apollo before exporting, so each exported file is single-owner.
Formatting and cleanup
Apollo.io exports rarely match the format Zoho Contacts expects. Fix these before you import.
- 1.Lowercases and trims email addresses
- 2.Standardizes phone numbers to international format (+1, +44, etc.)
- 3.Sends Mobile Phone to Zoho's dedicated Mobile field and fills the Phone field with the first available work number (Work Direct, then Corporate, then Other)
- 4.Maps Apollo's person-location columns to Zoho's Mailing City, State, and Country fields
- 5.Title-cases name fields
- 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 Apollo.io export and download a clean, import-ready file for Zoho Contacts.
Apollo.io to Zoho Contacts FAQ
Why is the Email column filled with email_not_unlocked@domain.com?
That's Apollo's placeholder for records whose email you haven't paid to reveal. It shows up on the free tier and on paid tiers once you've used your email credits. Bulk-delete those rows before upload, or upgrade your Apollo plan and re-export to reveal the real addresses.
How do I export from Apollo?
In Apollo, go to Search, then People, apply your filters, select records or save to a list, then click Export and choose CSV. Apollo emails you a CSV when ready. Upload that file to Operelio.
How does the template handle Apollo's four phone columns?
Zoho Contacts have two phone fields. Apollo's Mobile Phone lands on the dedicated Mobile field. The Phone field takes the first available work number, checking Work Direct first, then Corporate, then Other. All numbers are standardized to international format before import.
Where do company-level fields like Industry and Annual Revenue go?
In Zoho's data model, Industry, Annual Revenue, # Employees, and Website live on the Account record, not the Contact. This template doesn't push them to the Contact. After the contacts import and Zoho matches them to Accounts, enrich those Accounts separately, or run a dedicated Apollo to Zoho Accounts pass.
Will this create duplicates if a contact already exists in Zoho?
Zoho deduplicates Contacts on Email by default. Rows whose email matches an existing contact update that record. You can adjust the match field in Setup, Data Administration, Deduplication if your team uses a different convention.
Why isn't Person Linkedin Url mapped?
Zoho Contacts have no native LinkedIn field on the standard layout. The Columns we don't use section explains the custom-field workaround: add a URL field called LinkedIn to the Contact and map the column to it by hand.