🔓 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

Gmail + Google Sheets: follow ups sent, tracked

Lisa Granqvist Partner Workflow Automation Expert

You send a solid intro email, then… silence. A few days pass, the lead goes cold, and you realize you never followed up because the reply status lived in your inbox while your pipeline lived somewhere else. That disconnect is exactly why Gmail follow up automation matters.

This hits marketing managers hardest when campaigns create a flood of inbound interest, but sales time stays fixed. Agency owners feel it when client follow-ups turn into “did we ever reply?” Slack threads. And solo founders? You are doing all of it, which means follow-ups are the first thing to slip.

This workflow checks who replied, drafts a friendly reminder with Gemini, sends it in the original Gmail thread, and keeps Google Sheets accurate. You’ll see where leads stand without babysitting your inbox.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Gmail + Google Sheets: follow ups sent, tracked

The Challenge: Follow-Ups Fall Through the Cracks

Most B2B teams don’t lose leads because the offer is bad. They lose them because the follow-up system is basically “remember to check Gmail.” Replies arrive in threads, someone skims a few, and the tracker gets updated later (or not at all). Then you’re staring at a Google Sheet wondering why “Reminder needed?” still says Yes for someone who replied three days ago. It’s frustrating, and honestly a little embarrassing when you send a reminder to a person who already responded.

It adds up fast. Here’s where it breaks down in day-to-day work.

  • You waste about 10 minutes per lead searching threads, checking dates, and updating Sheets manually.
  • Reply tracking becomes inconsistent, so you follow up too early, too late, or not at all.
  • When your sheet is wrong, the rest of your pipeline reporting is wrong too, which means bad decisions in weekly reviews.
  • Writing “friendly nudges” drains attention because you keep rephrasing the same email while trying to sound human.

The Fix: Reply-Aware Follow-Ups That Update Your Sheet

This n8n workflow turns your follow-up process into something you can trust. It starts by checking Gmail for replies to your intro email (based on a subject template you already use), then it marks those leads as “no reminder needed” in Google Sheets. Next, it pulls the remaining leads from your tracker and filters to the ones whose intro email date is older than about 5 days. For each eligible lead, Gemini drafts a short, casual reminder using fields you already track (first name, company name, and the original message/pain point). Finally, the workflow finds your original sent message, replies in the same Gmail thread (so context stays intact), and logs the reminder date back into the spreadsheet.

The workflow starts with Gmail and your lead tracker in Google Sheets. Gemini handles the writing, then Gmail sends the reply on the original thread. Google Sheets gets updated immediately so your “what’s next?” view stays clean.

What Changes: Before vs. After

Real-World Impact

Say you have 40 leads in your sheet this week and 15 are sitting past the 5-day mark. Manually, you’ll spend maybe 10 minutes per lead checking the thread, confirming dates, writing a reminder, then updating Sheets, so roughly 2.5 hours. With this workflow, you launch it (or schedule it), and the only “work” is reviewing a few sent reminders afterward, maybe 10 minutes total. That’s a couple hours back, and the tracker stays accurate the whole time.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Gmail to search replies and send thread replies
  • Google Sheets for your lead tracker and status fields
  • Google Gemini (PaLM) API Key (get it from Google AI Studio / Gemini API in Google Cloud)

Skill level: Intermediate. You’ll connect accounts, map sheet columns, and adjust a Gmail search query.

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

The Workflow Flow

A manual launch (or schedule) kicks things off. The template uses a manual trigger today, but you can run it daily or a few times a week once it’s dialed in.

Gmail gets scanned for replies to your intro email. It searches your inbox for messages that match your introductory subject template, then it uses that to determine which leads have replied.

Google Sheets is updated and filtered. For leads who replied, the workflow marks “Reminder 1 needed?” as No. Then it pulls the remaining rows and checks whether the Intro email Date is older than about five days.

Gemini drafts the reminder, Gmail sends it, and Sheets logs it. The AI writes a short first reminder using the lead’s first name, company, and original message, then the workflow finds the original sent thread and replies inside it. Finally, it updates Status, flips the reminder flag, and writes the reminder send date back to your tracker.

You can easily modify the “5 days” rule to 3 days or 7 days based on your sales cycle. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow starts manually and immediately fans out into three parallel branches for email retrieval, sheet processing, and delay handling.

  1. Add and open Manual Launch Trigger.
  2. Keep default settings (no parameters required).
  3. Confirm the parallel flow: Manual Launch Trigger outputs to both Retrieve Email Threads, Fetch Sheet Records, and Delay Window in parallel.

Tip: Parallel execution means Gmail thread retrieval, Google Sheets reads, and the wait timer all begin at the same time after manual запуск.

Step 2: Connect Google Sheets

These nodes read and update your lead tracking sheet and will power the reminder logic.

  1. Open Modify Sheet Row and set Document to [YOUR_ID] and Sheet to Form Filled.
  2. In Modify Sheet Row map Email ID to {{ $json.headers.from.match(/<([^>]+)>/) ? $json.headers.from.match(/<([^>]+)>/)[1] : '' }} and set Reminder 1 needed? to No.
  3. Credential Required: Connect your googleSheetsOAuth2Api credentials to Modify Sheet Row.
  4. Open Fetch Sheet Records and set Document to [YOUR_ID], Sheet to Form Filled, and add a filter lookup on Reminder 1 needed?.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials to Fetch Sheet Records.
  6. Open Log Reminder Update and confirm column mappings: Status = Reminder 1 Drafted, Email ID = {{ $('Retrieve Sent Threads').item.json.To }}, Reminder 1 needed? = Yes, Reminder 1 Email Date = {{ $now.format('dd-MMM-yyyy') }}.
  7. Credential Required: Connect your googleSheetsOAuth2Api credentials to Log Reminder Update.

