无重复的 RSS 阅读器
高级
这是一个Market Research, AI Summarization领域的自动化工作流,包含 23 个节点。主要使用 If, Set, Html, Filter, Markdown 等节点。 使用 Gemini AI 摘要和去重到 Google Sheets 的自动化 RSS 监控
前置要求
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
使用的节点 (23)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "4ugQDSCMUWFpn5qo",
"meta": {
"instanceId": "e8794a4f970040d09c64040698c632aefaa9a59e97e60424e4b5671338351753",
"templateCredsSetupCompleted": true
},
"name": "无重复的 RSS 阅读器",
"tags": [],
"nodes": [
{
"id": "abe6ed52-40ac-4ed5-abea-419d94505509",
"name": "当点击\"执行工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-3080,
360
],
"parameters": {},
"typeVersion": 1
},
{
"id": "43696041-99ea-4d24-b677-d025bb556544",
"name": "获取 RSS 源列表",
"type": "n8n-nodes-base.googleSheets",
"notes": "Get feeds Url's from Google Sheet",
"position": [
-2380,
280
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "url",
"value": "={{ $json[\"Rss Feeds\"] }}"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $json.Document }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "yTQwBHgpFHqp2Mxw",
"name": "gSheets roman@ibb.media"
}
},
"notesInFlow": true,
"typeVersion": 4.6
},
{
"id": "02fc9382-dd56-4af0-8c1c-9f3c83461b05",
"name": "读取 RSS",
"type": "n8n-nodes-base.rssFeedRead",
"notes": "This read RSS channel",
"position": [
-1900,
480
],
"parameters": {
"url": "={{ $json[\"RSS URL\"] }}",
"options": {
"ignoreSSL": true
}
},
"executeOnce": true,
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "c39a746a-639e-4d21-9dac-6974bb52a030",
"name": "循环遍历 RSS 元素",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1340,
-200
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "b7f5ad99-0ea3-45b6-ae0b-07458a4255b3",
"name": "获取 URL 在 Sheets 中的行",
"type": "n8n-nodes-base.googleSheets",
"notes": "Check if the record with the link exists in Google Sheets",
"position": [
-1120,
-180
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.link }}",
"lookupColumn": "link"
}
]
},
"sheetName": {
"__rl": true,
"mode": "url",
"value": "={{ $('Settings').item.json[\"Articles Sheet\"] }}"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Settings').item.json.Document }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "yTQwBHgpFHqp2Mxw",
"name": "gSheets roman@ibb.media"
}
},
"notesInFlow": true,
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "05c8ff40-8232-4683-950a-37fa60d87eb2",
"name": "将 HTML 转换为 Markdown",
"type": "n8n-nodes-base.markdown",
"notes": "Markdown is more friendly LLM format than HTML",
"position": [
-240,
-200
],
"parameters": {
"html": "={{ $json.data }}",
"options": {
"ignore": "img,form",
"blockElements": ""
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "6708c44c-e1a5-4f2b-9780-c980c7a95053",
"name": "将摘要附加到 Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
580,
-40
],
"parameters": {
"columns": {
"value": {
"link": "={{ $('Loop Over Rss Elements').item.json.link }}",
"title": "={{ $('Loop Over Rss Elements').item.json.title }}",
"source": "={{ $('Loop Over Rss Elements').item.json[\"RSS NAME\"] }}",
"pubDate": "={{ $('Loop Over Rss Elements').item.json.pubDate.toDateTime().format('yyyy-MM-dd HH:mm').toDateTime() }}",
"ai summary": "={{ $json.text }}",
"categories": "={{ $('Loop Over Rss Elements').item.json.categories.toJsonString() }}"
},
"schema": [
{
"id": "pubDate",
"type": "string",
"display": true,
"required": false,
"displayName": "pubDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "source",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "source",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "categories",
"type": "string",
"display": true,
"required": false,
"displayName": "categories",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ai summary",
"type": "string",
"display": true,
"required": false,
"displayName": "ai summary",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"link"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true,
"cellFormat": "RAW"
},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "url",
"value": "={{ $('Settings').item.json[\"Articles Sheet\"] }}"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Settings').item.json.Document }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "yTQwBHgpFHqp2Mxw",
"name": "gSheets roman@ibb.media"
}
},
"typeVersion": 4.6
},
{
"id": "366e157b-9ff0-4913-b993-7d37c3252fe2",
"name": "将 RSS 与源名称组合",
"type": "n8n-nodes-base.set",
"position": [
-1660,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "72a6cb17-fefb-44c6-b2d5-348ce57e8270",
"name": "RSS NAME",
"type": "string",
"value": "={{ $('Loop Over Items').item.json[\"RSS NAME\"] }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "29f5c69a-c6ea-4191-bff5-914044efb76e",
"name": "检查文章是否存在",
"type": "n8n-nodes-base.if",
"notes": "We check if the object is empty",
"position": [
-900,
-180
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f2fe5727-5ae3-40fe-86c5-e2ad6288303b",
"operator": {
"type": "object",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $item(\"0\").$node[\"Get Row for URL is in Sheets\"].json }}",
"rightValue": ""
}
]
}
},
"notesInFlow": true,
"typeVersion": 2.2
},
{
"id": "a3e91192-55c8-4384-8d2e-fc6cc7321c98",
"name": "总结内容",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
-20,
-200
],
"parameters": {
"text": "=Hi Gemma Summarize This:\n\n<basic_information>\n- Date: {{ $('Loop Over Rss Elements').item.json.isoDate }}\n- Title: {{ $('Loop Over Rss Elements').item.json.title }}\n- Author/Source: {{ $('Loop Over Rss Elements').item.json.creator }} / {{ $('Loop Over Rss Elements').item.json.link }}\n- Category: {{ $('Loop Over Rss Elements').item.json.categories.toJsonString() }}\n</basic_information>\n\n<content>\n{{ $json.data }}\n</content>\n\nResponse immediately without any introductory text, explanations, or commentary.",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=You Are Gemma.\n<role>\nGemma is an expert at creating concise, valuable article summaries. She can process content from various domains and specializes in extracting key information and practical insights from any type of article.\n</role>\n\n<task>\nGemma create a structured summary format of the provided article, preserving key information and practical insights.\n</task>\n\n<steps>\n- Identify main content of sended by user.\n- Prepare summary, when writing use <writing_guidelines>.\n- Make quality control based on <quality_control>.\n- Output summary driectly in Markdown frmat following <structured_summary_format>. Check <output_formatting> for guidelines.\n</steps>\n\n<writing_guidelines>\nSHOULD DO:\n- Use simple, understandable language.\n- Maintain objectivity and accuracy.\n- Extract practical insights.\n- Emphasize specific data and numbers.\n- Prioritize actionable information.\n- Adjust detail level to article length.\n- Use bullet points for better readability.\n\nSHOULD AVOID:\n- Adding her own opinions beyond the article.\n- Repeating information in different sections.\n- Using jargon without explanation.\n- Omitting important caveats/limitations.\n- Exceeding 300 words in total summary.\n- Copying entire fragments verbatim.\n</writing_guidelines>\n\n<special_cases>\n- FOR TECHNICAL ARTICLES: Gemma should explain complex terms, highlight technical requirements, and note implementation difficulty level.\n- FOR BUSINESS ARTICLES: Gemma should focus on ROI and metrics, highlight potential costs/benefits, and note target audience.\n- FOR CASE STUDIES: Gemma should describe context and challenge, present applied solution, and highlight results and success metrics.\n- TONE AND STYLE: Gemma should maintain a professional but accessible tone that is concise and concrete, focused on reader value, and action-oriented.\n</special_cases>\n\n<quality_control>\nBefore finalizing, Gemma should check:\n- Does the summary capture the essence of the article?\n- Are all sections filled?\n- Is the information accurate and verified?\n- Is the length appropriate?\n- Does the summary have practical value?\n</quality_control>\n\n<structured_summary_format>\n[1-5 sentences describing the main message of the article]\n\n## QUICK TAKEAWAYS\n\n- [3-5 most important conclusions in bullet format]\n\n## KEY POINTS\n\n- [Most important point 1]\n- [Most important point 2]\n- [Most important point 3]\n- [Most important point 4-5 if relevant]\n\n## PRACTICAL INSIGHTS\n\n- [Specific actions/recommendations]\n- [Tools/methods mentioned in the article]\n- [Metrics/numerical data if relevant]\n\n## PRACTICAL APPLICATION\n\n[How this information can be applied in business/life/relevant field]\n</structured_summary_format>\n\n<output_formatting>\nResponse immediately without any introductory text, explanations, or commentary.\nOutput formatting is Markdown.\nDo not start with block indicators (``` ```)\nYOU CAN NOT USE :\n- \"Here's a breakdown\", \n- \"Here's the summary\",\n- \"Okay, here's a breakdown of the provided text, categorized and summarized for clarity\",\n- or any other preamble. Go directly to the structured summary format.\n</output_formatting>"
}
]
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 1.7
},
{
"id": "6edc03ae-3932-4b6d-b8f1-98cb2e51f4cb",
"name": "格式化输出",
"type": "n8n-nodes-base.set",
"position": [
320,
-200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "52023808-641d-4f4d-9c8f-b51c9b3bbbd1",
"name": "text",
"type": "string",
"value": "={{ $json.text.replace(/<think>[\\s\\S]*?<\\/think>/g, '') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "02eb922d-ae5c-4029-a01a-3a279989fa1c",
"name": "定时触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-3080,
180
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "131b0ae1-bc12-48d8-a20d-bbffbf9b6bee",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-2100,
280
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "28c1347b-e54e-405e-ab0a-da6a422187da",
"name": "过滤最近 X 天",
"type": "n8n-nodes-base.filter",
"notes": "This filter only news from last x days",
"position": [
-1740,
-200
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "516c4ec9-fc16-4687-a376-86a79115afc8",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.pubDate }}",
"rightValue": "={{ $('Settings').item.json['Current Time'].toDateTime().minus($('Settings').item.json['Last X Days'],'days').startOf('day') }}"
}
]
}
},
"notesInFlow": true,
"typeVersion": 2.2
},
{
"id": "852a3623-87a1-4a96-99f4-eb8303ab7c2c",
"name": "设置",
"type": "n8n-nodes-base.set",
"notes": "Set Here Your Gogle Sheets URLs and Last x Days Filter",
"position": [
-2640,
280
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "93e02cc9-f9c9-4167-ad2c-688433aa9b36",
"name": "Document",
"type": "string",
"value": "https://docs.google.com/spreadsheets/d/1i1p_DPymm8QeZrCLxs-Skz8BMSutKpUW4khzpiNBcYc/edit?gid=0#gid=0"
},
{
"id": "c95234c3-baff-4dd6-a3ec-3a97a10e44c1",
"name": "Articles Sheet",
"type": "string",
"value": "https://docs.google.com/spreadsheets/d/1i1p_DPymm8QeZrCLxs-Skz8BMSutKpUW4khzpiNBcYc/edit?gid=0#gid=0"
},
{
"id": "c94d9441-3b2b-421b-bb57-cfa041b132d6",
"name": "Rss Feeds",
"type": "string",
"value": "https://docs.google.com/spreadsheets/d/1i1p_DPymm8QeZrCLxs-Skz8BMSutKpUW4khzpiNBcYc/edit?gid=255338052#gid=255338052"
},
{
"id": "94b40b88-6c7f-4bdf-8896-c8b9a4f6621f",
"name": "Current Time",
"type": "string",
"value": "={{ \n $workflow.trigger === 'Schedule Trigger' ? \n $('Schedule Trigger').item.json.timestamp : \n $now \n}}"
},
{
"id": "eba798d1-5a87-4446-bdc4-63e8a27bc510",
"name": "Last X Days",
"type": "number",
"value": 31
}
]
}
},
"notesInFlow": true,
"typeVersion": 3.4
},
{
"id": "7f3236e0-025d-496e-aacc-c74f15df3ec2",
"name": "LLM 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"notes": "You can choose other LLM chat model",
"position": [
-60,
-20
],
"parameters": {
"model": "google/gemini-2.5-flash",
"options": {
"temperature": 0.3,
"responseFormat": "text"
}
},
"credentials": {
"openRouterApi": {
"id": "cxxykvBVJ4BwAWb8",
"name": "openrouter nimblio"
}
},
"typeVersion": 1
},
{
"id": "e4b8e1da-e960-4774-8419-0ffce5df9b3f",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2720,
40
],
"parameters": {
"width": 300,
"height": 460,
"content": "## 设置"
},
"typeVersion": 1
},
{
"id": "472a0cbb-2b01-48c1-8472-8b0962269a80",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2220,
220
],
"parameters": {
"width": 1060,
"height": 560,
"content": "## 循环为 RSS 记录添加源名称"
},
"typeVersion": 1
},
{
"id": "94ead111-4efe-459d-9053-3ff7714d5b98",
"name": "工作流结束",
"type": "n8n-nodes-base.noOp",
"position": [
-1120,
-460
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5e470cd5-23c9-4866-a18c-694bf1c021a9",
"name": "获取网页 HTML 内容",
"type": "n8n-nodes-base.httpRequest",
"position": [
-660,
-200
],
"parameters": {
"url": "={{ $('Loop Over Rss Elements').item.json.link }}",
"options": {
"response": {
"response": {
"responseFormat": "text"
}
}
}
},
"typeVersion": 4.2
},
{
"id": "8bc1cad5-fbbc-43fa-b41f-e668bf9bd8f8",
"name": "提取 HTML 中的正文内容",
"type": "n8n-nodes-base.html",
"notes": "We need only body without images",
"position": [
-460,
-200
],
"parameters": {
"options": {
"trimValues": true,
"cleanUpText": true
},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "data",
"cssSelector": "body",
"returnValue": "html"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "68bb881d-8c0c-4c21-9fab-237bcc42f76e",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1080,
300
],
"parameters": {
"color": 4,
"width": 760,
"height": 280,
"content": "## Google Sheets 列"
},
"typeVersion": 1
},
{
"id": "396e077e-aba2-4b89-bb0b-7aece91b924b",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3840,
-540
],
"parameters": {
"width": 700,
"height": 1680,
"content": "# 使用 AI 摘要监控 RSS 源到 Google Sheets"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "e4722701-47f2-4a88-9492-6405cc67cab8",
"connections": {
"Read RSS": {
"main": [
[
{
"node": "Combine Rss with source name",
"type": "main",
"index": 0
}
]
]
},
"Settings": {
"main": [
[
{
"node": "Get RSS Feed List",
"type": "main",
"index": 0
}
]
]
},
"Format Output": {
"main": [
[
{
"node": "Append Aummary to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"LLM Chat Model": {
"ai_languageModel": [
[
{
"node": "Summarize Content",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Filter Last X Days",
"type": "main",
"index": 0
}
],
[
{
"node": "Read RSS",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Settings",
"type": "main",
"index": 0
}
]
]
},
"Get RSS Feed List": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Summarize Content": {
"main": [
[
{
"node": "Format Output",
"type": "main",
"index": 0
}
]
]
},
"Filter Last X Days": {
"main": [
[
{
"node": "Loop Over Rss Elements",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Rss Elements": {
"main": [
[
{
"node": "End of worfklow",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Row for URL is in Sheets",
"type": "main",
"index": 0
}
]
]
},
"Check If Article Exists": {
"main": [
[
{
"node": "Get Webpage HTML Content",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Rss Elements",
"type": "main",
"index": 0
}
]
]
},
"Convert HTML to Markdown": {
"main": [
[
{
"node": "Summarize Content",
"type": "main",
"index": 0
}
]
]
},
"Get Webpage HTML Content": {
"main": [
[
{
"node": "Extract Body Content in HTML",
"type": "main",
"index": 0
}
]
]
},
"Combine Rss with source name": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Extract Body Content in HTML": {
"main": [
[
{
"node": "Convert HTML to Markdown",
"type": "main",
"index": 0
}
]
]
},
"Get Row for URL is in Sheets": {
"main": [
[
{
"node": "Check If Article Exists",
"type": "main",
"index": 0
}
]
]
},
"Append Aummary to Google Sheets": {
"main": [
[
{
"node": "Loop Over Rss Elements",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Settings",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 市场调研, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
新闻
使用Gemini AI总结RSS新闻并存储到Google Sheets
If
Set
Html
+12
22 节点Jayesh Kaithwas
AI 摘要总结
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
使用 Bright Data API 和 AI 抓取分析 Google 广告并发送邮件报告
使用 Bright Data API 和 AI 抓取分析 Google 广告并发送邮件报告
Set
Code
Gmail
+15
45 节点Zacharia Kimotho
市场调研
潜在客户开发与邮件工作流
使用Google Maps、SendGrid和AI自动化B2B潜在客户开发与邮件营销
If
Set
Code
+21
141 节点Ezema Kingsley Chibuzo
潜在客户开发
灵活新闻聚合器 - 多源集成、AI分析和可设置频道
多源新闻策展系统,集成Mistral AI分析、摘要和自定义频道
If
Set
Xml
+32
120 节点Hybroht
内容创作
品牌可见性检查 - AI实验室演示项目
跨AI搜索工具的品牌可见性和情感分析 (OpenAI、Perplexity、ChatGPT)
If
Set
Limit
+11
48 节点AOE Agent Lab
市场调研