Automated Cold Email Campaigns with Random Templates & Google Sheets Tracking

Go to Workflow
0 views
Built by Anir Agram Anir Agram
Created on June 13, 2026

Description

πŸ“Š 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

Nodes Used (3)

Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
Send Email
n8n-nodes-base.emailSend