AutomationFlowsAI & RAG › Generate Ai-summarized Newsletter Drafts From RSS Feeds with Gpt-4 and Gmail

Generate Ai-summarized Newsletter Drafts From RSS Feeds with Gpt-4 and Gmail

ByPatrik Schick @patrikdescodino on n8n.io

Every hour, the workflow checks the RSS feed https://www.artificialintelligence-news.com/feed/ for new articles. For each new item, it extracts the title, snippet, and full content, then sends them to an AI model to summarize and optionally translate. The processed summary is…

Event trigger★★★☆☆ complexityAI-powered9 nodesRss Feed Read TriggerInformation ExtractorOpenAI ChatOpenAIGmail
AI & RAG Trigger: Event Nodes: 9 Complexity: ★★★☆☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #7264 — we link there as the canonical source.

This workflow follows the Gmail → Informationextractor 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": "B678cREDFm1a19Gt",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "RSS news Newsletter draft",
  "tags": [
    {
      "id": "9kcsz79cjuoXWIKa",
      "name": "info_extract",
      "createdAt": "2025-08-06T19:49:00.933Z",
      "updatedAt": "2025-08-06T19:49:00.933Z"
    },
    {
      "id": "BDi16MoLM1S3FTEv",
      "name": "Notion",
      "createdAt": "2025-08-04T20:02:06.936Z",
      "updatedAt": "2025-08-04T20:02:06.936Z"
    },
    {
      "id": "LpWDdjc6roCQJX6r",
      "name": "RSS",
      "createdAt": "2025-08-06T19:48:48.074Z",
      "updatedAt": "2025-08-06T19:48:48.074Z"
    },
    {
      "id": "soI0f6nC5gfL5B7b",
      "name": "Telegram",
      "createdAt": "2025-08-04T19:52:57.456Z",
      "updatedAt": "2025-08-04T19:52:57.456Z"
    }
  ],
  "nodes": [
    {
      "id": "ddabc02a-92b3-493f-a0d6-e6fea4710db1",
      "name": "RSS Feed Trigger",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "position": [
        -32,
        0
      ],
      "parameters": {
        "feedUrl": "https://www.artificialintelligence-news.com/feed/",
        "pollTimes": {
          "item": [
            {
              "mode": "everyHour"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "53b640dd-d8fb-4d80-af4e-1a24fd8064f0",
      "name": "Information Extractor",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        208,
        0
      ],
      "parameters": {
        "text": "=Snippet: {{ $json['content:encodedSnippet'] }}\nTitle: {{ $json.title }}\nContent: {{ $json['content:encoded'] }}",
        "options": {
          "systemPromptTemplate": "Your task is a get information from content snippet, and translate it in {your prefer} language. \nKeep it clear and short about what is in content and title. "
        },
        "attributes": {
          "attributes": [
            {
              "name": "Snippet",
              "description": "This is a content snippet. Get data and return is as text"
            },
            {
              "name": "Title",
              "description": "Title of content"
            },
            {
              "name": "Content",
              "description": "Content of article"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "dcac64e7-7d47-421c-8516-20ee38b37249",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        208,
        208
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3560993c-7275-4fff-ba16-ff4ceb27fde0",
      "name": "Message a model",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        560,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=Your task is get information about article, use assistant role named Patrik to give personalisation and create a newsletter content.\nContent si here:\n{{ $json.output.Content }}"
            },
            {
              "role": "assistant",
              "content": "Here give your tone of voice!"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "78c2045c-782a-40fd-812c-c6205ada20e5",
      "name": "Create a draft",
      "type": "n8n-nodes-base.gmail",
      "position": [
        944,
        0
      ],
      "parameters": {
        "message": "={{ $json.message.content }}",
        "options": {},
        "subject": "Newsletter",
        "resource": "draft",
        "emailType": "html"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "576d55c7-dcc8-4af1-a94d-378bffe5505b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -176
      ],
      "parameters": {
        "height": 480,
        "content": "## RSS feed\n**URL** \nPut a RSS feed into this node"
      },
      "typeVersion": 1
    },
    {
      "id": "207cddbe-a94c-438e-b807-e483b0d10c7f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -176
      ],
      "parameters": {
        "color": 2,
        "width": 320,
        "height": 512,
        "content": "## Information extract\n\nThis node will extract information about article.\n\nIn system prompt change language to your prefered one!\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1fa45d4b-68f5-413c-8157-63cf6e2da64c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -176
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 512,
        "content": "## Message a model\n\nSystem prompt is get data from extractor. \n\nAsistant prompt should be your tone of voice to personalised content!\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8d83c36c-b717-4408-8394-146f9526fcfd",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        -176
      ],
      "parameters": {
        "color": 4,
        "width": 224,
        "height": 512,
        "content": "## Create a draft\n\nIts created a draft, with ready to sent!\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "ac807dbd-82f5-4fc6-ad36-b962b684eb1d",
  "connections": {
    "Message a model": {
      "main": [
        [
          {
            "node": "Create a draft",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Feed Trigger": {
      "main": [
        [
          {
            "node": "Information Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Information Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Information Extractor": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Every hour, the workflow checks the RSS feed https://www.artificialintelligence-news.com/feed/ for new articles. For each new item, it extracts the title, snippet, and full content, then sends them to an AI model to summarize and optionally translate. The processed summary is…

Source: https://n8n.io/workflows/7264/ — 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 ideal for HR professionals, recruiters, and small businesses looking to streamline resume screening with AI-powered analysis and CRM integration.

Jot Form Trigger, Postgres, OpenAI +5
AI & RAG

Detects new unread Gmail messages Extracts sender name for personalized replies Classifies the email into one of four categories Applies the correct Gmail label and either sends an auto-reply, creates

Gmail Trigger, OpenAI Chat, Gmail +4
AI & RAG

This workflow automates the end-to-end process of extracting and summarizing information from PDFs stored in a specific Google Drive folder. When a new PDF or any binary data is added, the workflow is

Google Drive Trigger, Information Extractor, OpenAI Chat +4
AI & RAG

Email Automation. Uses gmailTrigger, textClassifier, lmChatOpenAi, openAi. Event-driven trigger; 13 nodes.

Gmail Trigger, Text Classifier, OpenAI Chat +5
AI & RAG

Automates PDF data extraction using OpenAI GPT, saves to Google Sheets, sends email confirmations. Reduces manual entry by 90%. Receives PDF uploads via form Splits & loops through files AI extracts s

OpenAI, OpenAI Chat, Google Sheets +3