AI PLAY玩法更新持续收录
← 回到更新流

2026-09-20 · 原文发布日

竞品价格异动每日监控

n8n免费模板:每天早上把竞品商品URL交给Apify电商抓取工具(自带反爬处理),价格统一解析格式后存入Postgres,用SQL视图对比30天均价和90天最低价来发现异动,AI agent把变动写成调价建议发到Slack;抓不到的URL单独告警,避免页面坏了被当成市场平静。新链接前14天不报,避免基线噪音。

原文要点

该n8n工作流每天定时读取竞品商品URL,交给Apify电商抓取Actor(由其处理反爬、代理与各零售商页面差异),归一化后每天每商品写一行到Postgres。SQL视图用30天均价±5%区间、90天最低/最高价、新链接14天静默期来判定异动,且只报状态跳变一次。AI agent只负责把判定结果写成调价建议发Slack;抓取为空的URL走单独告警分支。价格解析不假设地区格式,货币存ISO代码,库存保留三态。需Postgres 15以上(视图用到security_invoker)。

这次做成什么

搭一条每天6点自动运行的竞品价格监控:抓价入库→SQL判定异动→AI写建议发Slack→抓取失败单独告警。本站额外设计一个先用合成CSV验证SQL判定逻辑的练习,让你在接Apify之前先确认阈值行为。

准备什么

  • n8n Cloud账号(实例主已开启已验证社区节点)或自托管n8n并可装@apify/n8n-nodes-apify
  • Apify账号与API令牌、Postgres 15+或Supabase项目
  • Slack工作区与一个可发消息的聊天模型凭据
  • 一份竞品商品URL清单(先用3至5条测试)

具体怎么做

  1. 先跑SQL逻辑练习(不接抓取)

    在Postgres建pricing.price_history表(字段:product_url、price_amount数值、currency_iso三字母码、stock_state、snapshot_date)。用下方合成CSV导入14天以上数据,再建判定视图,查询今天与30天均价、90天低价的对比,确认5%阈值和14天静默符合预期。

  2. 装Apify节点并建库

    n8n Cloud在画布搜Apify社区节点;自托管到Settings→Community nodes安装@apify/n8n-nodes-apify。然后按模板置顶便签里的supabase_schema.sql在Postgres建私有schema(启用RLS,避免经Supabase Data API暴露)。

  3. 配四处凭据与URL清单

    在模板里依次填入Apify、Postgres、聊天模型、Slack四个凭据。打开Pages to watch节点,把示例URL换成你的竞品链接,并设置Slack目标频道。

  4. 校时区并手动试跑

    定时触发器写的是06:00,按n8n实例时区解释,先确认实例时区。手动运行一次,到pricing.price_history查是否落了一行;再让某URL失效跑一次,确认空结果告警分支会发Slack而不是静默。

可直接复制的材料

SQL判定练习用合成CSV

本站编造的7行数据:p/1001有26天历史(8月25日至9月20日)且今日降价7.7%应触发异动;p/2002只有2天历史,应被14天静默期挡下。导入自建测试库即可,勿用真实库。

product_url,price_amount,currency_iso,stock_state,snapshot_date
https://shop-a.example/p/1001,1299.00,TWD,in_stock,2026-08-25
https://shop-a.example/p/1001,1299.00,TWD,in_stock,2026-09-01
https://shop-a.example/p/1001,1299.00,TWD,in_stock,2026-09-08
https://shop-a.example/p/1001,1299.00,TWD,in_stock,2026-09-15
https://shop-a.example/p/1001,1199.00,TWD,in_stock,2026-09-20
https://shop-b.example/p/2002,499.00,TWD,in_stock,2026-09-19
https://shop-b.example/p/2002,469.00,TWD,in_stock,2026-09-20

调价建议提示词(供AI agent节点参考改写)

原模板检测由SQL决定、模型只写文案,本提示词是本站按此角色编写的示例,可按品牌语气改。

你是电商定价助理。下面是今日被判定为价格异动的竞品记录(JSON数组,含product_url、今日价、30天均价、90天最低价、库存状态)。请用繁体中文输出一段Slack消息:每个异动一行,说明涨跌幅度、相对30天均价与90天低点的位置,并给出一句可执行的调价建议(跟随、观望或反向促销)。若记录为空,回复「今日无异动」。不要改动任何数字,不要编造记录之外的商品。

输入与输出示例

本站虚构演示,未实际运行原工作流;百分比为按示例数字直接计算。

输入

合成CSV中的p/1001:8月25日至9月15日价1299,9月20日降至1199;p/2002仅9月19至20日两天记录,价499降至469。

对应输出

视图判定:p/1001今日1199,低于30天均价1299约7.7%,超5%阈值且已有26天基线,标记为price_drop并只报一次;p/2002虽有6.0%降幅,但历史不足14天,静默不报。Slack示意消息:「shop-a p/1001 降價7.7%(1299→1199),低於30日均價,建議跟進至1199或觀察48小時。」

做完检查这些

  • 手动运行一次后pricing.price_history出现当日每商品各一行,价格解析不受1.299,99这类格式影响
  • p/1001式长期商品跌破5%阈值时Slack收到一条建议,次日价格不变不再重复推送
  • p/2002式不足14天的新链接即使有大幅降价也不进异动列表
  • 故意填一个失效URL后,抓取失败分支单独发告警而不是当作无异动

容易卡住的地方

  • Postgres必须15以上,否则security_invoker视图建不起来
  • 06:00按n8n实例时区而非浏览器时区,时区错了会在意外时间触发
  • 阈值、90天窗口、14天静默都在同一个SQL视图里改,只改AI提示词不会改变判定
  • Apify与聊天模型调用可能另产生费用,免费仅指模板本身

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Monitor competitor price shifts with Apify, Postgres, OpenAI, and Slack
原作者
Apify
原始发布日期
2026-09-20T07:31:03.527Z
来源
https://n8n.io/workflows/19750