# n8n RSS to AI Summary Digest

> Daily schedule pulls RSS feeds, summarizes new items with an LLM, and posts a digest to Slack or email.

Category: n8n Automation Blueprints  
Tags: n8n, rss, summarization, schedule  
Setup time (estimate): 30-60 minutes  
Estimated cost: n8n plus one summarization call per run.  
Last verified: 2026-10-14

## Nodes

1. **Schedule Trigger** – every day at 08:00.
2. **RSS Read** – one node per feed (or a Code node listing feed URLs feeding a loop).
3. **Filter** – keep items with `pubDate` within the last 24h.
4. **OpenAI / AI Agent node** – summarize each item in 2 sentences.
5. **Aggregate** – combine items into one field.
6. **Slack** (or Send Email) – post the digest.

## Workflow skeleton (import via *Import from File*, then set credentials)

```json
{
  "name": "RSS AI Digest",
  "nodes": [
    {"name": "Schedule", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.2, "position": [0, 0],
     "parameters": {"rule": {"interval": [{"field": "days", "triggerAtHour": 8}]}}},
    {"name": "RSS Read", "type": "n8n-nodes-base.rssFeedRead", "typeVersion": 1, "position": [220, 0],
     "parameters": {"url": "https://example.com/feed.xml"}},
    {"name": "Last 24h", "type": "n8n-nodes-base.filter", "typeVersion": 2, "position": [440, 0],
     "parameters": {}}
  ],
  "connections": {
    "Schedule": {"main": [[{"node": "RSS Read", "type": "main", "index": 0}]]},
    "RSS Read": {"main": [[{"node": "Last 24h", "type": "main", "index": 0}]]}
  }
}
```

Configure the Filter condition in the UI: `{{ $json.pubDate }}` is after `{{ $now.minus({days: 1}) }}`, then add the LLM, Aggregate, and Slack nodes. Node `typeVersion`s vary by n8n release; the editor will upgrade them on import.

## Failure modes

- Feeds with missing or odd pubDate formats break the 24h filter.
- Too many items exceed the model's context; cap items per run.
- Node typeVersions differ by n8n release; re-check after upgrades.
