See llms.txt for all machine-readable content.

Back to Templates

Verify lead emails from websites with Apify and Google Sheets

Quick overview

This workflow reads lead website URLs from Google Sheets or accepts a URL list from another workflow, extracts emails with Apify Contact Details Extractor, verifies them with Apify Email Verifier, and then either appends the results to Google Sheets or returns the verified rows to the caller.

How it works

  1. Starts either manually (to process a Google Sheets list) or when invoked by another workflow/agent with a pageUrls input array.
  2. Collects and de-duplicates valid http(s) page URLs from the Google Sheets “Leads” tab (column website/url) or from the inbound pageUrls input.
  3. Sends the page URLs to Apify (skilled_glee/contact-details-extractor) to extract contact information, including any emails found on each page.
  4. De-duplicates extracted emails and keeps the first source page URL where each email was found.
  5. Sends the unique email list to Apify (skilled_glee/email-verifier) to check syntax, DNS/MX, disposable/role/free-provider flags, and typo suggestions (no SMTP mailbox check).
  6. Formats one output row per email with the verdict, reasons, and metadata, and either appends the rows to the Google Sheets “Verified” tab or returns them to the calling workflow.

Setup

  1. Add an Apify API token as HTTP Header Auth using Authorization: Bearer <APIFY_TOKEN> for both Apify HTTP requests.
  2. Add a Google Sheets OAuth2 credential and select the target spreadsheet in both Google Sheets nodes.
  3. Create a “Leads” sheet tab with a website (or url) column containing one http(s) page URL per row, ideally a contact page.
  4. Create a “Verified” sheet tab with header columns: website, email, verdict, reasons, dnsStatus, mxProvider, disposable, role, freeProvider, didYouMean, mailboxVerified, checkedBy, checkedAt.
  5. If calling this workflow from another workflow/agent, pass pageUrls as an array of http(s) URLs and note that results are returned to the caller and not written to Google Sheets.

Additional info

What it checks: syntax, domain MX / null MX / NXDOMAIN, disposable domain, role account, free provider, typo hint → pass / risky / fail. It does NOT connect to mail servers and does NOT confirm a mailbox exists (mailboxVerified is always false). Contact extraction is one page per URL over plain HTTP with pattern matching — review results. Cost (Apify pay-per-event, billed to your Apify token): $0.0015 per page processed + $0.001 per unique email checked. Each Actor call capped at $0.25 via maxTotalChargeUsd. Store: https://apify.com/skilled_glee/email-verifier · https://apify.com/skilled_glee/contact-details-extractor