🔓 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 Slack, clean RSS posts no repeats

Lisa Granqvist Partner Workflow Automation Expert

Your Slack channel is supposed to keep people informed. Instead, it turns into a noisy stream of repeated links, “didn’t we already share this?”, and someone quietly giving up on checking it.

This is the kind of Sheets Slack automation that saves Marketing Managers from daily link wrangling. It also helps founders who want a quick “what matters today” feed, plus ops folks who hate chasing duplicates across tools.

You’ll see how this workflow pulls RSS feeds from Google Sheets, posts only fresh items to Slack, and logs everything so repeats don’t sneak back in.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Google Sheets to Slack, clean RSS posts no repeats

The Challenge: Sharing RSS Without Spamming Slack

Curating articles sounds simple until it’s on the calendar every day. You collect RSS feeds, scan headlines, copy links into Slack, and then someone points out that the same post showed up yesterday (or last week). Now you’re checking channel history, searching a spreadsheet, and second-guessing yourself. The annoying part isn’t posting one link. It’s managing the “did we already send this?” question across multiple feeds, across time, with different people taking turns.

It adds up fast. And the friction compounds in predictable ways.

  • Slack channels get tuned out when duplicates show up, even if the content is good.
  • Manual copy-paste invites small mistakes like broken links or missing context, which means extra back-and-forth.
  • When you track “posted” items by memory (or Slack search), you eventually miss one and re-share it.
  • Handovers are painful because nobody knows which feeds are “covered” unless you document it somewhere.

The Fix: Google Sheets + RSS to Slack, With a No-Duplicates Log

This workflow turns your Google Sheet into the control center for curated RSS sharing. At a set time each day, it reads your list of RSS feed URLs from a “Feeds” tab, pulls the latest items from each feed, and then compares those links to a “Posted Articles” tab that acts like a memory. Anything already logged gets skipped. Anything new gets formatted and sent to your chosen Slack channel, and the workflow immediately writes those new items back into the log so tomorrow’s run doesn’t repeat them. Set it once, then let it quietly do the boring part for you.

The workflow starts on a schedule (default is 7:00 AM). It loads feeds from Google Sheets, reads RSS items, removes duplicates using your posted log, then posts the new links to Slack and records what it sent.

What Changes: Before vs. After

Real-World Impact

Say you curate from 10 RSS feeds and share 8 new links per day. Manually, you’ll usually spend about 5 minutes per feed checking what’s new and avoiding repeats, plus another 10 minutes formatting and posting, so call it about an hour each day. With this workflow, the “work” is adding feeds once in Google Sheets and letting the 7:00 AM run do the rest. You might spend 5 minutes a week adjusting the feed list. That’s a lot of mornings saved.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store feeds and posted history
  • Slack to publish new articles to a channel
  • Google Sheets OAuth2 + Slack OAuth2 (create in n8n credentials)

Skill level: Beginner. You’ll connect accounts, paste your Sheet ID, and select a Slack channel.

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

The Workflow Flow

A scheduled run kicks it off. A Cron trigger runs daily (7:00 AM by default), so you don’t rely on someone remembering to post updates.

Your feed list comes from Google Sheets. The workflow reads the “Feeds” tab, which is just a simple table of RSS sources you approve. Add a new industry blog and you’re done.

RSS items are fetched, then deduped against your log. n8n pulls the latest articles from each feed, loads your “Posted Articles” history sheet, and runs a dedupe check so previously shared links are filtered out.

New links get posted and recorded. Fresh items are posted into Slack (title + link), then written back into the “Posted Articles” tab with key fields like title, link, and pubDate.

You can easily modify the schedule (daily to weekly) or change which Slack channel receives posts based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Cron Trigger

Set when the workflow runs so your feed sources are checked on a schedule.

  1. Add and open Scheduled Automation Trigger.
  2. Under Trigger Times, set the hour to 7 to run daily at 7 AM.
  3. Connect Scheduled Automation Trigger to Retrieve Feed Sources to follow the execution flow.

Step 2: Connect Google Sheets

These nodes read the feed source list and log which articles have already been posted.

  1. Open Retrieve Feed Sources and set Document ID to ={{$vars.Daily_Industry_News_Automation_Google_Sheet}}.
  2. Set Sheet Name to the Feeds sheet (gid 1768028583).
  3. Open Fetch Posted Article Log and set Document ID to ={{$vars.Daily_Industry_News_Automation_Google_Sheet}}.
  4. Set Sheet Name to Posted Articles (gid 0).
  5. Open Log New Articles to Sheet and set Operation to append.
  6. In Columns, map link to ={{ $json.link }}, title to ={{ $json.title }}, and pubDate to ={{ $json.pubDate }}.

