8
n8n 中文网amn8n.com

每日科技新闻精选:RSS、GPT-4o-Mini 和 Gmail 投递

中级

这是一个Multimodal AI领域的自动化工作流,包含 11 个节点。主要使用 Set, Code, Gmail, SplitOut, Aggregate 等节点。 每日科技新闻精选:RSS、GPT-4o-Mini 和 Gmail 投递

前置要求
  • Google 账号和 Gmail API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "7888501fe66f93847229a4fe1e4efd9754bf14b1b98634200b2ff2090b5002a3",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "69394736-5c78-420e-9f03-ac18501cb377",
      "name": "每日新闻简报触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "⏰ Triggers daily at 8 AM UTC\n\nCustomize:\n- Change triggerAtHour (0-23)\n- Add timezone settings\n- Set weekday-only schedule",
      "position": [
        624,
        1040
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1ee57ce6-d7aa-49d5-bac7-814bde5b0a65",
      "name": "配置 RSS 源",
      "type": "n8n-nodes-base.set",
      "notes": "📡 Premium tech news RSS feeds\n\nSources:\n• TechCrunch AI\n• The Verge AI\n• MIT Tech Review\n• Wired AI\n• VentureBeat\n• ZDNet\n• Towards Data Science\n• NY Times Tech\n• Guardian Tech\n• BBC Tech",
      "position": [
        864,
        1040
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "53097a16-a525-4c89-828e-a36c5e0c3742",
              "name": "urls",
              "type": "array",
              "value": "[\n  \"https://techcrunch.com/tag/artificial-intelligence/feed/\",\n  \"https://www.theverge.com/artificial-intelligence/rss/index.xml\",\n  \"https://www.technologyreview.com/feed/\",\n  \"https://www.wired.com/feed/category/science/artificial-intelligence/latest/rss\",\n  \"https://venturebeat.com/category/ai/feed/\",\n  \"https://www.zdnet.com/topic/artificial-intelligence/rss.xml\",\n  \"https://towardsdatascience.com/feed\",\n  \"https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml\",\n  \"https://www.theguardian.com/uk/technology/rss\",\n  \"https://feeds.bbci.co.uk/news/technology/rss.xml\"\n]"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6477cbf0-790d-41ce-8b45-a273e03c9247",
      "name": "拆分 RSS URL",
      "type": "n8n-nodes-base.splitOut",
      "notes": "🔄 Splits URL array for parallel processing\n\nCreates individual execution paths\nfor each RSS feed URL",
      "position": [
        1088,
        1040
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "urls"
      },
      "typeVersion": 1
    },
    {
      "id": "37cfed68-0740-4e77-a1ab-827f8f1eec28",
      "name": "获取 RSS 文章",
      "type": "n8n-nodes-base.rssFeedRead",
      "notes": "📰 Fetches articles from RSS feeds\n\nExtracts:\n• Title\n• Content snippet\n• Article URL\n• Publication date\n\nContinues on errors to prevent\nsingle feed failures",
      "onError": "continueErrorOutput",
      "position": [
        1296,
        1040
      ],
      "parameters": {
        "url": "={{ $json.urls }}",
        "options": {}
      },
      "retryOnFail": false,
      "typeVersion": 1.2
    },
    {
      "id": "d7f56edb-cd31-4a53-b390-e910b7c50ce8",
      "name": "过滤文章",
      "type": "n8n-nodes-base.code",
      "notes": "⚖️ Balances article sources\n\n• Max 5 articles per domain\n• Prevents single-source domination\n• Ensures diverse coverage\n• Groups by domain, then flattens",
      "position": [
        1504,
        1040
      ],
      "parameters": {
        "jsCode": "// Limit articles per domain for balanced coverage\nconst input = $input.all();\nconst grouped = {};\n\nfor (const item of input) {\n  const link = item.json.link;\n  const domainMatch = link.match(/\\/\\/([^\\/]+)/);\n  const domain = domainMatch ? domainMatch[1].replace(/^www\\./, '') : 'unknown';\n\n  if (!grouped[domain]) grouped[domain] = [];\n  if (grouped[domain].length < 5) {\n    grouped[domain].push(item.json);\n  }\n}\n\n// Flatten results\nconst result = [];\nfor (const domain in grouped) {\n  result.push(...grouped[domain]);\n}\n\nreturn result.map(i => ({ json: i }));"
      },
      "typeVersion": 2
    },
    {
      "id": "14562212-87cc-4321-8277-bd8519c1adcf",
      "name": "清理数据",
      "type": "n8n-nodes-base.set",
      "notes": "🧹 Standardizes article structure\n\nMaps to clean format:\n• title → headline\n• content → summary\n• link → article URL\n• pubDate → timestamp",
      "position": [
        1712,
        1040
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "568b89e0-be16-4977-8c2a-882563174c9b",
              "name": "title",
              "type": "string",
              "value": "={{ $json.title }}"
            },
            {
              "id": "dfbf5a07-d66a-434e-8208-5a14946193de",
              "name": "content",
              "type": "string",
              "value": "={{ $json.contentSnippet }}"
            },
            {
              "id": "b3f87e87-2f95-4d84-a03d-f44f3f206db4",
              "name": "link",
              "type": "string",
              "value": "={{ $json.link }}"
            },
            {
              "id": "74e93f7a-908b-486c-bb2f-02e4f5ff204c",
              "name": "pubDate",
              "type": "string",
              "value": "={{ $json.pubDate }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6769221a-1d99-4c17-9828-46ee92be5926",
      "name": "合并文章",
      "type": "n8n-nodes-base.aggregate",
      "notes": "📊 Aggregates all articles\n\nCombines filtered articles from\nall sources into single dataset\nfor AI processing",
      "position": [
        1920,
        1040
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "6c430d53-cbd3-4881-b86b-48707c9e32a5",
      "name": "AI 通讯创建器",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "notes": "🤖 AI-powered article curation\n\nAnalyzes all articles and:\n• Selects top 10 most relevant\n• Creates HTML newsletter\n• Provides article summaries\n• Focuses on trending topics\n\nRequires: OpenAI API key",
      "position": [
        2176,
        1040
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "You are an AI Tech News Curator. Analyze the provided articles and create an HTML newsletter with the top 10 most relevant AI/tech articles.\n\nFormat as clean HTML starting with <!DOCTYPE html>\nInclude: article title, brief summary, and link for each article.\nFocus on trending AI, machine learning, and technology topics.\n\nArticles data: {{ JSON.stringify($json.data) }}"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "MViSj0jQLBUcuA6t",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fb8881bc-7831-43f8-97f7-4a604a4a9806",
      "name": "发送通讯",
      "type": "n8n-nodes-base.gmail",
      "notes": "📧 Sends HTML newsletter via Gmail\n\nSetup:\n1. Enable Gmail API\n2. Create OAuth2 credentials\n3. Update recipient email\n\nFeatures:\n• HTML email format\n• Dynamic date in subject\n• Professional newsletter style",
      "position": [
        2528,
        1040
      ],
      "webhookId": "2f333782-f060-4720-9bb9-b1f23c27f780",
      "parameters": {
        "sendTo": "your.email@example.com",
        "message": "={{ $json.message.content }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Daily AI Tech Digest - {{ $now.toFormat('EEEE, MMMM d, yyyy') }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "ObKdXRExIEHrpaND",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b43da764-1c99-4cdd-8b9c-338753c68826",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        384
      ],
      "parameters": {
        "color": 5,
        "width": 736,
        "height": 1136,
        "content": "# AI 科技新闻聚合器与新闻简报"
      },
      "typeVersion": 1
    },
    {
      "id": "c96013fe-cde1-4ef2-b833-683fb6269d67",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        400
      ],
      "parameters": {
        "color": 3,
        "width": 2192,
        "height": 848,
        "content": "## 工作流"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Clean Data": {
      "main": [
        [
          {
            "node": "Combine Articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split RSS URLs": {
      "main": [
        [
          {
            "node": "Fetch RSS Articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Articles": {
      "main": [
        [
          {
            "node": "Clean Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Articles": {
      "main": [
        [
          {
            "node": "AI Newsletter Creator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch RSS Articles": {
      "main": [
        [
          {
            "node": "Filter Articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Newsletter Creator": {
      "main": [
        [
          {
            "node": "Send Newsletter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure RSS Sources": {
      "main": [
        [
          {
            "node": "Split RSS URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Newsletter Trigger": {
      "main": [
        [
          {
            "node": "Configure RSS Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量11
分类1
节点类型9
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

外部链接
在 n8n.io 查看

分享此工作流