FlowKit

Automating competitive monitoring with AI in n8n: RSS, summaries, and alerts

Published 21 July 2026 · 6 min read

Manually monitoring a dozen competitors, industry blogs, or product changelogs takes up a good chunk of the morning: opening each site, spotting what changed since yesterday, judging whether it's worth flagging to the team. Most of the time, nothing's new. The rest of the time, the information arrives a day late because no one had time to check. This guide builds an n8n pipeline that does that reading for you: it centralizes several RSS feeds, uses an LLM to filter out what genuinely deserves attention, and pushes a summary to Slack or Telegram — in real time for the urgent stuff, as a daily digest for the rest.

Why automate monitoring instead of doing it by hand

Three problems show up consistently with manual monitoring:

  • The time spent doesn't match the value produced. Reading twenty articles to retain two is repetitive work, exactly the kind of task an LLM handles well: read fast, judge relevance against explicit criteria, summarize.
  • Coverage is uneven. An overloaded team member skips sources one week; automation never skips a feed.
  • Information arrives unstructured. A link pasted into Slack as it comes gets lost in the channel history. A structured digest, with a relevance score and a one-sentence summary, reads in thirty seconds and stays usable later if archived.

The architecture below follows the same principle as email triage or inbound lead scoring: an LLM with an explicit rubric, reliable structured output, and threshold-based routing.

Pipeline architecture

The workflow breaks down into four stages:

  1. RSS Feed Trigger — a trigger that polls each feed at a set interval and only passes through new entries.
  2. Supabase deduplication — a check to never process the same article twice, even if the feed republishes it.
  3. LLM filtering and summarization — a relevance score and a two-sentence summary, as structured output.
  4. Routing — an immediate Slack alert above a relevance threshold, otherwise queued for a daily digest sent by a second scheduled workflow.

Step 1 — Centralize multiple feeds with RSS Feed Trigger

The RSS Feed Trigger node (n8n-nodes-base.rssFeedReadTrigger) polls a feed URL at a set interval and only fires the workflow for entries published since the last run — no need to build your own "what's new" logic. To monitor several sources, duplicate the node once per feed (competitor blog, product changelog, trade press) or use a Schedule Trigger that iterates over a list of URLs stored in a Supabase table — more practical once you're past five or six sources and want to manage them without touching the workflow itself.

Most blogs and news sites expose a feed even without a visible link: try /feed, /rss.xml, or /feed.xml at the end of the URL before concluding there isn't one.

Step 2 — Avoid duplicates with Supabase

Some feeds re-publish an article at the top of the list after a minor edit, which would trigger a duplicate in your digest. Before going further, a Supabase node checks whether the article's link already exists in a monitoring_articles table (a url column with a unique constraint); if so, an IF node stops the workflow there. This table also doubles as an archive, which becomes useful later in this article.

create table monitoring_articles (
  id uuid primary key default gen_random_uuid(),
  url text unique not null,
  title text,
  source text,
  summary text,
  relevance int,
  published_at timestamptz,
  created_at timestamptz default now()
);

For the full setup of a Supabase project with n8n, credentials included, our n8n-Supabase connection guide covers it in detail.

Step 3 — Filter and summarize with an LLM

This is the core of the pipeline: an LLM Chain (chainLlm) receives the article's title and excerpt, with a prompt that applies an explicit relevance rubric rather than a vague judgment call. For product monitoring, for example:

  • 5: a competitor announcement directly comparable to your own offering
  • 3-4: a pricing change, a funding round, a notable partnership
  • 1-2: a generic blog post, marketing content with no concrete announcement

A Structured Output Parser node forces reliable JSON output (relevance as an integer, summary as one or two sentences, category), exactly like the email urgency scoring workflow in the Inbox AI Pack (€79) — the same principle of an explicit rubric and structured output applies just as well to an article as it does to an email. An economical model like gpt-4o-mini is more than enough for this classification and short-summarization task; if feed volume grows, a local model via Ollama can take over this initial filtering pass, reserving a stronger model for the articles judged most relevant.