⚠️ Common Pitfall: Ensure your Google Sheet column names match exactly (for example, Reminder 1 needed? and Intro email Date) or updates will fail.

Step 3: Connect Gmail and Email Filters

These nodes find original threads and send replies in the correct Gmail thread.

  1. Open Retrieve Email Threads and set Operation to getAll, Limit to 10, and the filter query to subject: <template of your introductory email> with Label set to CATEGORY_PERSONAL.
  2. Credential Required: Connect your gmailOAuth2 credentials to Retrieve Email Threads.
  3. Open Retrieve Sent Threads and set the query to =to: {{ $json.ClientEmail }} subject: Following up your interest with Label set to SENT.
  4. Credential Required: Connect your gmailOAuth2 credentials to Retrieve Sent Threads.
  5. Open Send Thread Reply and set Resource to thread, Operation to reply, Message to {{ $('Map Output Fields').item.json.ClientEmailBody }}, Thread ID to {{ $json.threadId }}, and Message ID to {{ $json.id }}.
  6. Optional: set Sender Name to < your sales team name> in Send Thread Reply.
  7. Credential Required: Connect your gmailOAuth2 credentials to Send Thread Reply.

Tip: The subject filter in Retrieve Email Threads should match your exact introductory email template to avoid pulling unrelated threads.

Step 4: Set Up AI Drafting and Parsing

The AI agent generates the reminder email body and outputs structured fields used by downstream Gmail actions.

  1. Open Reminder Draft Agent and keep the prompt as provided; it uses expressions like {{ $json['Email ID'] }}, {{ $json.Message }}, and {{ $json['Intro email Date'] }}.
  2. Confirm Reminder Draft Agent has output parsing enabled (hasOutputParser is true).
  3. Open Gemini Chat Engine and connect it as the language model to Reminder Draft Agent.
  4. Credential Required: Connect your googlePalmApi credentials to Gemini Chat Engine.
  5. Open Structured Output Decode and verify the JSON schema example is set to { "ClientEmail": "email id", "ClientEmailBody": "Content of email id" }.
  6. Open External API Call and ensure URL is set to {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }} if you plan to call an external tool.

Tip: Structured Output Decode and External API Call are AI sub-tools linked to Reminder Draft Agent; add any required credentials on the parent agent configuration, not the sub-node.

Step 5: Configure Logic, Mapping, and Timing

This step controls when a reminder is needed and maps AI output for Gmail replies.

  1. Open Conditional Branch and keep the rule: left value {{ DateTime.fromFormat($json["Intro email Date"], "dd/MM/yyyy").toMillis() }} is less than right value {{ DateTime.now().minus({ days: 5 }).toMillis() }}.
  2. Open Map Output Fields and assign ClientEmail to {{ $json.output.ClientEmail }} and ClientEmailBody to {{ $json.output.ClientEmailBody }}.
  3. Open Delay Window if you want to adjust the waiting behavior before Fetch Sheet Records runs.

⚠️ Common Pitfall: If Intro email Date is not in dd/MM/yyyy format, the date comparison in Conditional Branch will fail.

Step 6: Test and Activate Your Workflow

Run a manual test to verify threading, AI output, and sheet updates before turning it on for production.

  1. Click Execute Workflow on Manual Launch Trigger to run all three parallel branches.
  2. Check that Retrieve Email Threads pulls the correct Gmail threads and Modify Sheet Row updates Reminder 1 needed? to No.
  3. Verify Reminder Draft Agent produces structured output and Map Output Fields passes ClientEmailBody into Send Thread Reply.
  4. Confirm Gmail replies are sent in the correct thread and Log Reminder Update writes the reminder status and date to Google Sheets.
  5. When everything works, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Gmail credentials can expire or need specific permissions. If things break, check the n8n Credentials page and confirm the Gmail scope still allows reading and sending.
  • 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 Gmail follow up automation?

About an hour if your sheet columns are already set up.

Can non-technical teams implement this follow up automation?

Yes. There’s no coding, but you will need to map Google Sheets columns and paste in your Gmail subject template.

Is n8n free to use for this Gmail follow up 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 Google Gemini API usage costs, which depend on how many reminders you generate.

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 Gmail follow up solution to my specific challenges?

You can change the “older than 5 days” condition in the If node to match your cycle, then tweak the Gemini prompt in the AI Agent node to match your tone. Many teams also adjust the Gmail search query in the “Retrieve Email Threads” step to target a specific label or campaign subject. If you want a second reminder, duplicate the reminder branch and write back to new columns like “Reminder 2 needed?” and “Reminder 2 Email Date.”

Why is my Gmail connection failing in this workflow?

Usually it’s expired OAuth access or missing Gmail permissions in your n8n credential. Reconnect Gmail in n8n, then re-run a test search to confirm the inbox query returns results. Also check that your workflow is searching the right place (inbox vs. sent) and that your subject template matches what was actually sent.

What’s the capacity of this Gmail follow up solution?

If you self-host, capacity mostly depends on your server and Gmail API limits.

Is this Gmail follow up automation better than using Zapier or Make?

Often, yes, because this flow benefits from branching logic, parsing structured AI output, and doing multiple Gmail lookups in one run. n8n also gives you the option to self-host, which matters when reminders scale and execution counts climb. Zapier or Make can still work if you want a very simple “delay then email” setup, but they get awkward when you need to search threads, avoid duplicates, and keep a sheet perfectly in sync. The real difference is control: you can fine-tune the Gmail query, the date logic, and the AI prompt in one place. If you’re torn, Talk to an automation expert and we’ll sanity-check your setup.

Once this is running, follow-ups stop being a mental load. The workflow handles the repetitive nudges and logging, so you can focus on the conversations that actually move revenue.

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