This workflow corresponds to n8n.io template #16020 — we link there as the canonical source.
This workflow follows the Chainllm → OpenAI Chat recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "c679173f07ab83d7",
"meta": {
"templateCredsSetupCompleted": false
},
"name": "Summarize RSS feeds to a daily Slack digest using OpenAI",
"tags": [
{
"name": "rss"
},
{
"name": "news-digest"
},
{
"name": "summarization"
},
{
"name": "slack"
},
{
"name": "scheduling"
},
{
"name": "openai"
},
{
"name": "automation"
},
{
"name": "ai"
}
],
"nodes": [
{
"id": "b0683048-0a29-4a30-a113-f51934bb3b36",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
-128
],
"parameters": {
"width": 480,
"height": 672,
"content": "## Summarize RSS feeds to a daily Slack digest using OpenAI\n\n## How it works\n\n1. The workflow triggers every morning at 8 AM.\n2. It reads the RSS feed to gather the latest news.\n3. It limits the news items to the top 10 based on criteria.\n4. The titles of the news items are aggregated into a single list.\n5. This aggregated list is summarized using an AI model.\n6. The summarized content is posted to a Slack channel.\n\n## Setup steps\n\n- [ ] Configure the Schedule Trigger node for 8 AM daily executions.\n- [ ] Add RSS feed URLs to the Read RSS Feed node.\n- [ ] Set up the Slack node with the necessary authentication details.\n\n## Customization\n\nAdjust the model parameters in the Summarize Digest node to change summarization style."
},
"typeVersion": 1
},
{
"id": "e63d18ff-1d11-467c-b99a-a1fe44e9db87",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-128
],
"parameters": {
"color": 7,
"width": 240,
"height": 304,
"content": "## Setup and trigger\n\nInitiates the workflow at 8 AM daily."
},
"typeVersion": 1
},
{
"id": "eefc3a18-e97c-4c5d-a905-632d8565b261",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
-112
],
"parameters": {
"color": 7,
"width": 432,
"height": 272,
"content": "## Fetch RSS feed data\n\nReads the RSS feed and selects top 10 items."
},
"typeVersion": 1
},
{
"id": "829103b7-0008-4536-8a27-3c9d59e7d43f",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
672,
-112
],
"parameters": {
"color": 7,
"width": 592,
"height": 480,
"content": "## Aggregate and summarize\n\nAggregates titles and summarizes them for the digest."
},
"typeVersion": 1
},
{
"id": "3a90f1ff-9c29-4ee8-aef3-68fab3125212",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1296,
-128
],
"parameters": {
"color": 7,
"width": 240,
"height": 304,
"content": "## Send Slack message\n\nPosts the summarized digest to Slack."
},
"typeVersion": 1
},
{
"id": "bc88596e-520c-48fc-a184-3b40f17f2a25",
"name": "When Morning at 8AM",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-40,
0
],
"parameters": {
"rule": {
"interval": [
{
"field": "days",
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "4cd84838-0dfa-4b9d-bb6c-30baf11ecf1f",
"name": "Fetch RSS Feed Content",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
240,
0
],
"parameters": {
"url": "https://hnrss.org/frontpage",
"options": {}
},
"typeVersion": 1.1
},
{
"id": "5a68144a-c6bb-4135-b165-dfe3868a7729",
"name": "Limit to Top 10 Feeds",
"type": "n8n-nodes-base.limit",
"position": [
480,
0
],
"parameters": {
"maxItems": 10
},
"typeVersion": 1
},
{
"id": "b6b1cdb2-a139-4742-8675-af82222e53d4",
"name": "Combine Feed Titles",
"type": "n8n-nodes-base.aggregate",
"position": [
720,
0
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "62d34b0b-1bde-4c9e-886b-62f9f1c0c057",
"name": "Summarize RSS Digest",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
960,
0
],
"parameters": {
"text": "=Create a short daily digest from these articles. Group into 3-5 themes, one line each, with the most important first.\n\n{{ $json.data.map(i => '- ' + i.title + ' ' + i.link).join('\\n') }}",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "fda55ffd-6f88-495d-b863-47276ef1c5d3",
"name": "OpenAI GPT-4 Mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
960,
224
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {
"temperature": 0.4
}
},
"typeVersion": 1.2
},
{
"id": "ae123ddc-1348-4b44-af89-e358bd7ba5cf",
"name": "Send Digest to Slack",
"type": "n8n-nodes-base.slack",
"position": [
1344,
0
],
"parameters": {
"text": "=:newspaper: *Daily Digest*\n{{ $json.text }}",
"select": "channel",
"resource": "message",
"channelId": {
"__rl": true,
"mode": "name",
"value": "#daily-digest"
},
"operation": "post",
"otherOptions": {}
},
"typeVersion": 2.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"connections": {
"OpenAI GPT-4 Mini": {
"ai_languageModel": [
[
{
"node": "Summarize RSS Digest",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Combine Feed Titles": {
"main": [
[
{
"node": "Summarize RSS Digest",
"type": "main",
"index": 0
}
]
]
},
"When Morning at 8AM": {
"main": [
[
{
"node": "Fetch RSS Feed Content",
"type": "main",
"index": 0
}
]
]
},
"Summarize RSS Digest": {
"main": [
[
{
"node": "Send Digest to Slack",
"type": "main",
"index": 0
}
]
]
},
"Limit to Top 10 Feeds": {
"main": [
[
{
"node": "Combine Feed Titles",
"type": "main",
"index": 0
}
]
]
},
"Fetch RSS Feed Content": {
"main": [
[
{
"node": "Limit to Top 10 Feeds",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow runs every morning at 8 AM to pull the latest items from an RSS feed, uses OpenAI (gpt-4o-mini) to summarize the top 10 into a themed daily digest, and posts the result to a Slack channel. Runs every day at 8 AM using a schedule trigger. Reads the latest items from…
Source: https://n8n.io/workflows/16020/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow is designed for Japanese-speaking professionals, and learners who want to efficiently stay up to date with practical productivity, lifehack, and efficiency-related insights from Japanese
Check Legal Regulations: This workflow involves scraping, so ensure you comply with the legal regulations in your country before getting started. Better safe than sorry!
AI-Powered Information Monitoring with OpenAI, Google Sheets, Jina AI and Slack. Uses lmChatOpenAi, chainLlm, rssFeedRead, textClassifier. Scheduled trigger; 31 nodes.
公認資格ワークフロー. Uses rssFeedRead, chainLlm, lmChatGoogleGemini, outputParserStructured. Scheduled trigger; 25 nodes.
This workflow runs daily, pulls the latest post from an RSS feed, and uses OpenAI to repurpose it into an SEO blog rewrite, a LinkedIn post, and an X/Twitter thread, then logs the drafts to Google She