Google Sheets + Gemini: article summaries you can reuse
Your research process probably looks like this: a spreadsheet full of links, a dozen open tabs, and “I’ll summarize this later” turning into “Where did I read that?” by Friday. Copy-paste notes drift. Titles get shortened. Sources go missing.
This Sheets Gemini summaries setup hits marketing leads and content strategists first, but founders running lean and analysts doing weekly scans feel it too. You will turn raw URLs into consistent, structured summaries that are actually searchable and reusable.
Below is the exact n8n workflow approach: pull URLs from Google Sheets, extract the main text, let Gemini produce a clean JSON summary, then write everything back into an “output” tab you can filter, tag, and reuse.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets + Gemini: article summaries you can reuse
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Decodo", pos: "b", h: 48 }
n2["<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/>Code in JavaScript"]
n3@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n5["<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/>Code in JavaScript1"]
n6@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n1 --> n2
n3 --> n5
n8 --> n1
n2 --> n3
n7 --> n8
n5 --> n7
n6 --> n8
n4 -.-> n3
n0 --> n6
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 trigger
class n3 ai
class n4 aiModel
class n6,n7 database
class n2,n5 code
classDef customIcon fill:none,stroke:none
class n2,n5 customIcon
The Problem: Research Notes Become Unusable Fast
Saving links is easy. Turning them into something you can use next week is the hard part. You read an article, grab a few lines, then the next one pulls you away. Later, you can’t remember which source said what, and the same ideas get “rediscovered” in meetings like they’re new. Meanwhile, someone asks for a quick roundup, and you are stuck re-opening tabs and trying to reconstruct your thinking from scattered highlights. It’s not just slow. It’s mentally exhausting.
The friction compounds. A messy link list turns into messy decisions.
- Manual summaries vary every time, so comparing articles side-by-side becomes guesswork.
- Key details like publication date and domain often get skipped, which makes your “source of truth” not very trustworthy.
- Long-form pages waste your time because you have to hunt for the real point buried in the middle.
- When the list grows past about 30 links, you stop using it and start over in a new doc.
The Solution: Structured Summaries Written Back to Sheets
This workflow starts with a simple input: a Google Sheet named “input” with one column called url. When you run it, n8n pulls each row, visits the page, and uses Decodo to extract the main text (so you are not summarizing navigation menus and cookie banners). That cleaned text is passed to an AI Agent connected to the Gemini Chat Model, which returns a structured response in JSON. Finally, n8n parses that JSON and appends a new row into a second sheet named “output” with the fields you actually need: title, source, published date (when available), main topic, three key ideas, a short summary, and the text type.
The workflow begins when you manually start it in n8n. It loops through every URL in the input tab, extracts the readable page text, then asks Gemini to produce consistent fields you can sort and reuse. When it’s done, your “output” tab becomes a living research database instead of a link graveyard.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you collect 20 links for a weekly newsletter. Manually, even a quick process is maybe 10 minutes per link between reading, pulling takeaways, and pasting notes, so that’s about 3 hours. With this workflow, you paste the 20 URLs into the “input” tab, run n8n, and wait while it processes them (often around 20 minutes total, depending on the sites). You get a filled “output” tab with titles, sources, and key ideas ready to skim, which means the “writing” part starts sooner.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for the input and output tabs.
- Decodo to extract the article’s main text.
- Decodo API key (get it from your Decodo dashboard).
Skill level: Beginner. You’re mainly connecting accounts and pasting an API key, plus light prompt tweaking if you want a specific format.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You run it when you’re ready. The workflow uses a manual start trigger, so you can collect links all day (or all week) and then process them in one clean batch.
Sheets provides the queue. n8n reads the “input” sheet and loops over each row using a batch iterator, which keeps the run stable even when you have lots of URLs.
Decodo extracts the readable text. For each link, the workflow fetches the page, strips out the clutter, and produces a text version that’s much easier for an AI model to summarize well.
Gemini turns text into structured fields. The AI Agent asks the Gemini Chat Model for a JSON response containing title, source, published date when available, main topic, three key ideas, a short summary, and the content type. Then n8n parses that JSON so it can be saved reliably.
Results land back in Google Sheets. A new row is appended to the “output” sheet for each URL, which means you can filter, search, and build a repeatable research library.
You can easily modify the output fields to match your workflow, like adding “Audience” or “Action Items” based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Set up the workflow to start manually so you can validate the input data and downstream processing.
- Add or select the Manual Execution Start node as the trigger.
- Leave the node parameters empty (this trigger has no required fields).
- Confirm the connection flows from Manual Execution Start to Retrieve Sheet Rows.
Step 2: Connect Google Sheets
Configure the input and output sheets used to read URLs and store the summarized results.
- Open Retrieve Sheet Rows and set Document ID to your spreadsheet, replacing
[YOUR_ID]. - Set Sheet Name to the input tab by selecting
input(valuegid=0). - Credential Required: Connect your Google Sheets credentials in Retrieve Sheet Rows (no credentials are currently configured).
- Open Append Sheet Row and set Document ID to the same spreadsheet, replacing
[YOUR_ID]. - Set Sheet Name to the output tab by selecting
output(value60764768). - Confirm the column mappings in Append Sheet Row use expressions like
{{ $json.url }},{{ $json.short_summary }}, and{{ $json.published_date }}. - Credential Required: Connect your Google Sheets credentials in Append Sheet Row (no credentials are currently configured).
Step 3: Set Up Scraping and Text Processing
Fetch page content and convert it into clean text that the AI agent can analyze.
- Open Iterate Records to ensure it receives data from Retrieve Sheet Rows and loops through each URL.
- Configure Web Scrape Service with Operation set to
universal. - Credential Required: Connect your Decodo credentials in Web Scrape Service (no credentials are currently configured).
- Review Transform HTML Text to confirm it extracts
url,fuente,titulo,article_text, andfecha_guardadofrom the scrape output. - Confirm the execution flow: Iterate Records → Web Scrape Service → Transform HTML Text.
Step 4: Configure the AI Analysis
Set up the agent prompt and connect the Gemini model to produce structured JSON summaries.
- Open LLM Analysis Agent and keep Prompt Type set to
define. - Ensure the Text field contains the full JSON schema and uses expressions like
{{ $json["url"] }},{{ $json["title"] }}, and{{ $json.fecha_guardado }}. - Confirm the system message is present in LLM Analysis Agent to enforce JSON-only output.
- Open Gemini Chat Model and connect it as the language model for LLM Analysis Agent.
- Credential Required: Connect your Google Gemini credentials in Gemini Chat Model (no credentials are currently configured). Add credentials to the parent model node, not the agent.
Step 5: Configure Output Parsing and Storage
Parse the AI output and append structured data to the output sheet, then loop to the next URL.
- Review Parse LLM JSON to ensure it parses
item.json.outputand outputs fields liketitle,source, andshort_summary. - Confirm the flow from LLM Analysis Agent → Parse LLM JSON → Append Sheet Row.
- Verify Append Sheet Row maps all required fields, including
{{ $json.main_topic }}and{{ $json.three_key_insights }}. - Check that Append Sheet Row loops back to Iterate Records to continue processing remaining URLs.
Step 6: Test and Activate Your Workflow
Run a manual test to confirm the full chain works end-to-end, then enable for production use.
- Click Execute Workflow and verify Manual Execution Start triggers the run.
- Check that Retrieve Sheet Rows outputs rows from your input sheet.
- Confirm Web Scrape Service returns content and Transform HTML Text outputs clean text fields.
- Validate LLM Analysis Agent returns a JSON-only response, and Parse LLM JSON outputs structured fields.
- Verify Append Sheet Row adds a new row to the output sheet with the mapped values.
- When satisfied, switch the workflow to Active to use it in production (still manual-triggered unless you replace the trigger).
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check your n8n Credentials panel and confirm the connected Google account still has access to both “input” and “output” sheets 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.
Frequently Asked Questions
About 30 minutes if your Google account is already connected.
No. You’ll connect Google Sheets, paste your Decodo API key, and adjust the AI prompt if you want different fields.
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 Decodo usage plus your Gemini API costs.
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 the part most teams should tweak. Change the fields requested in the AI Agent prompt, then mirror those fields in the “Parse LLM JSON” code step so n8n can reliably map them into columns. Common customizations include adding a “Category” column, saving a one-line “Newsletter hook,” and forcing a specific tone for the summary. If you want the published date to be stricter, you can tell Gemini to return “unknown” when it can’t confidently find one.
Usually it’s an expired Google auth token in n8n. Reconnect the Google Sheets credential and confirm the same account can open both the input and output spreadsheets. Also check that the sheet names match exactly (“input” and “output”), because a small mismatch can look like a permissions issue.
A few hundred links in a run is realistic on a typical setup, and self-hosting can scale further if your server is sized well.
Often, yes, because scraping + text cleanup + structured AI output is not a simple two-step Zap. n8n handles looping, branching, and “parse JSON then map to columns” logic cleanly, and you can self-host for high volume without paying per task. Zapier or Make can still work if you only summarize a small number of links and you want the quickest possible setup. The real deciding factor is control: if you care about consistent fields and reliable parsing, n8n tends to feel less fragile. If you want help choosing, Talk to an automation expert.
Once this is running, your “research” stops being a pile of tabs and starts behaving like an asset. Set it up, feed it links, and let the sheet do its job.
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.