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.
Uses
Apollo
Hunter
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.
leadFirstName to blank.Set leadFirstName to blank.leadLastName to blank.Set leadLastName to blank.leadCompanyName to blank.Set leadCompanyName to blank.leadCompanyDomain to blank.Set leadCompanyDomain to blank.notRunByAnotherWorkflowIf a step below fails, save the error as notRunByAnotherWorkflowfirstName, or leadFirstName if it is empty and save it as leadFirstName.Use firstName, or leadFirstName if it is empty and save it as leadFirstName.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.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.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.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..^\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.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…fullName to leadFirstName leadLastName.Set fullName to leadFirstName leadLastName.resolvedEmail to blank.Set resolvedEmail to blank.emailStatus to not found.Set emailStatus to not found.emailSource to none.Set emailSource to none.fullName. Save it as apollo.Enrich person fullName. Save it as apollo.apolloEmail to apollo.person.email.Set apolloEmail to apollo.person.email.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…resolvedEmail to apolloEmail.Change resolvedEmail to apolloEmail.emailStatus to verified.Change emailStatus to verified.emailSource to Apollo.Change emailSource to Apollo.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.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.resolvedEmail is blankIf resolvedEmail is blankleadDomain leadLastNames email at leadFirstName. Save it as hunter.Find leadDomain leadLastNames email at leadFirstName. Save it as hunter.hunterEmail to hunter.email.Set hunterEmail to hunter.email.hunterScore to hunter.score.Set hunterScore to hunter.score.hunterAcceptAll to hunter.accept_all.Set hunterAcceptAll to hunter.accept_all.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…resolvedEmail to hunterEmail.Change resolvedEmail to hunterEmail.emailStatus to verified.Change emailStatus to verified.emailSource to Hunter.Change emailSource to Hunter.leadTitle is blankIf leadTitle is blankhunter.position, or if it is empty and save it as leadTitle.Use hunter.position, or if it is empty and save it as leadTitle.leadLinkedinUrl is blankIf leadLinkedinUrl is blankhunter.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.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.enriched.Show in the output: enriched.resolvedEmail is blankIf resolvedEmail is blankfullName 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.