🔓 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 + Google Gemini: cold emails drafted fast

Lisa Granqvist Partner Workflow Automation Expert

Your lead sheet keeps growing, but your “write personalized email” time doesn’t. So you stall. You copy-paste, rewrite the same intro 20 times, and still second-guess the tone before you hit send.

Sales reps feel it first. A marketing manager doing outbound campaigns feels it too. And if you run a small agency, you’re probably juggling this for multiple clients. This Gemini email drafts automation turns new rows in Google Sheets into review-ready cold email drafts.

Below you’ll see how the workflow works, what you get out of it, and what to watch out for when you customize it for your offer and voice.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Google Gemini: cold emails drafted fast

The Problem: Cold emails don’t scale when personalization is manual

Personalized outbound sounds simple until you’re staring at 80 leads and a blank page. You try to “just write faster,” but the real drag is the context switching. Look up the company, skim LinkedIn notes, figure out the angle, write a subject line, then do it again for the next row. And because it’s repetitive, mistakes creep in: wrong company names, generic fluff, or a tone that doesn’t match your brand. The worst part is opportunity cost. Time spent drafting is time you’re not following up, building lists, or improving the offer.

It adds up fast. Here’s where it usually breaks down.

  • Writing even “lightly personalized” emails for 50 leads can eat an entire morning.
  • Your team ends up using templates that look like templates, which means fewer replies.
  • Quality control is inconsistent because everyone has their own style and shortcuts.
  • Leads sit untouched in Google Sheets because nobody wants to start from scratch.

The Solution: Google Sheets to Google Gemini drafting, written back to the same row

This workflow runs on a schedule you choose, opens your Google Sheet, and pulls in the prospects you’ve listed (name, company, role, industry, notes, pain points). Then it checks a simple condition: has an email already been generated for this row? If yes, it skips it. If not, it sends that lead’s context into a Google Gemini prompt designed for your product and tone. Gemini returns a structured response (subject + body), so the output is predictable instead of messy. Finally, n8n writes the subject line and email body back into the correct spreadsheet row, which leaves you with drafts that are ready to review and send.

The workflow starts with a timed schedule trigger, then reads your sheet and filters for “new” leads only. Gemini drafts the email using your prompt, and n8n maps the response into your chosen columns before updating the sheet. No hunting for text in logs. It all lands where your team already works.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you add 40 new leads to Google Sheets each week. If a rep spends about 8 minutes per lead to research lightly and write a first draft, that’s roughly 5 hours before you even start sending. With this automation, you might spend 10 minutes tightening your Gemini prompt, then the scheduled run generates the drafts in the background and fills your “GeneratedSubject” and “GeneratedEmail” columns. Your “writing time” becomes review time, so you can scan, tweak, and send in one sitting.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for your lead list and output columns.
  • Google Gemini to generate the email subject and body.
  • Gemini API key (get it from Google AI Studio).

Skill level: Beginner. You’ll connect accounts, match column names, and adjust one main prompt.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A schedule kicks things off. The workflow runs daily (or however you set it) so your drafts show up consistently, without anyone remembering to “go generate emails.”

Your Google Sheet is read and normalized. n8n fetches the rows from your spreadsheet, then maps the fields into a clean structure so the AI prompt always receives the same inputs, even if your sheet has extra columns.

Only new leads go through. An “If” condition checks your output column (for example, “GeneratedEmail”). If it’s empty, the lead continues. If it’s already filled, the workflow skips it. Honestly, this one check prevents most accidental re-processing.

Gemini writes, then the sheet gets updated. The Gemini chat model generates a subject line and body, the structured parser keeps the response tidy (subject/body in JSON), and n8n writes those values back into the correct row so your team can review in place.

You can easily modify the prompt and output columns to match your offer and workflow. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Timed Schedule Trigger

Set up the schedule that kicks off the workflow to pull new leads and generate outreach emails.

  1. Add and open Timed Schedule Trigger.
  2. Set the interval rule to run every 30 minutes by configuring Interval with Field set to minutes and Minutes Interval set to 30.

Step 2: Connect Google Sheets

Pull lead data from your spreadsheet and prepare to write generated emails back to the same sheet.

  1. Open Fetch Sheet Leads and select your Google spreadsheet in Document with [YOUR_ID] and your worksheet in Sheet Name with Your_Sheet_GID.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in Fetch Sheet Leads.
  3. Open Write Email to Sheet and confirm it targets the same Document [YOUR_ID] and Sheet Name Your_Sheet_GID.
  4. Set Operation to update in Write Email to Sheet.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Write Email to Sheet.

Step 3: Set Up Email Drafting Chain