Step 4 — Route between immediate alerts and a daily digest

An IF node compares the relevance score to a threshold (4 out of 5, for instance):

  • Above it: an immediate Slack alert in the monitoring channel, with title, source, summary, and link — so you don't find out about a major competitor announcement a day late.
  • Below it: insertion into the monitoring_articles table with a pending status. A second workflow, fired each morning by a Schedule Trigger, pulls the pending articles, groups them into a structured digest by source, and publishes it to Slack or Telegram — the same principle as the daily email digest already covered on this blog.

Splitting this into two workflows keeps the Slack channel from getting overloaded while making sure no important alert waits until the next morning.

To get started without building everything from scratch, our automated email news watch workflow is available for free as a JSON file: it applies the same recipe (RSS reading, AI summarization, daily digest) delivered by email instead of Slack, with explanatory notes built right into the n8n canvas.

What about sites with no RSS feed?

Some useful sources — pricing pages, JavaScript-heavy changelogs, social media — expose no usable feed. In that case, swap the RSS Feed Trigger for a Schedule Trigger followed by an HTTP Request node that fetches the page, then an HTML Extract node or a direct pass of the raw HTML to the LLM so it can identify what changed compared to the last capture stored in Supabase. This is more fragile than an RSS feed — a site redesign breaks the CSS selector — but works well enough for monitoring a handful of strategic pages.

Going further: archive your monitoring to make it searchable

A Slack digest gets read, then lost in the channel history. By keeping every article and its summary in the Supabase table created in step 2, and adding embeddings via pgvector, you turn your monitoring feed into a searchable knowledge base: "what did competitor X announce on topic Y this quarter?" becomes a question you ask a chatbot instead of a manual search through weeks of digests. The mechanics — chunking, embeddings, pgvector storage, a chatbot with citations — are covered in our RAG guide with n8n and Supabase and map directly onto the workflows in the RAG Assistant Pack (€119): the same document-ingestion building blocks apply just as well to internal PDFs as to a continuous stream of monitoring articles.

What it costs

For a dozen feeds publishing an average of thirty articles a day, with summaries capped at a few hundred tokens each and an economical model, the cost stays in the range of a few tens of cents per day — the full breakdown, with per-model figures, is in our guide on tracking AI call costs. The real cost of manual monitoring was never the tool subscription — it was the reading time. That's what disappears almost entirely once the pipeline is in place.

Going further

This pipeline fits into two n8n workflows assembled from building blocks already proven elsewhere on this blog: an RSS trigger, Supabase deduplication, an LLM chain with structured output, and threshold-based routing — the same foundation as the Inbox AI Pack for triage and digests, extended if needed with the RAG Assistant Pack to archive and query your monitoring over time. Start with two or three feeds to watch, tune the relevance rubric against a week of real results, then widen coverage once the threshold is calibrated.

FAQ

Frequently asked questions

Do you always need an RSS feed to monitor a site or competitor?

Most blogs, news sites, and changelog pages expose an RSS feed even without a visible link: it's often enough to add /feed or /rss.xml to the URL. When that's genuinely not the case, an HTTP Request node that fetches the page followed by an HTML Extract node can play the same role, at the cost of a bit more maintenance if the site's structure changes.

How much does this pipeline cost in AI API calls?

With an economical model like gpt-4o-mini and a summary capped at a few hundred tokens per article, monitoring a dozen feeds publishing an average of thirty articles a day stays in the range of a few tens of cents per day. The full breakdown is in our guide on tracking AI call costs.

Can this monitoring be made searchable later, not just delivered as a digest?

Yes: instead of stopping at the Slack digest, store each article and its summary in a Supabase table with pgvector, as described in our RAG guide. You then get a semantic search engine over your own monitoring history, queryable through a chatbot, rather than a feed that disappears once read.

Bundle FlowKit Complet

€269