🔓 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 to Gmail, personalized campaigns sent

Lisa Granqvist Partner Workflow Automation Expert

Writing “just one more promo email” sounds small until you’re on version seven, copying names from a spreadsheet, and second-guessing every subject line. Then you hit send and realize you used the wrong offer, or forgot to personalize the opening for half the list.

This Sheets Gmail campaigns automation is a relief for marketing managers trying to ship weekly promos, agency teams juggling multiple client lists, and business owners who do not have time to draft from scratch. You get consistent messaging, faster launches, and fewer messy mistakes.

Below, you’ll see how the workflow pulls your offer and audience from Google Sheets, uses AI to write the message, then sends a personalized campaign through Gmail. Clean, repeatable, and scalable.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Google Sheets to Gmail, personalized campaigns sent

The Challenge: Personalizing campaigns without losing your mind

Email campaigns fail in boring ways. Someone updates the offer in a sheet, but the draft in Gmail still uses last week’s pricing. A client list grows, and now you are duplicating emails, hunting for first names, and hoping you didn’t paste the wrong greeting. Even when you do everything “right,” the mental load is real. You are switching tabs, rewriting the same pitch, and trying to keep tone consistent across dozens (or hundreds) of recipients. Honestly, that’s not marketing. That’s clerical work with a deadline.

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

  • Offer details change in Google Sheets, but the email copy doesn’t get updated everywhere.
  • Personalization becomes “Hi {FirstName}” and nothing more because doing it properly takes too long.
  • One copy-paste error can send the wrong pricing or wrong name, and you will not catch it until replies arrive.
  • Campaign quality drifts over time because multiple people edit drafts with no shared structure.

The Fix: Generate and send personalized Gmail campaigns from Sheets

This workflow turns your Google Sheets into a simple campaign control center. When you add or update an offer in your “Offer” sheet, n8n automatically kicks off the process. An AI agent (using a Llama 3.2 chat model) reads the offer details and generates marketing copy that matches the structure you want, not a random blob of text. Then the workflow pulls your client list from a second sheet, merges in each client’s name and email, and assembles a clean email payload for every recipient. Finally, Gmail sends the messages out, one by one, with the right personalization baked in. You keep the spreadsheet workflow your team already understands, but the drafting and sending stops being manual busywork.

The automation starts with a Google Sheets trigger that watches for offer changes. AI generates the promo copy, then the workflow retrieves your client rows and formats a personalized email for each one. Gmail handles delivery, so your campaign is sent from the channel your customers recognize.

What Changes: Before vs. After

Real-World Impact

Say you run one weekly promo to a list of 120 clients. Manually, you might spend about 2 hours drafting, then another hour personalizing and double-checking names, pricing, and links before you send. With this workflow, you update the offer once in Sheet 1, keep your client list in Sheet 2, and let n8n generate and dispatch the emails. Your “hands-on” time drops to roughly 15 minutes, and the rest is automated processing and sending.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store offers and client lists.
  • Gmail to send campaigns from your mailbox.
  • Llama 3.2 API credentials (get it from your Llama/Ollama provider or hosted endpoint).

Skill level: Intermediate. You’ll connect Google + Gmail, map a few sheet columns, and paste an AI prompt that matches your brand voice.

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

The Workflow Flow

An offer update in Google Sheets triggers everything. When Sheet 1 changes (new promo, updated pricing, fresh dates), the workflow starts automatically so you are not relying on someone remembering to “run the campaign.”

AI turns raw offer details into campaign-ready copy. The AI agent reads what you entered in the offer sheet and generates structured content (subject line, intro, offer framing, CTA). This is where you lock in consistency.

Your client list is pulled from a second sheet and merged. The workflow retrieves names and emails from Sheet 2, then combines each row with the AI copy so every message is personalized without manual edits.

Gmail sends the finished emails. n8n assembles the final payload, then dispatches each email via the Gmail node, which keeps delivery in the Google ecosystem your team already uses.

You can easily modify the prompt and email formatting to match your tone, offer types, or segmentation rules. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Google Sheets Trigger

Set up the workflow trigger so a change in your offer sheet starts the AI email campaign process.

  1. Add the Monitor Offer Sheet Changes node as your trigger.
  2. Set Document to 1kRRDSoJNzVQAUbunYzAk-KUBcMjhuUw0PydGjLbbEVg and Sheet to Sheet2.
  3. Set the polling interval to everyMinute to check for new or updated offers.
  4. Credential Required: Connect your googleSheetsTriggerOAuth2Api credentials.

Tip: The Flowpast Branding sticky note is optional and can be kept for documentation or removed without affecting execution.

Step 2: Connect Google Sheets

Pull client email data from the customer sheet after a new offer is detected.

  1. Add Retrieve Client Sheet Data and connect it after AI Promo Copy Generator (as in the execution flow).
  2. Set Document to 1kRRDSoJNzVQAUbunYzAk-KUBcMjhuUw0PydGjLbbEVg and Sheet to Sheet1.
  3. Set Authentication to serviceAccount.
  4. Credential Required: Connect your googleApi credentials.

Step 3: Set Up AI Promo Copy Generator

Configure the AI agent and its language model so it can generate promotional copy from the offer data.

  1. Add AI Promo Copy Generator after Monitor Offer Sheet Changes.
  2. Set Text to =You are an expert sales copywriter. Based on the provided offer data, generate a persuasive and emotionally engaging promotional message for WhatsApp or Email that motivates immediate customer action. 🎯 **Objective:** Encourage purchases by emphasizing value, benefits, urgency, and exclusivity with a detailed, impactful message. 📌 **Format Guidelines:** - Keep under 150 words. - Use short, readable lines for WhatsApp/email. - Include 3–5 well-placed emojis for visual appeal. - Write in a warm, enthusiastic, benefit-driven tone. - Use bold hooks, clear product benefits, urgency, and rewards. - Structure with multiple unordered lists (`<ul>`) for impact and readability. 📋 **Offer Data:** - Title: {{ $json.title }} - Discount: {{ $json.discount }} - Validity: {{ $json.validity }} - Products Included: {{ $json.products_included }} - Original Price: {{ $json.original_price }} - Discounted Price: {{ $json.discounted_price }} - Bonus Item: {{ $json.bonus }} - Call to Action: {{ $json.cta }} --- 📢 **Message Structure:** 1. Start with a catchy, energetic title using 1–2 emojis and {{ $json.title }}. 2. Hook with emotional language (e.g., “refresh your style,” “upgrade your look”). 3. State {{ $json.discounted_price }} vs {{ $json.original_price }} and {{ $json.discount }} as a steal. 4. List {{ $json.products_included }} in a `<ul>` with specific benefits (e.g., fabric, fit, usage). 5. Highlight bundle value in a second `<ul>` (e.g., quality, versatility, savings). 6. Present {{ $json.bonus }} as an exclusive gift with an emoji (e.g., 🎁). 7. Emphasize urgency with {{ $json.validity }} and “limited stock” using ⏳. 8. End with a motivational line and {{ $json.cta }} to create FOMO. --- 🧾 **Sample Output Format:** 🔥 LAST CHANCE: {{ $json.title }}! 🌞 Ready to refresh your style? Grab this **limited-time deal** curated for you! 💸 Only {{ $json.discounted_price }} ({{ $json.discount }} OFF {{ $json.original_price }}) — save big now! ✨ **What’s Included:** <ul> <li>👕 Stylish Shirt – breathable cotton for all-day comfort</li> <li>👔 Classic T-Shirt – perfect for any summer vibe</li> </ul> 🛍️ **Why You’ll Love It:** <ul> <li>✔️ Premium quality at a steal</li> <li>✔️ Versatile looks for any occasion</li> <li>✔️ Curated bundle, no guesswork</li> </ul> 🎁 **Exclusive Bonus:** {{ $json.bonus }} – yours free! ⏳ **Hurry!** Offer ends {{ $json.validity }}. Limited stock! 👉 Don’t wait – {{ $json.cta }} now to slay the season in style! --- ✅ **Notes:** - Make the message personal, warm, and engaging. - Avoid robotic or templated language. - Use `<ul>` for product details and benefits to enhance readability. - Ensure clear formatting with emojis, short lines, and emotional appeal. - Do not include notes or explanations in the output.
  3. Add Llama Promo Chat Model and connect it as the language model for AI Promo Copy Generator with Model set to llama3.2-16000:latest.
  4. Credential Required: Connect your ollamaApi credentials in Llama Promo Chat Model (the AI agent uses this model, so credentials are applied there).

