Google Sheets to Gmail, cited newsletter drafts ready
Your “newsletter process” probably isn’t a process. It’s a pile of tabs, half-finished notes, and a constant fear you copied something wrong or missed the most important update.
This Sheets Gmail automation hits newsletter writers hardest, but marketing managers and agency operators feel it too. The goal is simple: open your inbox and find a ready-to-edit draft with citations, instead of spending your morning doing research scavenger hunts.
This workflow turns topics in Google Sheets into a researched newsletter draft delivered via Gmail. You’ll see what it automates, what you need to run it, and where people usually get stuck.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets to Gmail, cited newsletter drafts ready
flowchart LR
subgraph sg0["Scheduled Automation Start Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Automation Start", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Retrieve News List", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Iterate News Items", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Configuration", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route by Condition", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "News Analyst Agent", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/markdown.dark.svg' width='40' height='40' /></div><br/>Format Markdown Output"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Generate Headline", pos: "b", h: 48 }
n8@{ icon: "mdi:message-outline", form: "rounded", label: "Send Draft Email", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Research Lead Agent 🔬", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Planning Coordinator", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "Structured Result Parser", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Dispatch to Research Assista..", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Research Support Agent", pos: "b", h: 48 }
n14["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Combine Section Titles Text"]
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Assemble Article Body"]
n16@{ icon: "mdi:robot", form: "rounded", label: "Content Editor Agent", pos: "b", h: 48 }
n17@{ icon: "mdi:robot", form: "rounded", label: "Generate Final Title", pos: "b", h: 48 }
n18@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email Newsletter", pos: "b", h: 48 }
n19@{ icon: "mdi:wrench", form: "rounded", label: "Perplexity Tool Bridge", pos: "b", h: 48 }
n20@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Core", pos: "b", h: 48 }
n21@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Title", pos: "b", h: 48 }
n22@{ icon: "mdi:wrench", form: "rounded", label: "Perplexity Tool Lead", pos: "b", h: 48 }
n23@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Lead", pos: "b", h: 48 }
n24@{ icon: "mdi:wrench", form: "rounded", label: "Perplexity Tool Assistant", pos: "b", h: 48 }
n25@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Assistant", pos: "b", h: 48 }
n26@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Planner", pos: "b", h: 48 }
n27@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Editor", pos: "b", h: 48 }
n7 --> n8
n16 --> n17
n18 --> n2
n8 --> n2
n4 --> n5
n4 --> n9
n17 --> n18
n6 --> n7
n3 --> n4
n5 --> n6
n2 --> n3
n1 --> n2
n19 -.-> n5
n10 --> n12
n24 -.-> n13
n22 -.-> n9
n0 --> n1
n20 -.-> n5
n15 --> n16
n21 -.-> n7
n26 -.-> n10
n25 -.-> n13
n23 -.-> n9
n27 -.-> n17
n27 -.-> n16
n13 --> n14
n9 --> n10
n11 -.-> n10
n14 --> n15
n12 --> n14
n12 --> n13
end
subgraph sg1["Utility: Workflow Call Flow"]
direction LR
n28@{ icon: "mdi:play-circle", form: "rounded", label: "Utility: Workflow Call Trigger", pos: "b", h: 48 }
n29["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Utility: Perplexity Request"]
n30@{ icon: "mdi:swap-vertical", form: "rounded", label: "Utility: Build Response", pos: "b", h: 48 }
n29 --> n30
n28 --> n29
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0,n28 trigger
class n5,n7,n9,n10,n11,n13,n16,n17 ai
class n20,n21,n23,n25,n26,n27 aiModel
class n19,n22,n24 ai
class n4 decision
class n1 database
class n29 api
class n15 code
classDef customIcon fill:none,stroke:none
class n6,n14,n15,n29 customIcon
The Problem: Newsletter Research Is a Time Sink (and a Risk)
Writing a good newsletter isn’t the hard part. The hard part is the research treadmill that comes first: checking what happened, verifying it’s real, finding a source you can cite, then turning that into a clean structure you can publish without second-guessing every line. Most teams end up with a messy system of bookmarks, “read later” links, Slack messages, and a Google Doc that turns into a dumping ground. And when you’re rushed, you skip citations or do them sloppily, which is how credibility quietly dies.
It adds up fast. Here’s where it breaks down in the real world.
- You re-check the same stories in multiple places because yesterday’s notes are scattered.
- Drafting takes longer than it should because outlining and writing happen at the same time.
- Citations become a last-minute scramble, so you either omit them or paste ugly links everywhere.
- One missed news cycle turns into a “catch-up day” that steals your whole morning.
The Solution: Google Sheets Topics → Cited Drafts in Gmail
This workflow treats your newsletter like a repeatable system. It starts with a simple list of topics in Google Sheets (Bitcoin, Nvidia, your industry keywords, product category terms, whatever matters). On a schedule, n8n pulls that list, loops through each item, and hands the research off to a small “team” of AI agents. One agent builds an outline, another plans what to look for, assistants gather details using Perplexity (with sources), and an editor agent assembles everything into a clean draft. Then Gmail delivers it straight to you as a draft email, so your job becomes editing and publishing, not hunting and verifying.
The workflow starts on a daily schedule and reads your Google Sheets topic list. From there, it routes the request based on your preferred output (simple vs. detailed, plus the time window like day/week/month), gathers cited research, and formats it into newsletter-ready Markdown. Finally, it generates a strong headline and sends the draft into Gmail.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you cover 8 topics per day from a Google Sheet. Manually, you might spend about 10 minutes researching each topic, then another 40 minutes organizing, writing transitions, and hunting for links, so you’re at roughly 2 hours before you even “start writing.” With this workflow, you update the sheet (about 5 minutes), then let the agents research and assemble the draft while you do other work (often 15–25 minutes of waiting). You open Gmail to a cited draft and spend your time editing, not collecting.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store your topic list.
- Gmail to receive newsletter drafts as emails.
- Perplexity API key (get it from the API tab in your Perplexity account)
Skill level: Intermediate. You’ll connect accounts, add an API key, and tweak a few preferences like time window and report detail.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Scheduled start. The workflow runs automatically on a schedule (typically daily), so you don’t have to remember to kick it off.
Topic intake from Google Sheets. It pulls your list of monitoring topics and iterates through them in batches, which keeps things stable when you have a long list.
Research and drafting with AI agents. Based on the configuration you set (time window like day/week/month, plus simple vs. detailed), it routes to the right research path. A lead agent outlines the piece, a planner breaks it into tasks, assistants research each section using Perplexity (so sources are attached), and an editor agent combines everything into one coherent draft.
Headline + Gmail delivery. The workflow formats the content, generates a strong headline, and sends the draft to Gmail so it’s waiting in your inbox ready for edits.
You can easily modify the topics and the time window to match your publishing cadence. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
This workflow starts on a schedule and then pulls the latest news items for processing.
- Add and open Scheduled Automation Start.
- Set your preferred schedule in Scheduled Automation Start (e.g., daily or weekly run times).
- Confirm Scheduled Automation Start connects to Retrieve News List.
Step 2: Connect Google Sheets
News items are retrieved from a Google Sheet and iterated for processing.
- Open Retrieve News List and select the spreadsheet and sheet containing your news list.
- Credential Required: Connect your Google Sheets credentials.
- Verify Retrieve News List outputs to Iterate News Items.
- In Iterate News Items, set the batch size to control how many rows are processed per loop.
Step 3: Configure Routing and Core Analysis
The workflow assigns configuration data, routes items, and runs the initial analysis pipeline.
- Open Assign Configuration and add fields required by your logic (e.g., categories or priority flags).
- In Route by Condition, define the rules that decide whether an item goes to News Analyst Agent or Research Lead Agent 🔬.
- Confirm the execution order: Assign Configuration → Route by Condition → News Analyst Agent.
- Note that News Analyst Agent outputs to Format Markdown Output, which then feeds Generate Headline.
Step 4: Set Up AI/LLM Components and Tooling
This workflow uses multiple agents and language models. Configure credentials on the parent nodes and connect tools correctly.
- Connect OpenAI credentials to all LLM nodes: OpenAI Chat Core, OpenAI Chat Title, OpenAI Chat Lead, OpenAI Chat Assistant, OpenAI Chat Planner, and OpenAI Chat Editor.
- Ensure OpenAI Chat Core is connected as the language model for News Analyst Agent.
- Ensure OpenAI Chat Title is connected as the language model for Generate Headline.
- Ensure OpenAI Chat Lead is connected as the language model for Research Lead Agent 🔬.
- Ensure OpenAI Chat Assistant is connected as the language model for Research Support Agent.
- Ensure OpenAI Chat Planner is connected as the language model for Planning Coordinator.
- Ensure OpenAI Chat Editor is connected as the language model for both Content Editor Agent and Generate Final Title.
- For tool nodes, add credentials on the parent agents: Perplexity Tool Bridge (parent: News Analyst Agent), Perplexity Tool Lead (parent: Research Lead Agent 🔬), and Perplexity Tool Assistant (parent: Research Support Agent).
- For the parser, configure credentials on the parent node: Structured Result Parser is connected to Planning Coordinator.
Step 5: Configure Research, Assembly, and Editing Flow
The research branch expands content, then merges it into a structured article for editing.
- Confirm the research sequence: Research Lead Agent 🔬 → Planning Coordinator → Dispatch to Research Assistants.
- Dispatch to Research Assistants outputs to both Combine Section Titles Text and Research Support Agent in parallel.
- Ensure Research Support Agent feeds into Combine Section Titles Text, which then goes to Assemble Article Body.
- Verify Assemble Article Body outputs to Content Editor Agent, which then goes to Generate Final Title.
Step 6: Configure Email Outputs
Drafts and final newsletters are sent via Gmail at different stages.
- Open Send Draft Email and configure the recipient, subject, and body format for draft reviews.
- Credential Required: Connect your Gmail credentials.
- Open Send Email Newsletter and configure final delivery recipients and formatting.
- Credential Required: Connect your Gmail credentials.
- Confirm the flow: Generate Headline → Send Draft Email and Generate Final Title → Send Email Newsletter.
- Ensure both Send Draft Email and Send Email Newsletter loop back to Iterate News Items to continue the batch.
Step 7: Configure Utility Workflow Tooling (Perplexity)
A utility workflow handles Perplexity API requests and response formatting.
- Open Utility: Workflow Call Trigger and confirm it triggers Utility: Perplexity Request.
- Configure Utility: Perplexity Request with your Perplexity API request details.
- Credential Required: Connect your HTTP Request credentials (API key or auth method for Perplexity).
- Set Utility: Build Response to format the response fields used by the agents.
Step 8: Test & Activate Your Workflow
Validate the full workflow from data intake to email output before scheduling production runs.
- Click Execute Workflow to run a manual test from Scheduled Automation Start.
- Confirm a successful run includes items flowing through Retrieve News List, Iterate News Items, and at least one email sent from Send Draft Email or Send Email Newsletter.
- Check the run history to verify Dispatch to Research Assistants executed both branches in parallel and merged at Combine Section Titles Text.
- Once verified, toggle the workflow to Active to enable scheduled execution.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials panel and your Google account’s app access 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.
- Perplexity prompts and default AI instructions are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30–60 minutes once your accounts are ready.
No. You’ll connect Google, Gmail, and paste in an API key. The only “technical” part is choosing your options (time window and report detail).
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 Perplexity API usage, which depends on how many topics you process.
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.
Yes, and it’s a common tweak. Change the schedule trigger to weekly, then adjust the configuration step that controls the time window (day/week/month) so Perplexity gathers the right span of news. You can also swap the routing condition so a “detailed” report runs weekly while a “simple” report runs on other days. If you want multiple editions, duplicate the workflow and point each one to a different sheet tab or topic list.
Usually it’s expired Google credentials or the sheet permissions changed. Reconnect the Google Sheets credential in n8n, then confirm the spreadsheet is shared with the same Google account you authenticated with. Also check that the sheet name/tab hasn’t been renamed, because that can quietly break lookups.
Dozens per run is normal, but your practical limit is usually API cost and how long you’re willing to wait for research. On n8n Cloud, your monthly executions depend on your plan; self-hosting has no execution cap, but your server still has limits. If you’re running 50+ topics daily, consider batching topics into “editions” or using the simple report mode for most items.
Often, yes. This workflow uses multi-step logic, looping, and multi-agent research, which is where n8n tends to feel more flexible (and less expensive at higher volume) than Zapier-style task pricing. Zapier or Make can still be fine if you only need a simple “sheet row → email” automation with no research step. The moment you want branching, batching, or structured AI outputs, n8n is usually the calmer place to build. Talk to an automation expert if you want help choosing.
Once this is running, your “newsletter research day” turns into an inbox check and an edit. The workflow handles the repetitive digging so you can focus on voice, opinions, and sending something people actually want to read.
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.