8
n8n 中文网amn8n.com

基于AI的新闻监控(Linkup、Airtable和Slack通知)

高级

这是一个Market Research, AI Summarization领域的自动化工作流,包含 16 个节点。主要使用 Set, Wait, Slack, Airtable, SplitOut 等节点。 基于AI的新闻监控(Linkup、Airtable和Slack通知)

前置要求
  • Slack Bot Token 或 Webhook URL
  • Airtable API Key
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "nodes": [
    {
      "id": "bf4f2727-7759-455b-a6a1-4b175e0626b2",
      "name": "遍历项目",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -160,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7ac9b3b7-d793-4b5b-9918-ccec99f52860",
      "name": "等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        528,
        688
      ],
      "webhookId": "37096805-17ce-43b0-8818-ddea6494fcaf",
      "parameters": {
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "f4746549-88aa-405e-82e2-027b010ef491",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1072,
        272
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "daysInterval": 7,
              "triggerAtHour": 17,
              "triggerAtMinute": 30
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1b1443b3-cd20-438a-b6e3-5da5962a03fe",
      "name": "查询 Linkup 获取新闻",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -608,
        272
      ],
      "parameters": {
        "url": "https://api.linkup.so/v1/search",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "=Find news related to \"{{ $json['News topic(s)'] }}\".\nOnly pick news, no opinion or evergreen articles.\nIdeally between 10 and 15 news."
            },
            {
              "name": "depth",
              "value": "standard"
            },
            {
              "name": "outputType",
              "value": "structured"
            },
            {
              "name": "structuredOutputSchema",
              "value": "={\n    \"type\": \"object\",\n    \"properties\": {\n        \"news\": {\n            \"type\": \"array\",\n            \"description\": \"A list of news articles\",\n            \"items\": {\n                \"type\": \"object\",\n                \"properties\": {\n                    \"title\": {\n                        \"type\": \"string\",\n                        \"description\": \"Title of the news article\"\n                    },\n                    \"url\": {\n                        \"type\": \"string\",\n                        \"description\": \"URL of the news article\"\n                    },\n                    \"content\": {\n                        \"type\": \"string\",\n                        \"description\": \"A summary of the news in a few sentences\"\n                    },\n                    \"date\": {\n                        \"type\": \"string\",\n                        \"format\": \"date-time\",\n                        \"description\": \"Publication date of the news article in ISO 8601 format (e.g., 2025-07-18T14:30:00Z) - really extract the publication date of the article, not a specific date mentioned in the news content\"\n                    }\n                },\n                \"required\": [\"title\", \"url\", \"content\", \"date\"]\n            }\n        }\n    },\n    \"required\": [\"news\"]\n}"
            },
            {
              "name": "fromDate",
              "value": "={{ \n  $now\n    .minus($json['News from last x days'], 'days')\n    .startOf('day')\n    .toISO()\n}}"
            },
            {
              "name": "includeImages",
              "value": "false"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "W7AgeoVOv60DlvyS",
          "name": "Linkup - web search AI"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6fe2c597-8212-47f4-b208-ff41889b93ae",
      "name": "设置新闻参数",
      "type": "n8n-nodes-base.set",
      "position": [
        -832,
        272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8a140389-83bd-4b60-9b16-07bf8a7d8511",
              "name": "News topic(s)",
              "type": "string",
              "value": "=decarbonisation, net-zero and corporate sustainability"
            },
            {
              "id": "1dbad32c-de95-4c01-9edf-1c8118c07778",
              "name": "News from last x days",
              "type": "number",
              "value": 7
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a5e80f86-317a-42c8-b3cd-6272e3e23739",
      "name": "存储一条新闻",
      "type": "n8n-nodes-base.airtable",
      "position": [
        160,
        304
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "app5DnGDQDIE9YZkV",
          "cachedResultUrl": "https://airtable.com/app5DnGDQDIE9YZkV",
          "cachedResultName": "News monitoring (N8N template)"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblzZNOaLwby3lV5S",
          "cachedResultUrl": "https://airtable.com/app5DnGDQDIE9YZkV/tblzZNOaLwby3lV5S",
          "cachedResultName": "News"
        },
        "columns": {
          "value": {
            "URL": "={{ $json.url }}",
            "Date": "={{ $json.date }}",
            "Title": "={{ $json.title }}",
            "Status": "new",
            "Summary": "={{ $json.content }}"
          },
          "schema": [
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "new",
                  "value": "new"
                },
                {
                  "name": "reviewed",
                  "value": "reviewed"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        },
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "xSf8osMIdIhLSt91",
          "name": "Duv Airtable"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c951dc15-33db-4416-94ac-937cc701ca00",
      "name": "在 Slack 中通知",
      "type": "n8n-nodes-base.slack",
      "position": [
        448,
        -32
      ],
      "webhookId": "99313eea-8dd4-4c94-8a01-369fa3b4f94b",
      "parameters": {
        "text": "=The News of the past {{ $('Set news parameters').item.json['News from last x days'] }} days are ready for review!\n\n{{ $json.data.length }} news were found!",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C025KLW3MQS",
          "cachedResultName": "général"
        },
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "credentials": {
        "slackApi": {
          "id": "EkDmLiXskPXRqVW4",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "f3756483-bc07-4ed8-b605-b0a29552cd13",
      "name": "聚合为 1 个项目",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        160,
        -32
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "5edfe681-f14b-4498-96c7-50107637e674",
      "name": "拆分新闻",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -384,
        272
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "news"
      },
      "typeVersion": 1
    },
    {
      "id": "16bda7f5-d7bc-4ac1-886b-9b405a33a627",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1696,
        96
      ],
      "parameters": {
        "width": 512,
        "height": 608,
        "content": "## **自动化新闻监控系统**"
      },
      "typeVersion": 1
    },
    {
      "id": "eafe476f-8052-4e37-953c-dd1984a5066f",
      "name": "便签 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 288,
        "content": "### 编辑此节点以设置主题和新鲜度"
      },
      "typeVersion": 1
    },
    {
      "id": "294dcd45-2719-4429-886b-8623c7084d5f",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 144,
        "content": "### 连接您的 Linkup 凭据"
      },
      "typeVersion": 1
    },
    {
      "id": "f9bab16a-ce44-4a4b-aaa2-1ec8796e73c7",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        464
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 272,
        "content": "### 连接您的 Airtable 凭据"
      },
      "typeVersion": 1
    },
    {
      "id": "9aa4a05c-0e7f-4a89-b0d0-fb11365be5f9",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        544
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 128,
        "content": "### 我们暂停片刻,让 Airtable API 稍作休息...并避免每秒触发速率限制!"
      },
      "typeVersion": 1
    },
    {
      "id": "da0eeb66-2d6d-41e9-a833-339c3d18c5b6",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        128
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 128,
        "content": "### 连接您希望接收通知的 Slack 频道,一旦准备就绪!"
      },
      "typeVersion": 1
    },
    {
      "id": "bece4bad-fee2-472a-972d-27d12a690b89",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1120,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 144,
        "content": "### 设置您喜欢的计划频率!"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "Schedule Trigger": [
      {
        "Hour": "05",
        "Year": "2025",
        "Month": "July",
        "Minute": "20",
        "Second": "28",
        "Timezone": "America/New_York (UTC-04:00)",
        "timestamp": "2025-07-18T05:20:28.857-04:00",
        "Day of week": "Friday",
        "Day of month": "18",
        "Readable date": "July 18th 2025, 5:20:28 am",
        "Readable time": "5:20:28 am"
      }
    ]
  },
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split out news": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store one news": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Aggregate in 1 item",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Store one news",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Set news parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate in 1 item": {
      "main": [
        [
          {
            "node": "Notify in Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set news parameters": {
      "main": [
        [
          {
            "node": "Query Linkup for news",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Query Linkup for news": {
      "main": [
        [
          {
            "node": "Split out news",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 市场调研, AI 摘要总结

需要付费吗?

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

工作流信息
难度等级
高级
节点数量16
分类2
节点类型10
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Guillaume Duvernay

Guillaume Duvernay

@duv

AI and automation expert

外部链接
在 n8n.io 查看

分享此工作流