Skip to main content

Validate email lists weekly with Google Sheets, VerifiEmail and Gmail reports

Workflow preview

Workflow preview
100%
Validate email lists weekly with Google Sheets, VerifiEmail and Gmail reports preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Email List Hygiene Automated Weekly Validator Overview Validates email lists through automated checks, categorizes results as Valid/Invalid/Risky, updates Google Sheets in real time, and delivers H...

Best for

  • Lead Nurturing automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.code, n8n-nodes-base.scheduletrigger, n8n-nodes-base.googlesheets, n8n-nodes-base.splitinbatches, n8n-nodes-verifiemail.verifiemail, n8n-nodes-base.if, n8n-nodes-base.gmail, n8n-nodes-base.merge

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Jitesh Dugar.

Original n8n.io source

1.1 Workflow description

Title
Validate email lists weekly with Google Sheets, VerifiEmail and Gmail reports
Workflow name
Validate email lists weekly with Google Sheets, VerifiEmail and Gmail reports

Email List Hygiene - Automated Weekly Validator

Overview

Validates email lists through automated checks, categorizes results as Valid/Invalid/Risky, updates Google Sheets in real-time, and delivers HTML reports. Runs every Friday at 5 PM via cron scheduling.


Workflow Architecture

Schedule Trigger → Read Google Sheets → Loop (Process Each Email)
    → Validate API → IF Branch (Valid/Invalid)
    → Update Google Sheets → Merge → Loop Back
    → Calculate Statistics → Send Email Report

Loop Mechanism

  • Split in Batches processes one email at a time
  • Each email: validate → branch → update sheet → merge → continue
  • Loop accumulates all results internally
  • "Done" output triggers statistics calculation after all emails processed

Health Score Formula

Score = (Valid% × 100) - (Invalid% × 20) - (Risky% × 10)
Bounded: 0-100

Ranges:

  • 80-100: Excellent (green)
  • 60-79: Good (orange)
  • 0-59: Needs Attention (red)

Prerequisites

Required:

  • Google account with Sheets access
  • Email validation API (VerifiEmail)
  • n8n v1.0+

Google Sheet Structure

Column Type Filled By
row_number Number Auto-generated
name Text You
email Text You
status Text Workflow
checked_at Text Workflow
notes Text Workflow

Only populate first three columns.


Setup

1. Import Template

Import JSON file to n8n via Workflows → Add workflow → Import from File

2. Configure Credentials

Google Sheets OAuth2 (used by 3 nodes):

  • Create credential via any Google Sheets node
  • Grant spreadsheet permissions
  • Apply same credential to all Google Sheets nodes

Validation API:

Gmail OAuth2:

  • Add credential to "Send Weekly Report" node
  • Grant email sending permissions

3. Connect Google Sheet

In all three Google Sheets nodes:

  • Select your spreadsheet from Document dropdown
  • Select sheet tab
  • Verify "Column to Match On" = row_number (for Update nodes)

4. Set Email Recipient

In "Send Weekly Report" node:

  • Change "Send To" from placeholder to your email
  • Optional: Add CC/BCC for multiple recipients

5. Test

  • Add 3-5 test emails (mix of valid/invalid)
  • Click "Execute Workflow"
  • Verify sheet updates and email arrives

6. Activate

Toggle "Active" switch. Workflow runs automatically every Friday at 5 PM.


Customization

Change Schedule: Edit "Weekly Schedule" node cron expression:

  • Daily 9 AM: 0 9 * * *
  • Monday 5 PM: 0 17 * * 1
  • First of month: 0 9 1 * *

Email Design: Edit HTML in "Send Weekly Report" message field. Modify colors (search hex codes), text, or add branding.

Archive Invalid Emails: Add Google Sheets Append node after "Update Invalid Status" → create "Invalid_Archive" tab → append email, name, reason, date

Slack Notifications: Add Slack node after email report → configure channel → use summary text from statistics

Rate Limiting: Add Wait node (1-2 seconds) after validation for large lists to prevent API throttling


Troubleshooting

"Column not found": Verify exact column names in sheet: row_number, name, email, status, checked_at, notes (case-sensitive)

Only processes 1 email: Check Google Sheets node Range field is empty or set to include all rows. Verify "Use Header Row" enabled.

Wrong statistics: Enable "Execute Once" in Calculate Statistics node settings (gear icon)

Email not arriving: Check spam/promotions folder, verify Gmail credential authorized, confirm recipient address correct

API errors: Verify API key valid, check quota not exceeded, test with simple email like [email protected]

Merge node error: Confirm both Update nodes connect to Merge inputs (top and bottom). Check both branches execute successfully.


Validation Checks

Each email undergoes:

  • RFC 5322 format compliance
  • MX record existence (domain has mail servers)
  • SMTP verification (mailbox exists)
  • Disposable email service detection
  • Catch-all domain detection

Categories:

  • Valid: All checks passed
  • Invalid: Critical checks failed
  • Risky: Disposable or catch-all domain

Support

Check execution logs in n8n Executions tab for errors. Use "Execute Node" on individual nodes to isolate issues. Visit n8n community forum for additional help.


Tags

email-validation marketing-automation data-cleaning google-sheets scheduled-workflow deliverability list-hygiene

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Calculate Statistics

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 2 - Weekly Schedule (Friday 5PM)

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.2

Block 3 - Read Email List

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 4 - Process Each Email

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 5 - Validate Email Address

Type / Role
n8n-nodes-verifiemail.verifiEmail - verifiEmail
Config choices
Version 1

Block 6 - Check Validation Result

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 7 - Process Valid Email

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 8 - Process Invalid Email

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 9 - Update Valid Status

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 10 - Update Invalid Status

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 11 - Send Weekly Report

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 12 - Merge1

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 13 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 14 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 15 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 16 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 17 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 19 - Sticky Note6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Validate email lists weekly with Google Sheets, VerifiEmail and Gmail reports
Complexity advanced
Nodes 20
Categories Lead Nurturing, AI Summarization
Author Jitesh Dugar
Published 03 Oct 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/9252/9252.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Validate email lists weekly with Google Sheets, VerifiEmail and Gmail reports do?

Email List Hygiene Automated Weekly Validator Overview Validates email lists through automated checks, categorizes results as Valid/Invalid/Risky, updates Google Sheets in real time, and delivers H...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Nurturing, AI Summarization use case.