🔓 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

Slack + Google Gemini: blog drafts from RSS, ready to post

Lisa Granqvist Partner Workflow Automation Expert

Content ideas are everywhere until you need one right now. Then it’s 12 tabs, half-finished notes, and that annoying feeling that you’re “working” without actually producing anything.

Slack Gemini drafts is for the person who has to ship, not just brainstorm. A marketing manager trying to keep a calendar full, a founder writing between meetings, or a content lead feeding writers and stakeholders. You’ll pull fresh RSS headlines into Slack, pick a topic in-thread, and get a publish-ready draft back without leaving the channel.

This workflow turns Slack into your content control hub. Below, you’ll see how it works, what you need, and what outcomes you can expect once it’s running.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Slack + Google Gemini: blog drafts from RSS, ready to post

The Problem: Blog Ideation Gets Scattered (Fast)

RSS is great for staying informed, but it’s a terrible place to actually create. You read a headline, open it, then open two related links, then you copy a quote into a doc, then you try to turn that into a usable angle. Meanwhile, Slack keeps pinging, so you bounce back and lose your place. By the time you return to writing, the “easy post” has turned into an hour of context switching and a draft that still doesn’t have a hook.

It’s not one big issue. It’s a pile of small frictions that keep content from shipping.

  • Headlines live in feed readers, but your decisions and approvals happen in Slack.
  • Teams keep rewriting the same “trend” ideas, which means duplication and weaker originality.
  • Drafts get started in one place and finished somewhere else, so nobody knows what’s current.
  • Even a simple post can eat about 2 hours when you count sourcing, topic selection, and reformatting.

The Solution: Slack-First RSS-to-Draft Automation with Gemini

This n8n workflow pulls trending headlines from multiple RSS feeds and routes everything through Slack, so your ideation and drafting happen in the same place your team already works. You trigger it by typing a simple command in a Slack channel. n8n fetches fresh items from sources like Google News, Skift, and tech feeds, then combines them into one clean set. Google Gemini rewrites those raw headlines into unique topic options (not duplicates), and Slack posts them as a numbered list in a thread. You reply with the number you want, Gemini validates the angle and rewrites it slightly for originality, then generates a LinkedIn/blog-style draft and sends it right back into the same Slack thread.

The workflow starts with a Slack message trigger and a quick command parser. From there, RSS feeds are fetched and merged, Gemini turns headlines into usable topic options, and your selection in-thread becomes the input for a full draft. Finally, the draft lands back in Slack, already structured for publishing (markdown or plain text).

What You Get: Automation vs. Results

Example: What This Looks Like

Say you publish 3 posts a week. Before: you skim 3 feeds, open articles, copy headlines into a doc, and workshop angles, which is often about 2 hours per post once interruptions hit. After: you type start in Slack, scan a numbered list of topics, reply “gen 2,” then wait for the draft to come back (usually a few minutes). You still edit, obviously, but you get your starting point fast, and you keep the whole trail in one Slack thread.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Slack to trigger runs and receive drafts.
  • Google Gemini API to generate topics and full drafts.
  • Gemini API key (get it from Google AI Studio / your Google Cloud project)

Skill level: Intermediate. You’ll connect Slack credentials, paste an API key, and tweak prompts without breaking the logic.

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

How It Works

Slack command kicks it off. You type something like “start” in a channel, and the Slack Message Trigger fires. A small parsing step interprets what you asked for so the workflow can route correctly.

RSS feeds are fetched and combined. n8n pulls the latest headlines from your configured sources (Google News, Skift, tech news in this version), then merges them into a single list. This prevents you from scanning three different places and missing the good stuff.

Gemini turns headlines into selectable topics. The workflow builds a clean payload and sends it to Google Gemini, which rewrites headlines into unique topic ideas and clusters similar ones. Slack then posts a numbered topic list back into the thread so you can choose quickly.

Your reply generates the draft. When you reply in the same thread with a number (or “gen 3”), n8n pulls thread replies, selects the chosen topic, and asks Gemini to write a structured draft (hook, 3–5 insights, closing takeaway/CTA). The finished content is sent right back into Slack.

You can easily modify the RSS sources to match your niche, or change the draft format to match your CMS requirements. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Slack Trigger

This workflow begins when a message is posted in Slack. You’ll connect the trigger and specify which channel to listen to.

  1. Add and open Slack Message Trigger.
  2. Credential Required: Connect your slackApi credentials.
  3. Set Trigger to message.
  4. Set Channel ID to your target channel (current value is [YOUR_ID]).

⚠️ Common Pitfall: If the Slack app isn’t installed in the target channel, Slack Message Trigger will not fire. Ensure the app is invited to the channel.

Step 2: Route Commands and Build Parallel Feed Inputs

Slack messages are normalized, then routed into parallel feed fetches when the start command is received.

  1. Open Parse Slack Command and keep the provided jsCode to normalize Slack events into cmd, pick, and thread metadata.
  2. Open Route by Command and verify the rules use {{$json.cmd}} with right values start, gen, revise, and done.
  3. Route by Command outputs to Pull Tech News Feed, Retrieve Google News Feed, and Fetch Skift Feed in parallel.

Use the start command in Slack to kick off the parallel RSS fetch flow.

Step 3: Configure RSS Feed Sources

