Google Sheets + EmailListVerify: validated emails
You’ve got a list of domains. You need emails you can actually send to. And somehow, the “simple” part turns into copy-paste chaos, guessing formats, and praying your bounce rate doesn’t spike.
This email validation automation hits SDRs hard, but growth marketers and small business owners feel it too. If you’re targeting small companies, generic inboxes like contact@ often work, but only if the address is real.
This workflow turns domains in Google Sheets into validated email addresses using EmailListVerify. You’ll learn what it does, what you need, and how to get it running without turning your lead gen into a spreadsheet marathon.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Google Sheets + EmailListVerify: validated emails
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:database", form: "rounded", label: "Save results", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Get list of domain", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Get list of email root", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Create email candidates"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Use EmailListVerify API to c.."]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Combine results"]
n6@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n5 --> n0
n1 --> n3
n2 --> n3
n3 --> n4
n3 --> n5
n6 --> n1
n6 --> n2
n4 --> n5
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n6 trigger
class n0,n1,n2 database
class n4 api
classDef customIcon fill:none,stroke:none
class n3,n4,n5 customIcon
Why This Matters: Turning Domains Into Deliverable Emails
Building a targeted list sounds straightforward until you realize domains aren’t contacts. Someone still has to decide which mailbox to try (contact@, hr@, accounting@), assemble the address, and then check if it’s deliverable. Doing that by hand is tedious, and it’s strangely easy to mess up: extra spaces, “www.” left in, missing rows, or mixing results from different patterns. Worse, you don’t feel the damage until after you’ve sent campaigns and your bounce rate climbs. That’s when inbox placement gets harder, not easier.
The friction compounds. Here’s where it usually breaks down.
- You end up guessing email formats, then finding out later that half of them never existed.
- Manual verification tools still require one-by-one entry, which drags when you’re testing 200+ domains.
- Results come back inconsistent, so cleaning and standardizing becomes its own mini-project.
- You lose confidence in the list, which means slower outreach and fewer conversations booked.
What You’ll Build: Domain-to-Validated Email Workflow
This workflow starts with a Google Sheet that holds two inputs: a list of domains and the email “root” (prefix) you want to try, like contact, hr, or accounting. When you run it, n8n pulls both lists, combines them into email candidates (like [email protected]), and then sends each candidate to EmailListVerify through an API call. As the validation results come back, the workflow merges everything into clean, standardized output rows and writes them back to Google Sheets. So instead of juggling tabs and verification tools, you get a single sheet that’s ready for outreach.
The workflow begins with a manual trigger, which is perfect for list-building sessions. Google Sheets supplies the domains and the prefixes, EmailListVerify confirms what’s valid, and n8n stores the final “yes/no + details” output right where your team already works.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you have 150 domains and you want to test two prefixes (contact and accounting). Manually, even a quick “build the email + submit to a checker + copy result” takes maybe 1 minute each, which is roughly 300 minutes (about 5 hours). With this workflow, you paste the domains once, run the automation, and let it validate in the background. You’ll spend about 10 minutes setting inputs and reviewing output, then you’re done.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for input domains and output results.
- EmailListVerify to validate candidate email addresses.
- EmailListVerify API key (get it from your EmailListVerify account dashboard)
Skill level: Beginner. You’ll connect accounts, paste a sheet template, and update one API key setting.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
You manually start the run. This workflow uses a manual trigger, so you kick it off when your sheet is ready (new domains added, new prefixes added, or both).
Google Sheets provides the inputs. n8n reads your domain list from one sheet tab and your email roots (prefixes) from another tab, so you can change targeting without touching the workflow.
Email candidates are assembled and validated. A merge step creates addresses like [email protected], then an HTTP request sends them to EmailListVerify to check validity. If you’re validating a lot, n8n processes items in batches so it doesn’t trip over large lists.
Results are merged and written back to Sheets. The validation response is combined with the original domain + prefix data, then stored as output rows so your sheet becomes the single source of truth.
You can easily modify the email prefixes to test different inboxes based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
This workflow starts manually and immediately runs two data pulls in parallel.
- Add the Manual Execution Start node as your trigger.
- Keep all default settings in Manual Execution Start (no fields are required).
- Connect Manual Execution Start to both Fetch Domain List and Retrieve Email Prefixes so they run in parallel.
Step 2: Connect Google Sheets
These nodes read input lists and later store validation results in Google Sheets.
- Open Fetch Domain List and set Document to
[YOUR_ID]and Sheet to[Input] domain. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Fetch Domain List.
- Open Retrieve Email Prefixes and set Document to
[YOUR_ID]and Sheet to[Input] partern. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Email Prefixes.
- Open Store Output Rows and set Document to
[YOUR_ID]and Sheet to[OutPut] emails. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Store Output Rows.
[YOUR_ID] placeholder with the correct Google Sheet ID, or the nodes will fail.Step 3: Set Up the Email Candidate Assembly and Validation
Combine domains and prefixes, then validate each assembled email address via the external API.
- Open Assemble Email Candidates and set Mode to
combineand Combine By tocombineAll. - Confirm Fetch Domain List connects to input 1 and Retrieve Email Prefixes connects to input 2 of Assemble Email Candidates.
- In Validate Email via API, set URL to
https://api.emaillistverify.com/api/verifyEmail. - Enable Send Query and set the query parameter email to
{{ $json.root }}@{{ $json.domain }}. - Set Authentication to
genericCredentialTypeand Generic Auth Type tohttpHeaderAuth. - Credential Required: Connect your httpHeaderAuth credentials in Validate Email via API.
- Credential Required: Connect your httpQueryAuth credentials in Validate Email via API.
- Ensure Assemble Email Candidates outputs to both Validate Email via API and Merge Validation Results in parallel.
Step 4: Configure Output Storage
Merge validation responses and append results to the output sheet.
- Open Merge Validation Results and set Mode to
combineand Combine By tocombineByPosition. - Verify Validate Email via API connects to input 2 of Merge Validation Results and Assemble Email Candidates connects to input 1.
- In Store Output Rows, keep Operation set to
append. - Map Email to
{{ $json.root }}@{{ $json.domain }}and Status to{{ $json.data }}in Store Output Rows.
Step 5: Test and Activate Your Workflow
Run a manual test to confirm valid output and then enable the workflow for regular use.
- Click Execute Workflow while viewing Manual Execution Start.
- Confirm both Fetch Domain List and Retrieve Email Prefixes return items, and that Validate Email via API responds with a status.
- Verify Store Output Rows appends new rows with Email and Status in the output sheet.
- When the test is successful, toggle the workflow Active to enable it for production use.
Troubleshooting Tips
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials section and confirm the connected Google account still has access to the copied template sheet.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Quick Answers
About 10 minutes if your Google Sheet is ready.
No. You’ll paste inputs into Google Sheets and connect an API key in n8n.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in EmailListVerify API costs (about $0.05 per email).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s the main reason this template is useful. You can swap the prefixes you’re testing by changing the values in the “pattern” sheet tab (for example, switch from contact@ to hr@ when recruiting). You can also add multiple prefixes to test several inboxes per domain in one run. If you want to validate only certain domains, filter your domain sheet first or add an If condition before the API validation step.
Usually it’s the Google authentication in n8n, not the workflow logic. Reconnect your Google Sheets credentials and confirm the account has access to the sheet you copied. Also check that the Google Sheets nodes are pointing to the right spreadsheet ID and tab names, because changing a tab name breaks lookups instantly. If it still fails, open the node’s error details and you’ll typically see a permissions or “not found” message.
Most small teams run a few hundred validations per batch without issues, and then scale up once they’re comfortable.
Often, yes, especially if you’re validating lots of rows and need batching, merging, and clean control over the output format. n8n is flexible with multi-step logic (merges, conditions, loops) and you can self-host for high-volume runs without worrying about per-task pricing. Zapier and Make can still do it, but the scenario usually grows beyond “simple zap” territory once you’re handling two inputs (domains + prefixes) and writing standardized output. If you’re only validating a handful of emails a week, a lighter tool might feel simpler. Talk to an automation expert if you want help picking the best setup.
Once this is set up, domains turn into validated emails on demand. Less doubt, fewer bounces, and a lead list you can actually use.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.