cd /news/ai-tools/build-an-ai-automation-with-an-rss-t… · home › topics › ai-tools › article
[ARTICLE · art-155385] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Build an AI Automation with an RSS Trigger in n8n

A developer published a step-by-step n8n workflow that polls an RSS feed every 30 minutes, summarizes new items with an Anthropic Claude model via the Basic LLM Chain node, validates the model's JSON output in a Code node, gates items on a 1-10 relevance score of 6 or higher, and posts the survivors to Slack. The build includes Retry On Fail settings for rate limits, a separate Error Trigger workflow that alerts on failures, and a Limit node to cap cost on the first backfill run. The developer advises skipping the LLM entirely for simple feed-to-Slack posting and adding AI only when summarization, scoring, or entity extraction is needed.

by read4 min views1 publishedOct 22, 2026

Most n8n + AI tutorials end with a workflow that works once. This one is built to keep running: it triggers on an RSS feed, summarizes new items with an LLM, filters out noise, and posts to Slack. It also covers what happens when things fail.

The workflow

RSS Feed Trigger → Basic LLM Chain (Claude) → Code (validate JSON) → IF (relevance) → Slack

Plus a separate Error Workflow for alerts.

Do you even need AI here?

If you only want “post every new item to Slack,” skip the LLM. RSS Trigger + Slack is two nodes and costs nothing. Add AI when you need judgment: summarizing, scoring relevance, extracting entities, or rewriting for an audience.

Step 1: RSS Feed Trigger

Add an RSS Feed Trigger node.

Feed URL: your feed

Poll Times: every 30 minutes (RSS has no webhooks, so polling is the trigger)

n8n remembers which items it has already emitted, so you get deduplication for free. This is one of the best reasons to use n8n for this. Note that the very first activation can emit a batch of existing items, so test with a small or low-traffic feed first.

Step 2: Summarize with an LLM

Add a Basic LLM Chain node and attach an Anthropic Chat Model sub-node with your credentials. Pick the model from the dropdown, and check Anthropic’s docs for current model names.

Set the prompt to:

Title: {{ $json.title }}

Content: {{ ($json.contentSnippet || $json.content || '').slice(0, 6000) }}

And the system message to:

You summarize articles for a busy web developer.

Respond with ONLY a JSON object:

{"summary": string (max 2 sentences), "relevance": number 1-10, "tags": string[]}

No markdown, no preamble.

The .slice(0, 6000) caps token cost per item. Some feeds ship full article HTML, which gets expensive fast.

In the node’s Settings tab, turn on Retry On Fail (3 tries, a few seconds between). That covers rate limits and temporary API errors.

Step 3: Validate the output (Code node)

Never trust raw LLM output. Add a Code node (JavaScript, “Run Once for Each Item”):

js

const raw = ($json.text || '').replace(/

/g, '').trim();

let d;
try {
  d = JSON.parse(raw);
} catch (e) {
  throw new Error('Model returned invalid JSON: ' + raw.slice(0, 200));
}

if (
  typeof d.summary !== 'string' ||
  typeof d.relevance !== 'number' ||
  !Array.isArray(d.tags)
) {
  throw new Error('Unexpected shape: ' + JSON.stringify(d));
}

return {
  json: {
    title: $('RSS Feed Trigger').item.json.title,
    link: $('RSS Feed Trigger').item.json.link,
    ...d,
  },
};

Throwing on bad output is intentional. It turns “weird message in Slack” into a clean, visible failure. If you prefer, n8n’s Structured Output Parser sub-node can enforce a schema for you, but the Code node gives you more control over error messages.

Step 4: Relevance gate (IF node)

Add an IF node: {{ $json.relevance }} is greater than or equal to 6. Connect the true branch onward. This is where the AI earns its cost, because noise is filtered out before it reaches your channel.

Step 5: Slack

Add a Slack node (Send Message) on the true branch:

*<{{ $json.link }}|{{ $json.title }}>* ({{ $json.relevance }}/10)
{{ $json.summary }}
_{{ $json.tags.join(', ') }}_

Step 6: Error handling

Create a new workflow called “Alert on failure” starting with an Error Trigger node, followed by a Slack or email node that sends {{ $json.workflow.name }} and {{ $json.execution.error.message }}.
In your main workflow, open Settings and set Error Workflow to the one you just made.

Now any failure pings you instead of dying silently.

What breaks, and what happens

What breaks Result
Feed is down    Execution fails, the Error Workflow alerts you, and the next poll retries
API rate limit  Retry On Fail handles it, and the Error Workflow alerts you if retries run out
Model returns bad JSON  Code node throws and you get an alert
Slack is down   Slack node fails and you get an alert
Big first run   Add a Limit node after the trigger (e.g. 20 items) to cap cost on backfill

One thing to know: if a node fails mid-run, that item has already been consumed by the trigger, so it won’t be retried automatically on the next poll. For anything critical, either send failed items to a Google Sheet or database in the error branch, or re-run the failed execution manually from the Executions tab.

Where to take it next

Swap Slack for email, Notion, or a database
Merge several feeds and tag each by source
Have the model draft a social post for high-relevance items
Add a Wait node and a human approval step before anything gets published

Wrapping up

An RSS trigger is the simplest way into event-driven AI automation. The LLM call is the easy part. The real work is validation, retries, and knowing what happens when something fails.

What feeds are you pointing yours at? Let me know in the comments.
── more in #ai-tools 4 stories · sorted by recency
── more on @n8n 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/build-an-ai-automati…] indexed:0 read:4min 2026-10-22 · —