Lead Outreach Automation with Google Sheets, Gmail, and n8n Workflow

Go to Workflow
1,066 views
Built by Muhammad Qaisar Mehmood Muhammad Qaisar Mehmood
Created on June 06, 2026

Description

🎯 Goal

Every 60 minutes:

Fetch only “New” leads from a Google Sheet
Send them a personalized email
Update their status to “Contacted” in the same sheet

🧩 Step-by-Step Explanation

1️⃣ 🕒 Trigger: Run Every Day
Node Name: Schedule Trigger
What it does: Automatically starts the workflow every 60 minutes (or your chosen interval).
Why it's needed: You don’t need to run the workflow manually — it runs on a timer, like a robot doing your follow-up.

2️⃣ 📄 Fetch Leads from Google Sheet
Node Name: Fetch Leads from Google Sheet
What it does: Connects to your Google Sheet and pulls all the rows of leads.
Expected columns:

Name
Email
Status (should be "New" if not yet emailed)

3️⃣ 🔍 Filter Only New Leads
Node Name: Filter Only New Leads
What it does: Filters only rows where Status = New.
Why it's needed: Prevents emailing the same lead twice. Old leads are ignored.

4️⃣ 🔁 Batch Process Leads
Node Name: Batch Process Leads
What it does: Splits filtered leads into individual batches (usually one-by-one).
Why it's useful: Helps avoid API rate limits or spam blocks by sending emails one at a time.

5️⃣ ✉️ Send Email to Lead
Node Name: Send Email to Lead
What it does: Sends a personalized email to each lead using their name and email.
How personalization works: Use variables like {{ $json["Name"] }} in the subject/body.

6️⃣ ✅ Mark Lead as Contacted
Node Name: Mark Lead as Contacted
What it does: Updates the row in Google Sheet, changing Status from New to Contacted.
Why it's important: Ensures this lead won't be processed again next time.

🔁 Loop Back

After updating the lead status, the flow loops back to process the next lead from the batch.

✨ Bonus Touch

This automation is clean, efficient, and scalable. You can later enhance it by:

Adding AI to write emails dynamically
Sending follow-up reminders
Tracking performance stats in another sheet

Nodes Used (2)

Gmail
n8n-nodes-base.gmail
Google Sheets
n8n-nodes-base.googleSheets