Each RSS node pulls headlines from a different source, then merges them into a single stream.

  1. Set Fetch Skift Feed URL to https://skift.com/feed/.
  2. Set Retrieve Google News Feed URL to https://news.google.com/rss/search?q=hotel+technology+OR+hospitality+tech+when:7d&hl=en-US&gl=US&ceid=US:en.
  3. Set Pull Tech News Feed URL to https://news.google.com/rss/search?q=[CONFIGURE_YOUR_API_KEY]+when:7d&hl=en-US&gl=US&ceid=US:en and replace the placeholder with your query string.
  4. Ensure Combine Feed Streams has Number of Inputs set to 3.

⚠️ Common Pitfall: If Pull Tech News Feed retains [CONFIGURE_YOUR_API_KEY], the request may return no results or fail parsing. Replace it with a valid query term.

Step 4: Prepare Headlines and Run Topic Clustering

Merged feed items are cleaned, deduplicated, and sent to Gemini for topic clustering.

  1. Open Build Headline Payload and confirm the script builds articleText and limits results with MAX_HEADLINES = 60.
  2. Open Gemini Topic Clustering and verify Model is models/gemini-1.5-flash with JSON Output enabled.
  3. Credential Required: Connect your googlePalmApi credentials in Gemini Topic Clustering.
  4. Ensure the prompt references {{$json.articleText}} so the clustered topics are generated from the merged feeds.

Step 5: Normalize and Post Topics to Slack

The workflow parses Gemini’s JSON into a clean list and posts it into the Slack thread.

  1. Open Normalize Topic Output and keep the parser that converts Gemini output into { topics: [{ topic: "..." }] }.
  2. Open Post Topic List and keep the Text expression set to {{ (function () { ... })() }} to format the numbered list.
  3. Credential Required: Connect your slackApi credentials in Post Topic List.
  4. Set Channel ID in Post Topic List to the same channel as the trigger (current value is [YOUR_ID]).
  5. Confirm Thread Timestamp uses {{$node["Parse Slack Command"].json.thread_ts || $node["Parse Slack Command"].json.ts}} to keep replies in-thread.

Step 6: Generate the Draft Post from Thread Replies

When a user replies with a topic number, the workflow fetches thread replies, selects the topic, and generates a draft post with Gemini.

  1. Open Get Thread Replies and keep Operation as replies with TS set to {{$node["Parse Slack Command"].json.thread_ts || $node["Parse Slack Command"].json.ts}}.
  2. Credential Required: Connect your slackApi credentials in Get Thread Replies.
  3. Review Select Topic from Thread to ensure it parses the numbered list and outputs topic for the next step.
  4. Open Generate Draft Post and confirm the prompt uses {{$json.topic}} and {{$json.articleText || ''}}.
  5. Credential Required: Connect your googlePalmApi credentials in Generate Draft Post.

Step 7: Configure the Output to Slack

The draft post is sent back to the Slack thread for review.

  1. Open Send Draft to Slack and set Text to {{$json.text || $json.content?.parts?.[0]?.text || 'No content generated.'}}.
  2. Credential Required: Connect your slackApi credentials in Send Draft to Slack.
  3. Set Channel ID to the same Slack channel (current value is [YOUR_ID]).
  4. Ensure Thread Timestamp uses {{$node["Parse Slack Command"].json.thread_ts || $node["Parse Slack Command"].json.ts}} to keep the draft in the thread.

Step 8: Test and Activate Your Workflow

Validate the workflow end-to-end, then activate it for production use.

  1. Click Execute Workflow and send start in the configured Slack channel.
  2. Confirm Post Topic List replies with a numbered list of topics in the same thread.
  3. Reply in-thread with a number like 2 or gen 2 and verify Send Draft to Slack posts a 250–350 word draft.
  4. Once successful, toggle the workflow to Active for ongoing use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Slack credentials can expire or need specific permissions. If things break, check your n8n Slack credential status and the bot’s channel 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.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

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

About 30 minutes if your Slack bot and Gemini key are ready.

Do I need coding skills to automate Slack Gemini drafts?

No. You’ll mostly connect accounts and edit prompts. The workflow logic is already built; you’re just configuring it for your feeds and voice.

Is n8n free to use for this Slack Gemini 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 is usually small for a few drafts a week.

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 Slack Gemini drafts workflow for my brand voice and content format?

Yes, and you should. Update the prompts in the Gemini Topic Clustering and Generate Draft Post nodes to match your tone, add your target audience, and specify formatting (markdown, sections, headings). Common tweaks include “sound like our newsletter,” “write for SaaS buyers,” and “include a short meta description plus 3 headline options.” You can also swap RSS feeds to match your niche without changing the rest of the workflow.

Why is my Slack connection failing in this workflow?

Usually it’s expired credentials or the bot not being invited to the channel you’re posting in. Reconnect the Slack credential in n8n, then confirm the bot has permission to read thread replies and post messages. If it fails only sometimes, rate limits or missing scopes are often the culprit.

How many drafts can this Slack Gemini drafts automation handle?

If you self-host, it mostly depends on your server and how often you trigger it.

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

Often, yes, because this flow benefits from branching, merging multiple feeds, and doing “reply-in-thread” logic cleanly. n8n also gives you the option to self-host, which can be a big deal when you start generating lots of drafts or adding more feeds. Zapier or Make can still work if you’re doing a simpler version, like one RSS feed to one AI step to one Slack message. But once you want topic selection, validation, and structured drafting in the same thread, you’ll feel the limits. Talk to an automation expert if you want help choosing the simplest setup for your team.

Set this up once and your next “what should we write about?” moment becomes a Slack message, not a half-day project. The workflow handles the repetitive parts, so you can spend your time making the draft actually worth reading.

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