Configure the AI prompt, language model, and output parser to generate structured subject lines and email bodies.

  1. Open Email Drafting Chain and set Prompt Type to define.
  2. Paste the full prompt into Text (include the dynamic lead fields like {{ $('Fetch Sheet Leads').item.json.Name }}, {{ $('Fetch Sheet Leads').item.json.Company }}, and {{ $('Fetch Sheet Leads').item.json.Title }}).
  3. Ensure Has Output Parser is enabled on Email Drafting Chain so the structured parser is used.
  4. Open Gemini Chat Engine and set Model Name to models/gemini-2.5-flash.
  5. Credential Required: Connect your googlePalmApi credentials in Gemini Chat Engine.
  6. Open Structured Response Parser and confirm the JSON Schema Example matches the two keys subject and email_body.
  7. Note: Structured Response Parser is an AI sub-node—credentials are added on the parent Email Drafting Chain through Gemini Chat Engine, not on the parser itself.

Step 4: Configure Routing and Field Mapping

Route only rows that do not already have an email, then map AI output into fields and write back to the sheet.

  1. Open Conditional Gate and set two conditions to check emptiness: Left Value {{ $json.email_body }} with Operation empty, and Left Value {{ $json.subject }} with Operation empty.
  2. Confirm the execution flow: Timed Schedule TriggerFetch Sheet LeadsConditional GateEmail Drafting ChainMap Sheet FieldsWrite Email to Sheet.
  3. In Map Sheet Fields, set updated_email to {{ $input.item.json.text }}.
  4. In Write Email to Sheet, map columns as follows: Email to {{ $('Fetch Sheet Leads').item.json.Email }}, subject to {{ $json.output.subject }}, and email_body to {{ $json.output.email_body }}.

⚠️ Common Pitfall: If your sheet already has values in subject or email_body, Conditional Gate will block the email generation because it only passes empty fields.

Step 5: Test and Activate Your Workflow

Run a manual test to verify lead selection, AI output, and sheet updates, then activate the schedule.

  1. Click Execute Workflow to run a manual test from Timed Schedule Trigger.
  2. Confirm Fetch Sheet Leads returns rows with empty subject and email_body.
  3. Verify Email Drafting Chain outputs a JSON object with subject and email_body and that Write Email to Sheet updates the correct row by Email.
  4. When the test looks correct, toggle the workflow Active to enable the 30-minute schedule.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets permissions can be tricky if the sheet is owned by a different account. If updates fail, check the credential in n8n and confirm the spreadsheet is shared with the connected Google user.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Google Gemini outputs depend heavily on your prompt and variables. If drafts feel generic, tighten your prompt and make sure your column names match exactly (FirstName vs First Name causes silent “missing context”).

Frequently Asked Questions

How long does it take to set up this Gemini email drafts automation?

About 30 minutes if your sheet is ready and you have a Gemini API key.

Do I need coding skills to automate Gemini email drafts?

No. You’ll mostly connect Google credentials and edit the prompt text. The only “technical” part is matching your Google Sheets column names to the variables used in the workflow.

Is n8n free to use for this Gemini email drafts 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, which depends on how long your prompts and drafts are.

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.

Can I customize this Gemini email drafts workflow for different industries and tones?

Yes, and you should. Update the prompt in the Email Drafting Chain so it includes your offer, your rules (length, style, CTA), and a few examples of “good” emails in your voice. Common customizations include adding a “PainPoint” column, inserting a specific call to action, and generating two subject line options instead of one.

Why is my Google Sheets connection failing in this workflow?

Most of the time it’s the wrong Google account or missing access to the spreadsheet. Reconnect the Google Sheets credential in n8n, then confirm the sheet is shared with that same account. Also check that the workflow is pointing at the right spreadsheet and tab, because copying a sheet often changes IDs behind the scenes.

How many leads can this Gemini email drafts automation handle?

On n8n Cloud Starter, you can usually run thousands of executions per month, and self-hosting has no execution cap (it mainly depends on your server). In practice, the bottleneck is Gemini request speed and API limits, so large lists are best processed on a schedule or in batches. If you’re generating drafts for a few hundred leads a week, it’s typically fine. If you’re doing tens of thousands, you’ll want throttling and careful prompt sizing.

Is this Gemini email drafts automation better than using Zapier or Make?

Often, yes, because n8n handles more complex logic without turning every branch into an extra cost line item. You also get a self-hosting option, which is useful when you’re processing lots of rows on a schedule. Zapier or Make can still be a good fit for very simple “new row → generate text → update row” setups, especially if your team already uses them. But once you add structured outputs, filtering, retries, and brand-voice prompting, n8n tends to stay cleaner. If you’re torn, Talk to an automation expert and get a quick recommendation.

Once this is live, your Google Sheet stops being a graveyard of “leads to email someday.” It becomes a steady stream of drafts you can review and send.

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