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

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