Credential Required: Connect your Google Sheets credentials in Retrieve Feed Sources, Fetch Posted Article Log, and Log New Articles to Sheet.

Step 3: Set Up Feed Processing Logic

Pull recent items from each RSS feed and filter out anything already posted.

  1. Open Load Recent Feed Items and set URL to ={{ $json.link }} so each feed source row is read dynamically.
  2. Open Exclude Published Items and confirm the JavaScript Code uses $('Fetch Posted Article Log').all() and $('Load Recent Feed Items').all() to filter new items.
  3. Ensure the connection flow is Load Recent Feed ItemsFetch Posted Article LogExclude Published ItemsLog New Articles to Sheet.

⚠️ Common Pitfall: If your feed source sheet doesn’t include a link column, Load Recent Feed Items will fail. Ensure each source row has a valid RSS URL.

Step 4: Configure Output to Slack

Send a formatted message for each new article and keep the posting log updated.

  1. Open Send Slack Article Update and set Authentication to oAuth2.
  2. Select the Channel using your channel ID (e.g., [YOUR_ID]).
  3. Set Text to =*{{$json["title"]}}* | {{$json["link"]}} _Published: {{$json["pubDate"]}}_ to format the update.
  4. Confirm Log New Articles to Sheet connects to Send Slack Article Update so only new items are posted.

Credential Required: Connect your Slack OAuth2 credentials in Send Slack Article Update.

Step 5: Test and Activate Your Workflow

Run a manual test to verify RSS retrieval, deduplication, logging, and Slack delivery.

  1. Click Execute Workflow to run the workflow manually.
  2. Verify that Log New Articles to Sheet appends new rows with link, title, and pubDate.
  3. Confirm Send Slack Article Update posts messages in the selected channel with the formatted text.
  4. If results look correct, toggle the workflow to Active to enable scheduled runs.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Google Sheets OAuth credentials can expire or lack access to the right document. If things break, check the n8n Credentials screen and confirm the connected Google account can open the spreadsheet.
  • RSS feeds are inconsistent, and some return older items or change their link formats. If you see “new” posts that feel like repeats, adjust the dedupe logic to compare the canonical link (not just the title).
  • Slack posting can fail silently if the channelId is wrong or the app isn’t invited to the channel. Confirm the channel ID and make sure your Slack app has permission to post there.

Common Questions

How quickly can I implement this Sheets Slack automation?

About 30 minutes if your Google Sheets and Slack credentials are ready.

Can non-technical teams implement this RSS posting automation?

Yes. You will mostly be connecting accounts and copying in your Sheet ID and Slack channel.

Is n8n free to use for this Sheets Slack automation 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 Slack and Google Sheets access (usually already included in your existing accounts).

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

You can change the Cron schedule in the “Scheduled Automation Trigger” node and point posting to a different Slack channel by updating the channelId used by “Send Slack Article Update.” Common tweaks include limiting posts to a max number per run, posting as a single digest message instead of individual messages, and adding extra columns in Google Sheets (like “category”) so different feeds route to different channels.

Why is my Slack connection failing in this workflow?

Usually the Slack app isn’t invited to the channel, or the channelId is incorrect.

What’s the capacity of this Sheets Slack automation solution?

On n8n Cloud, capacity mainly depends on your monthly execution limit and how many feed items you pull per run. Self-hosting has no execution cap, but your server still has to fetch feeds and post to Slack reliably, so a small VPS is typically fine for dozens of feeds. If you’re pulling hundreds of items every day, you’ll want to batch items and cap “latest items” per feed so Slack doesn’t get flooded. Also keep an eye on Google Sheets write volume, because logging each posted article is a separate update.

Is this Sheets Slack automation better than using Zapier or Make?

Often, yes. n8n makes it easier to do “compare against a log, filter duplicates, then write back” without awkward workarounds, and self-hosting is a big deal if you don’t want per-task pricing. Zapier and Make can still work if your version is very simple, like one feed to one channel with no history tracking. The minute you need a Google Sheets “posted items” table, multi-feed handling, or tighter control over formatting, n8n tends to feel less fragile. If you want a second opinion on the trade-offs, Talk to an automation expert.

Once this is running, Slack stops feeling like a dumping ground. Your channel becomes a reliable “new stuff only” feed, and you get your mornings back.

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