🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Gmail: cold emails sent and logged

Lisa Granqvist Partner Workflow Automation Expert

You build a lead list, you plan to send “just a few” emails, and then the week disappears into copy-paste, tab switching, and second-guessing who you already contacted. One missed row turns into an awkward double-send. One forgotten update turns your sheet into fiction.

This Sheets Gmail outreach automation hits marketing managers running scrappy campaigns hardest, but agency owners and sales-minded founders feel it too. The outcome is simple: emails go out automatically and every lead gets logged as “sent” so you stop chasing your own spreadsheet.

Below, you’ll see how the workflow runs daily, pulls only the right rows, sends personalized Gmail messages, and marks each contact so you can scale outreach without the mess.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Google Sheets + Gmail: cold emails sent and logged

The Challenge: Cold outreach that doesn’t get tracked

Cold outreach sounds straightforward until you try to run it consistently. You draft an email, copy a name, paste an address, hit send, then go back to your Google Sheet and mark the row. Multiply that by a few dozen leads and the “quick task” becomes the kind of work you procrastinate. And when you’re interrupted (a call, a Slack ping, a client request), the tracking is the first thing to slip. That’s how duplicates happen, good leads get missed, and your reporting turns into guesswork.

It adds up fast. Here’s where it breaks down in real teams.

  • You end up sending the same cold email twice because “sent” wasn’t marked during a busy moment.
  • Rows get skipped when someone sorts or filters the sheet and forgets to reset it.
  • Personalization drops off because copying names and fields feels tedious after the first ten.
  • No one trusts the outreach log, so you waste time re-checking Gmail threads and Sent mail.

The Fix: Send from Sheets, then log it automatically

This workflow turns your Google Sheet into a lightweight outreach system. Every day at a set time, n8n checks your sheet for leads where “Is Email Sent” is blank (or not marked as yes). It pulls those rows, works through them in batches (so you don’t hammer Gmail limits), and sends a personalized email through your connected Gmail account using your template. Once Gmail confirms the send, the workflow updates that same row in Google Sheets to mark it as contacted. Next time it runs, those leads are ignored, which means no duplicates and no “did we email them already?” debates.

The workflow starts on a daily schedule. Then it retrieves only unsent leads, sends the Gmail message using fields like Name, and finally writes back to Google Sheets so your outreach log stays clean with almost no effort.

What Changes: Before vs. After

Real-World Impact

Say you send 20 cold emails a day from a sheet. Manually, it’s usually 3 minutes per lead between finding the row, personalizing, sending, and marking status, which is about an hour each day. With this automation, you spend maybe 10 minutes setting up the day’s list and checking replies, and n8n handles the sending plus the logging in the background. That’s roughly 4 hours back every week, without changing your offer or your list quality.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store leads and email status.
  • Gmail to send outreach with your template.
  • Google OAuth2 credentials (get it from Google Cloud Console).

Skill level: Beginner. You’ll connect Google accounts and map a few fields in the email template.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

Daily schedule kicks it off. At your chosen time (the example is set to mid-afternoon), n8n starts the run so outreach happens consistently without someone needing to remember.

Leads are pulled from Google Sheets. The workflow fetches rows where “Is Email Sent” isn’t marked as yes, which means you only touch people who have not been contacted yet.

Batches keep sending under control. Split-in-batches processes a manageable chunk of leads, then moves to the next chunk after each one is handled.

Gmail sends, then Sheets gets updated. The email is sent with personalization variables (like Name), and once it’s successful, the workflow writes back to the same row to mark it as sent.

You can easily modify the email copy to match your brand voice, or change the “sent” logic to use a date stamp instead of yes. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Start the workflow on a schedule so your lead outreach runs automatically.

  1. Add and open Scheduled Automation Start.
  2. Set your preferred schedule (for example, daily or weekly cadence).
  3. Confirm the connection from Scheduled Automation Start to Retrieve Lead List matches the execution flow.

Step 2: Connect Google Sheets

Pull leads from your spreadsheet and update their status after email dispatch.

  1. Open Retrieve Lead List and configure the spreadsheet, sheet, and range that contains your lead data.
  2. Open Modify Lead Status and configure the same spreadsheet and the columns used to mark outreach status.
  3. Credential Required: Connect your Google Sheets credentials in both Retrieve Lead List and Modify Lead Status.

⚠️ Common Pitfall: If you don’t specify the correct sheet and range, Lead Batch Iterator will have no items to process.

Step 3: Set Up Lead Batching

Iterate through each lead to send tailored outreach one record at a time.

  1. Open Lead Batch Iterator.
  2. Set the batch size to match how many emails you want to process per cycle (for example, 1 for one-at-a-time).
  3. Verify the flow: Retrieve Lead ListLead Batch IteratorDispatch Tailored Email.

Step 4: Configure Email Dispatch and Status Updates

Send the outreach email, then mark the lead as contacted in your sheet.

  1. Open Dispatch Tailored Email and define the recipient, subject, and body using data from the lead record.
  2. Credential Required: Connect your Gmail credentials in Dispatch Tailored Email.
  3. In Modify Lead Status, map the lead identifier and set the status field (e.g., “Sent”) to update after the email sends.
  4. Confirm the flow: Dispatch Tailored EmailModify Lead StatusLead Batch Iterator (looping through all leads).

Step 5: Test and Activate Your Workflow

Run a manual test to confirm data pulls, emails send, and statuses update correctly.

  1. Click Execute Workflow and observe a single lead flowing from Retrieve Lead List through Dispatch Tailored Email.
  2. Verify the email arrives in the recipient inbox and the corresponding row is updated by Modify Lead Status.
  3. If results look correct, toggle the workflow to Active to begin scheduled outreach.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Google Sheets OAuth2 credentials can expire or need specific permissions. If things break, check n8n’s Credentials screen and your Google Cloud OAuth consent scopes first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this Sheets Gmail outreach automation?

Usually about 30 minutes if your Google accounts are ready.

Can non-technical teams implement this cold outreach automation?

Yes. You’ll connect Google accounts and paste your email template, then map a couple of fields like Name and Email.

Is n8n free to use for this Sheets Gmail outreach workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in normal Gmail usage limits, but there are no per-email API charges here.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this Sheets Gmail outreach solution to my specific challenges?

Start with the two Google Sheets nodes and your Gmail send node, because that’s where most customization lives. Many teams replace the “Is Email Sent = yes” update with a date stamp like “Last Contacted,” which makes auditing easier. You can also add columns such as Company or Offer and reference them inside the Gmail message using n8n variables. If you need a different sending schedule, change the Schedule Trigger time and keep everything else the same.

Why is my Gmail connection failing in this workflow?

Most of the time it’s expired OAuth2 access or missing Gmail send permissions. Reconnect the Gmail credential in n8n, then verify the OAuth consent scopes you granted in Google. If you’re sending at higher volume, you can also hit Gmail daily limits, which causes sends to fail until the quota resets.

What’s the capacity of this Sheets Gmail outreach solution?

Practically, it’s gated by Gmail sending limits and whatever batch size you choose.

Is this Sheets Gmail outreach automation better than using Zapier or Make?

Often, yes, because this kind of “loop through rows, send, then write back” pattern is where n8n feels more flexible. Batching is straightforward, and you’re not forced into pricey task counts just to iterate through a list. Self-hosting is also a big deal if you want to run daily outreach without watching every execution. If you only send a handful of emails and want the simplest UI, Zapier or Make may still be fine. Talk to an automation expert if you want help choosing.

Once this is running, your sheet stays honest and your outreach stays consistent. Set it up once, then spend your time on replies and follow-ups instead of admin.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal