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
-
Import Template Import JSON file to n8n via Workflows → Add workflow → Import from File
-
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: Get API key from https://verifi.email Add credential to "Validate Email Address" node
Gmail OAuth2: Add credential to "Send Weekly Report" node Grant email sending permissions
- 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)
- Set Email Recipient
In "Send Weekly Report" node: Change "Send To" from placeholder to your email Optional: Add CC/BCC for multiple recipients
- Test
Add 3-5 test emails (mix of valid/invalid) Click "Execute Workflow" Verify sheet updates and email arrives
- 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 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: 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
Related Templates
Generate Product Ad Copy & CTAs with GPT-4 for Slack and Airtable
⚡ AI Copywriter Pro: Instant Ad Copy & CTA Generator Transform product details into compelling marketing copy in second...
Instagram Full Profile Scraper with Apify and Google Sheets
📸 Instagram Full Profile Scraper with Apify and Google Sheets This n8n workflow automates the process of scraping ful...
Compare Lists and Identify Common Items & Differences Using Custom Keys
This workflow compares two lists of objects (List A and List B) using a user-specified key (e.g. email, id, domain) and ...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments