2026-09-24 · 原文发布日
n8n流程:盯股票新闻,只把重要消息推到Slack
该n8n模板每六小时自动运行一次,读取自选股列表、回看天数和Slack频道等设置,逐个代码调用Webz.io新闻搜索,再用GPT-4.1-mini判断哪些文章属于真正会影响行情的消息,滤掉一般性报道。流程会把已推送过的文章URL存档去重,避免重复打扰,剩下的新消息按股票代码和事件类型分组整理后发到指定Slack频道;某只股票查询失败时会给出可读错误而不是静默跳过。需要自备Webz.io、OpenAI和Slack的凭证。
原文要点
该模板每6小时由定时触发器运行,读取监控设置(股票代码列表、回看天数、文章数、Slack频道),把逗号分隔的代码拆成逐项,逐只调用Webz.io新闻搜索,再用OpenAI gpt-4.1-mini输出结构化结果,只保留真正可能影响行情的报道;用工作流级URL历史对已推送文章去重,新消息按代码和事件类型分组发到Slack;单只代码查询失败会以可读错误终止该次运行而不是静默跳过。原文要求股票代码大写、激活工作流后去重才在生产运行间持久,手动测试运行去重不生效。
这次做成什么
在n8n中搭好这条盯盘新闻流:改好监控设置、接好三套凭证、用合成数据做一次手动测试确认分组推送格式正确,再激活进入每6小时自动盯新闻。本站补充一份独立设计的判断提示词示例和合成测试数据,供你在模板实际节点里核对替换。
准备什么
- 一个可用的n8n实例(自建或云版),能打开并编辑该模板
- Webz.io账号及其API token,用于Bearer Auth凭证
- OpenAI API凭证,能调用gpt-4.1-mini或你自有的替代工具调用模型
- Slack工作区管理员权限,可创建应用并授予chat:write与channels:read,且能把机器人邀请进目标频道
- 一份自选股代码清单(大写,逗号分隔,如AAPL,NVDA)
具体怎么做
导入模板并先看监控设置节点
在n8n模板页打开该工作流并导入实例。先找到名为Monitor settings之类的设置节点,把tickers改成你的大写逗号分隔列表(如AAPL,NVDA,TSLA),lookbackDays填回看天数(练习建议1),articleCount填每只取回的文章数(练习建议5),slackChannel填目标频道名。保存前确认时区设置与你的交易时段一致。
配置三套凭证
在Webz.io新闻搜索节点上新建Bearer Auth凭证,Header填Authorization、值填Bearer 你的token。在Chat Model节点绑定OpenAI凭证,模型保持gpt-4.1-mini或换成你已有的工具调用模型。在Slack节点绑定Slack凭证,确认应用有chat:write和channels:read权限,并把机器人邀请进目标频道,否则发消息会报权限错误。
用合成返回数据做手动测试
在激活前先手动执行一次。为不依赖真实新闻,可临时在Webz.io节点后用测试输入固定下方artifacts中的合成文章JSON,观察流程是否只保留 earnings、regulatory 这类事件、是否按代码分组拼出Slack消息、URL历史节点是否把本轮URL写入。手动测试时URL去重历史不会像生产运行那样持久,这是原文明确说明的行为,不要当成故障。
激活并验证首个生产周期
确认测试通过后激活工作流。等第一个6小时周期跑完,检查Slack频道是否收到按代码和事件类型分组的消息;再手动改一只不存在的代码跑一次,确认流程以可读错误终止而不是静默跳过,便于你及时发现配置问题。
可直接复制的材料
监控设置练习值(本站示例配置)
本站独立编写的练习值,需替换为你的真实代码列表和频道名;具体字段名以模板中Monitor settings节点实际为准,需在原模板核对。
{
"tickers": "AAPL,NVDA,TSLA",
"lookbackDays": 1,
"articleCount": 5,
"slackChannel": "#stock-alerts-demo"
}行情相关性判断提示词(本站独立示例)
本站独立撰写,供你核对模板内OpenAI节点的实际提示词后按需替换;未核实模板原文提示词细节。
你是财经新闻筛选助手。下面是一只股票代码和若干条近期新闻的标题与摘要。请只保留真正可能影响该股票市场价格的消息,例如:财报与业绩指引、监管处罚或审批、并购与重大合同、高管变动、产品召回或安全事故。滤掉一般性评论、股评栏目、重复转载和无实质信息的快讯。对每条保留的消息输出JSON数组元素:{"ticker":代码,"url":原文链接,"title":标题,"event_type":事件类型(earnings/regulatory/ma/legal/product/other),"reason":一句话理由}。若无符合条件的消息,输出空数组[]。合成测试文章数据
本站虚构合成数据,仅用于手动测试时固定输入;url为示例域名,不是真实文章。
[
{"ticker":"NVDA","url":"https://example.com/news/nvda-q3-earnings","title":"NVDA公布第三财季营收超预期并上调指引","snippet":"公司季度营收同比增长,数据中心业务为主要驱动。"},
{"ticker":"NVDA","url":"https://example.com/news/nvda-opinion-piece","title":"专栏:我们为什么看好芯片板块","snippet":"本文为评论性内容,无新事实。"},
{"ticker":"AAPL","url":"https://example.com/news/aapl-eu-fine","title":"欧盟对AAPL开出反垄断罚单","snippet":"监管机构宣布罚款并要求整改应用商店规则。"}
]输入与输出示例
本站虚构演示,非原作者运行结果,未实际执行工作流。
输入
tickers为NVDA,AAPL,输入上方三条合成文章,其中NVDA两条、AAPL一条对应输出
预期筛选后保留2条:NVDA财报(event_type=earnings)与AAPL欧盟罚单(event_type=regulatory),专栏评论被滤除。Slack消息按代码分组:NVDA组1条、AAPL组1条,各含标题、事件类型与链接;三条URL全部写入URL历史,下一轮相同URL不再推送。做完检查这些
- Monitor settings中的代码全部大写且为逗号分隔,拆项后每只代码产生独立查询项
- Slack测试消息确实出现在目标频道且按代码与事件类型分组,而非逐条散乱刷屏
- 同一篇文章URL在后续运行中不重复推送(需在激活后的生产运行验证)
- 把代码改成不存在的值后,流程以可读错误终止,能在执行记录里看到明确报错
容易卡住的地方
- URL去重历史只在激活后的生产执行间持久,手动测试运行时去重表现不同,别误判为bug
- Slack机器人未被邀请进频道会发消息失败,邀请动作必须在频道内完成
- 股票代码未大写可能导致设置解析或查询异常,原文明确要求大写
- Webz.io与OpenAI调用各自计费,6小时一次的频率乘以代码数决定用量,本文不提供费用估算
- Webz.io免费额度或查询限制可能使单只代码查询失败,原文设计是失败即终止本次运行
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Monitor stock watchlist news with Webz.io, GPT-4.1-mini, and Slack
- 原作者
- Webz.io
- 原始发布日期
- 2026-09-24T08:53:46.869Z
- 来源
- https://n8n.io/workflows/19896