Give it a name and a company: it asks Apollo, then Hunter, and returns a work email only when one is verified, never a guess.

UsesApolloHunter

Find a lead's verified work email

Give it a lead's first and last name, their company and the company's website, and it finds their work email. Apollo is asked first. If Apollo has no address it has verified, Hunter is asked next, and Hunter's answer counts only when Hunter has verified it, is at least 90% sure of it, and the company's mail server does not accept every address. The first verified address comes back with where it came from, plus the person's job title and LinkedIn page when they are known.

When neither finds a verified address, the result says 'not found' and no address is returned, because for cold outreach a wrong address costs more than a missing one. If Apollo or Hunter cannot be reached, or the lead's name or website is missing, the run stops with a message saying so instead of reporting 'not found'.

You need Apollo and Hunter connected; each lookup uses credits on your own plans. To look up one lead, fill in the four lead settings at the top and run it. To work through a list, run it from another workflow with the 'Run a workflow' step.

ValuesSet leadFirstName to blank.Set leadFirstName to blank.
ValuesSet leadLastName to blank.Set leadLastName to blank.
ValuesSet leadCompanyName to blank.Set leadCompanyName to blank.
ValuesSet leadCompanyDomain to blank.Set leadCompanyDomain to blank.
Decisions & LoopsIf a step below fails, save the error as notRunByAnotherWorkflowIf a step below fails, save the error as notRunByAnotherWorkflow
Try
TextUse firstName, or leadFirstName if it is empty and save it as leadFirstName.Use firstName, or leadFirstName if it is empty and save it as leadFirstName.
TextUse lastName, or leadLastName if it is empty and save it as leadLastName.Use lastName, or leadLastName if it is empty and save it as leadLastName.
TextUse companyName, or leadCompanyName if it is empty and save it as leadCompanyName.Use companyName, or leadCompanyName if it is empty and save it as leadCompanyName.
TextUse companyDomain, or leadCompanyDomain if it is empty and save it as leadCompanyDomain.Use companyDomain, or leadCompanyDomain if it is empty and save it as leadCompanyDomain.
On error
ValuesShow in the output: Run by hand, so the lead filled in at the top of this workflow is looked up..Show in the output: Run by hand, so the lead filled in at the top of this workflow is looked up..
TextReplace the pattern ^\s*(?:https?://)?(?:www\.)?([^/\s?#]+).*$ with $1 in leadCompanyDomain and save it as leadDomain.Replace the pattern ^\s*(?:https?://)?(?:www\.)?([^/\s?#]+).*$ with $1 in leadCompanyDomain and save it as leadDomain.
Decisions & LoopsIf leadFirstName is blank or leadLastName is blank or leadDomain doesn't contain…If leadFirstName is blank or leadLastName is blank or leadDomain doesn't contain…
Yes
Decisions & LoopsStop and report a problem: There is no lead to look up. Fill in leadFirstName, leadLastName and leadCompanyDomain (the company's website, such as acme.com) at the top of this workflow, then run it again. When another workflow runs this one, it must pass firstName, lastName and companyDomain.Stop and report a problem: There is no lead to look up. Fill in leadFirstName, leadLastName and leadCompanyDomain (the company's website, such as acme.com) at the top of this workflow, then run it again. When another workflow runs this one, it must pass firstName, lastName and companyDomain.
No
No steps
ValuesSet fullName to leadFirstName leadLastName.Set fullName to leadFirstName leadLastName.
ValuesSet resolvedEmail to blank.Set resolvedEmail to blank.
ValuesSet emailStatus to not found.Set emailStatus to not found.
ValuesSet emailSource to none.Set emailSource to none.
ApolloApolloEnrich person fullName. Save it as apollo.Enrich person fullName. Save it as apollo.
ValuesSet apolloEmail to apollo.person.email.Set apolloEmail to apollo.person.email.
Decisions & LoopsIf apolloEmail isn't blank and apolloEmail is not email_not_unlocked@domain.com…If apolloEmail isn't blank and apolloEmail is not email_not_unlocked@domain.com…
Yes
ValuesChange resolvedEmail to apolloEmail.Change resolvedEmail to apolloEmail.
ValuesChange emailStatus to verified.Change emailStatus to verified.
ValuesChange emailSource to Apollo.Change emailSource to Apollo.
No
No steps
TextUse apollo.person.title, or if it is empty and save it as leadTitle.Use apollo.person.title, or if it is empty and save it as leadTitle.
TextUse apollo.person.linkedin_url, or if it is empty and save it as leadLinkedinUrl.Use apollo.person.linkedin_url, or if it is empty and save it as leadLinkedinUrl.
Decisions & LoopsIf resolvedEmail is blankIf resolvedEmail is blank
Yes
HunterHunterFind leadDomain leadLastNames email at leadFirstName. Save it as hunter.Find leadDomain leadLastNames email at leadFirstName. Save it as hunter.
ValuesSet hunterEmail to hunter.email.Set hunterEmail to hunter.email.
ValuesSet hunterScore to hunter.score.Set hunterScore to hunter.score.
ValuesSet hunterAcceptAll to hunter.accept_all.Set hunterAcceptAll to hunter.accept_all.
Decisions & LoopsIf hunterEmail isn't blank and hunterScore is greater than or equal to 90 and…If hunterEmail isn't blank and hunterScore is greater than or equal to 90 and…
Yes
ValuesChange resolvedEmail to hunterEmail.Change resolvedEmail to hunterEmail.
ValuesChange emailStatus to verified.Change emailStatus to verified.
ValuesChange emailSource to Hunter.Change emailSource to Hunter.
Decisions & LoopsIf leadTitle is blankIf leadTitle is blank
Yes
TextUse hunter.position, or if it is empty and save it as leadTitle.Use hunter.position, or if it is empty and save it as leadTitle.
No
No steps
Decisions & LoopsIf leadLinkedinUrl is blankIf leadLinkedinUrl is blank
Yes
TextUse hunter.linkedin_url, or if it is empty and save it as leadLinkedinUrl.Use hunter.linkedin_url, or if it is empty and save it as leadLinkedinUrl.
No
No steps
No
No steps
No
No steps
ValuesSet enriched to a record of first name, last name, company, and 9 more.Set enriched to a record of first name, last name, company, and 9 more.
ValuesShow in the output: enriched.Show in the output: enriched.
Decisions & LoopsIf resolvedEmail is blankIf resolvedEmail is blank
Yes
ValuesShow in the output: Neither Apollo nor Hunter has a verified work email for fullName at leadDomain, so no address was returned rather than a guess. Check the spelling of the name and the company's website, or find the address another way.Show in the output: Neither Apollo nor Hunter has a verified work email for fullName at leadDomain, so no address was returned rather than a guess. Check the spelling of the name and the company's website, or find the address another way.
No
No steps