AutomationFlowsAI & RAG › Summarize RSS Feeds Into a Daily Slack Digest with Openai Gpt-4o Mini

Summarize RSS Feeds Into a Daily Slack Digest with Openai Gpt-4o Mini

ByTakatoYamada @takato-door on n8n.io

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…

Cron / scheduled trigger★★★★☆ complexityAI-powered12 nodesRSS Feed ReadChain LlmOpenAI ChatSlack
AI & RAG Trigger: Cron / scheduled Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

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 →

Download .json
{
  "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
          }
        ]
      ]
    }
  }
}
Pro

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 →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

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

RSS Feed Read, Chain Llm, Google Gemini Chat +7
AI & RAG

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!

OpenAI Chat, Chain Llm, RSS Feed Read +4
AI & RAG

AI-Powered Information Monitoring with OpenAI, Google Sheets, Jina AI and Slack. Uses lmChatOpenAi, chainLlm, rssFeedRead, textClassifier. Scheduled trigger; 31 nodes.

OpenAI Chat, Chain Llm, RSS Feed Read +4
AI & RAG

公認資格ワークフロー. Uses rssFeedRead, chainLlm, lmChatGoogleGemini, outputParserStructured. Scheduled trigger; 25 nodes.

RSS Feed Read, Chain Llm, Google Gemini Chat +5
AI & RAG

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

RSS Feed Read, Chain Llm, OpenAI Chat +4