đź’¬ Validate email lists weekly with Google Sheets, VerifiEmail and Gmail reports

⚡ 165 views · 💬 Lead Nurturing & AI Sales Agents

Description

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

Health Score Formula

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

Ranges:


Prerequisites

Required:

Google Sheet Structure

ColumnTypeFilled By
row_numberNumberAuto-generated
nameTextYou
emailTextYou
statusTextWorkflow
checked_atTextWorkflow
notesTextWorkflow

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):

Validation API:

Gmail OAuth2:

3. Connect Google Sheet

In all three Google Sheets nodes:

4. Set Email Recipient

In “Send Weekly Report” node:

5. Test

6. Activate

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


Customization

Change Schedule: Edit “Weekly Schedule” node cron expression:

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 test@gmail.com

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


Validation Checks

Each email undergoes:

Categories:


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

đź”— Nodes Used

Google Sheets, Gmail, Schedule Trigger

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup