How to import Apollo.io data into Zoho Leads
Apollo.io exports people lists as CSV files. This template maps the export to Zoho's standard lead fields: names, email, job title, and company. Apollo ships four phone columns; Zoho Leads have one Phone field, so Mobile, Work Direct, Corporate, and Other are combined and the first available number wins, with Mobile taking priority. Lead Source is set to Apollo.io and Lead Status to Not Contacted on every row. Phones are standardized and emails are lowercased before import. Zoho Leads is leaner than Zoho Contacts (no Mailing address block, no Mobile, no LinkedIn), so most Apollo columns belong on the converted Contact and Account; the Columns we don't use section covers each one.
Field-by-field mapping
This is the complete column mapping from Apollo.io to Zoho Leads. The left column is the header in your CSV export. The right column is the Zoho Leads 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 → Work Direct Phone → Corporate Phone → Other Phone | Phone Zoho Leads have one Phone field. It takes the first available number: Mobile first, then Work Direct, then Corporate, then Other. Whichever is present wins; the rest are skipped. TransformStandardized to international format (+1, +44, etc.) | |
| Company | Company* | |
| "Apollo.io" | Lead SourceLead_Source Set on every row. Change the value, or remove it, in the column mapper if your process records lead source differently. | |
| "Not Contacted" | Lead StatusLead_Status Set on every row. This is Zoho'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. |
Required by Zoho Leads.
Columns we don't use
Your Apollo.io export includes 24 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in Zoho Leads.
- Email Status
Zoho Leads 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 Lead called Apollo Email Status, then map it by hand.
- Seniority
Zoho Leads 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 Lead called Seniority, then map it by hand.
- Departments
Zoho Leads have no native department field. Apollo ships several departments per row, comma-separated.
If you need it. Create a custom field on the Zoho Lead called Departments, then map it by hand.
- Corporate Phone, Other Phone, Company Phone
Zoho Leads have one Phone field, which this template fills from the first available of Mobile, Work Direct, Corporate, and Other. Company Phone is the same switchboard number as Corporate Phone in most exports.
If you need it. Add custom phone fields on the Zoho Lead if you want every number kept separately.
- Person Linkedin Url, Company Linkedin Url
Zoho Leads have no native LinkedIn field on the standard layout.
If you need it. Create a custom URL field on the Zoho Lead called LinkedIn, then map Person Linkedin Url to it by hand.
- Person City, Person State, Person Country
Zoho Leads have no native address block. Address fields live on the converted Contact's Mailing fields, not on the Lead itself.
If you need it. Add custom address fields on the Zoho Lead and map them by hand, or convert the lead and put the address on the resulting Contact.
- Website, Industry, # Employees, Annual Revenue, Company Description, Founded Year
These are company-level data points. Zoho Leads has Industry and Annual_Revenue at the API level, but Operelio's exposed Zoho Leads schema is the core lead field set.
If you need it. Enrich the lead in Zoho after import, or convert the lead to a Contact and Account and put these values on the Account record.
- Company Address, Company City, Company State, Company Country
Zoho Leads have no native address block, and the company-location columns are company-level data anyway.
If you need it. Land the company address on the Zoho Account record after the lead converts.
- Lists
Zoho Leads 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 Lead field in Zoho called Apollo List, then open the column mapper and route Lists to it.
- Created Date
Zoho Leads 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 Lead field in Zoho (date type) called Apollo Created Date, then route Created Date to it in the column mapper.
- Account Owner
Zoho Leads 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 Lead 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 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 Mobile, then Work Direct, then Corporate, then Other
- 4.Sets Lead Source to Apollo.io and Lead Status to Not Contacted on every row
- 5.Title-cases name fields
- 6.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 Leads.
Apollo.io to Zoho Leads FAQ
Why is the Email column filled with email_not_unlocked@domain.com?
That's Apollo's placeholder for records you haven't revealed on the free plan. The real email isn't included in the export until you spend a credit to reveal it or upgrade your Apollo plan. Filter those rows out of the CSV before mapping, or reveal them in Apollo first, so they don't land in Zoho as junk leads.
How do I export from Apollo.io?
In Apollo, open your saved People search or list, select the records you want, then click Export. Apollo emails you a CSV when the file is ready. Upload that CSV to Operelio to map it to Zoho Lead fields.
Why are these going to Zoho Leads instead of Contacts?
This template is for users treating Apollo people as net-new leads in Zoho. Leads are the right destination for prospects you haven't qualified yet. If you want to import them as Zoho Contacts with an Account link instead, use the Apollo.io to Zoho Contacts template, or convert them in Zoho after import.
Why does the template set Lead Source and Lead Status?
A freshly sourced Apollo list is a new lead from Apollo, so the template sets Lead Source to Apollo.io and Lead Status to Not Contacted on every row. Not Contacted is Zoho's standard new-lead status. If your org renamed its picklist, change the value in the column mapper before you run the job.
Zoho requires Last_Name and Company. What if my contacts have blanks?
Apollo reliably populates both fields, but the import will reject any row with a blank Last_Name or Company. Spot-check your CSV before upload, or fill blank cells with a placeholder like Unknown and update in Zoho after import.
Will this create duplicate leads in Zoho?
Zoho uses Email as the unique-value field on leads by default, so rows with matching emails update the existing record rather than creating a duplicate. You can change the match field in Setup, Data Administration, Deduplication if your team uses a different convention.