n8nflow.net logo

Automated Cold Email Campaigns with Random Templates & Google Sheets Tracking

by Anir Agramβ€’Updated: Last update 3 days agoβ€’Source: n8n.io
Loading workflow viewer...

Getting Started

πŸ“Š Google Sheets Leads β†’ 🎲 Random Templates β†’ βœ‰οΈ Personalized Emails β†’ πŸ“ Status Tracking

What this workflow does

  • πŸ“Š Reads leads list from Google Sheets (Name, Email, Send Status)
  • πŸ” Filters out already-contacted leads (skips "SENT" status)
  • 🎲 Randomly selects email template from template library
  • ✏️ Personalizes subject and body with lead's name
  • πŸ“§ Sends emails one-by-one with delays between sends
  • βœ… Updates Google Sheet with send status and timestamp
  • πŸ” Loops through all unsent leads automatically

Why it's useful

  • ⚑ Automate cold outreach without manual copy-paste
  • 🎯 Avoid duplicate sendsβ€”tracks who's been contacted
  • πŸ“ Rotate email templates for A/B testing and variety
  • πŸ‘€ Personalization makes emails feel human, not spammy
  • ⏱️ Built-in delays prevent spam flags and rate limits
  • πŸ“Š Full audit trail of who received what and when

How it works

  • πŸ“Š Google Sheets (Leads) β†’ reads Name, Email, Send Status
  • 🚦 IF Node β†’ filters leads where Send Status β‰  "SENT"
  • πŸ”„ Loop Over Items β†’ processes leads one-by-one
  • πŸ“§ Google Sheets (Templates) β†’ fetches Subject + Body templates
  • 🎲 Code Node β†’ picks random template
  • πŸ”€ Merge β†’ combines lead data with template
  • ✏️ Edit Fields β†’ replaces [Name] with actual lead name
  • πŸ“¨ Send Email β†’ delivers personalized message
  • ⏳ Wait β†’ adds delay between sends (avoids spam flags)
  • βœ… Google Sheets (Update) β†’ marks as "SENT" with timestamp

What you'll need

  • πŸ“Š Google Sheet #1: Leads (columns: Name, Email, Send Status, Time)
  • πŸ“§ Google Sheet #2: Templates (columns: Subject, Body)
  • πŸ“¬ SMTP credentials (SendGrid, Mailgun, etc.)
  • πŸ” Google Sheets OAuth

Setup steps

  • πŸ“Š Create "Leads" sheet with columns: Name | Email | Send Status | Time
  • πŸ“§ Create "Templates" sheet with columns: Subject | Body (use [Name] placeholder)
  • πŸ”— Connect Google Sheets OAuth credentials
  • πŸ“¬ Add SMTP email credentials
  • 🧭 Update both Google Sheets node IDs to point to your sheets
  • βš™οΈ Set "From Email" in Send Email node
  • πŸ§ͺ Test with 2-3 test leads first

Customization ideas

  • ⏱️ Adjust Wait time (30s-5min) to control send rate
  • πŸ“Š Add click tracking with UTM parameters
  • πŸ”” Send Slack/Telegram notification when campaign completes
  • 🎯 Add lead scoringβ€”prioritize high-value leads first
  • πŸ“ˆ Log opens/replies to separate tracking sheet

Who it's for

  • πŸ§‘β€πŸ’» Freelancers doing cold outreach to agencies
  • πŸ“ˆ Sales teams running lead generation campaigns
  • πŸš€ Startups reaching out to potential customers
  • 🎯 Marketers testing email copy variations
  • πŸ’Ό Business developers nurturing prospect lists

Quick Setup Guide

  • Before You Start - What You Need:
    πŸ“Š Google account for Sheets access
  • πŸ“§ SMTP email account (Gmail, custom domain, or email service)
  • πŸ“ List of leads (names + emails)
  • βœ‰οΈ Email templates ready (with [Name] placeholders)

Want help customizing?

πŸ“§ [email protected]
πŸ”— LinkedIn