Step 4: Configure Output and Email Assembly

Aggregate client emails, merge in AI output, and send the campaign email.

  1. Add Assemble Email Payload after Retrieve Client Sheet Data.
  2. Set JavaScript Code to const emails = items.map(item => item.json.Emial); return [ { json: { allEmails: emails.join(", "), output : $('AI Promo Copy Generator').first().json.output } } ]; .
  3. Add Dispatch Client Email and connect it after Assemble Email Payload.
  4. Set Send To to {{ $json.allEmails }}, Message to {{ $json.output }}, Subject to Offer, and Email Type to text.
  5. Credential Required: Connect your gmailOAuth2 credentials.

⚠️ Common Pitfall: The code uses item.json.Emial (misspelled). Ensure your Google Sheet column matches this exact key or update the code to your correct column name.

Step 5: Test and Activate Your Workflow

Verify that the offer trigger generates AI copy, builds the recipient list, and sends emails correctly.

  1. Click Execute Workflow and update a row in the offer sheet to simulate a change.
  2. Confirm that AI Promo Copy Generator produces a formatted message and Assemble Email Payload outputs allEmails and output.
  3. Check that Dispatch Client Email sends the email to the combined list.
  4. Once successful, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Google Sheets permissions can be surprisingly strict. If the trigger stops firing, check the spreadsheet sharing settings and the connected Google account inside n8n credentials 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 campaigns automation?

Usually about an hour once your two sheets are ready.

Can non-technical teams implement this campaign sending automation?

Yes. No coding is required, but someone needs to be comfortable mapping sheet columns to email fields and testing with a small list first.

Is n8n free to use for this Sheets Gmail campaigns 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 Llama 3.2 API costs from your provider.

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 campaigns solution to my specific challenges?

You’ll mostly customize the AI Promo Copy Generator prompt and the Assemble Email Payload mapping. For example, you can add segmentation fields in Sheet 2 (industry, plan type, last purchase) and have the AI mention the most relevant angle. If you prefer approvals, route the assembled draft to a review step instead of sending immediately via Dispatch Client Email. You can also swap the model behind the Llama Promo Chat Model node if your team standardizes on a different hosted LLM.

Why is my Gmail connection failing in this workflow?

Most of the time it’s OAuth access expiring or the wrong Google account connected in n8n credentials. Reconnect Gmail, confirm the sender mailbox, then check Google Cloud Console settings if the Gmail API was disabled or restricted. If you’re sending to a big list, you can also hit Gmail sending limits, so the node may fail partway through a run.

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

It can comfortably handle hundreds of recipients per run, but you’ll still be limited by Gmail sending limits and your n8n plan/server resources.

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

Often, yes, if you want AI copy generation plus conditional logic without paying extra for every branch. n8n is also easier to keep predictable when the workflow grows, because you can self-host and avoid execution caps. Zapier and Make can still be fine for simple “new row → send email” automations, especially if you do not need an AI step. The bigger difference is control: prompts, formatting, and error handling are more flexible here. If you’re torn, Talk to an automation expert and explain your volume, approval needs, and email compliance requirements.

Once this is live, your spreadsheet becomes the single source of truth and Gmail becomes the delivery engine. You stop babysitting drafts and start shipping campaigns on schedule.

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