2026-10-08 · 原文发布日
每天自动诊断黄金货架位上的滞销商品
面向零售门店的n8n流程:每天凌晨汇总Google Sheets里的商品目录、销售、库存和货架陈列数据,算出未售天数、到期天数、相对品类中位的价格指数、清货天数和占用资金等指标。筛出在黄金视线层放够天数却近30天滞销的商品,按规则矩阵给出清仓、下架、试价、移位或观察建议,再把资金占用最高的若干条交给Gemini复核,价格有确定性护栏钳制,最终行动票写入Action_Queue页并在Slack发摘要。
原文要点
原模板每天01:00(或手动)运行:从Google Sheets读Catalog_Master、Sales_Rollup、Inventory_Snapshot、Planogram四个标签页,按门店×SKU连接成含品类同组统计和替代SKU候选的数据集;计算未售天数、到期天数、相对品类中位的价格指数、动销速率、清货天数、资金占用;筛出在黄金视线层(zone_tier)放够天数、有库存、近30天低销的SKU,按规则矩阵给出liquidate/delist/price test/relocate/monitor;按资金占用排序取前N(max_ai_items)送Gemini出结构化决策,再用确定性护栏钳制价格并强制下架与替代SKU规则;行动票upsert进Action_Queue页,Slack发摘要,Run_Log写一行审计。模板免费,Gemini与Slack为各自服务。
这次做成什么
搭一条每日滞销诊断流水线:规则引擎先初筛黄金位滞销品,Gemini复核高资金占用项,产出带定价、移位、ERP标记和复核日期的行动票;本站给出四张输入表的最小列结构、一条合成测试数据和复核提示词。
准备什么
- n8n实例,可用Google Sheets(Service Account)、Google Gemini(PaLM)、Slack三类凭据
- 一个含Catalog_Master、Sales_Rollup、Inventory_Snapshot、Planogram、Action_Queue、Run_Log六个标签页的Google Sheet
- 门店商品目录、近30天销售汇总、库存快照(含最早批次到期日)、货架陈列(zone_tier等)数据
- Slack工作区及可发消息的目标频道
具体怎么做
建表并授权服务账号
建六个标签页。输入四页最小列:Catalog_Master(store_id,sku_id,category,cost,price,replacement_sku);Sales_Rollup(store_id,sku_id,units_30d,last_sale_date);Inventory_Snapshot(store_id,sku_id,total_on_hand,earliest_batch_expiry);Planogram(store_id,sku_id,zone_tier,days_in_zone,facings)。Action_Queue与Run_Log列以模板配置为准。把表格共享给服务账号邮箱,在n8n配好凭据并在Config里填sheet ID。
配置阈值与凭据
在Config检查t_stagnant_days(滞销天数门槛)、expiry_critical_days(临期门槛)、price_index_limit、max_ai_items(送AI复核的条数,练习时设3)、黄金位最短在架天数。再配Gemini与Slack凭据并设频道。阈值是业务决策,没有统一正确值,先用小门店数据试跑再调。
用合成数据手动触发验证
往四张输入表各填数行本站给的合成数据,保证至少一行满足:zone_tier=prime、在架天数≥门槛、total_on_hand>0、units_30d低于滞销阈值。手动执行:流程连表→算指标→规则矩阵给建议→按资金占用排序→前N送Gemini→护栏钳制→写Action_Queue→发Slack→写Run_Log。
核对输出后再激活调度
检查Action_Queue里行动票的action、定价、移位、复核日期是否被护栏约束在合理范围(如清货价不低于成本);Slack摘要条数与Action_Queue新增一致;Run_Log有一行计数审计。确认后激活01:00定时触发。
可直接复制的材料
四张输入表的合成测试数据(CSV,直接粘进对应标签页)
本站虚构合成数据,字段名需与模板Config核对;A100设计为命中滞销+临期规则
--Catalog_Master--
store_id,sku_id,category,cost,price,replacement_sku
S01,A100,酸奶,3.2,6.5,A101
S01,A101,酸奶,3.5,6.9,
--Sales_Rollup--
store_id,sku_id,units_30d,last_sale_date
S01,A100,2,2026-09-10
S01,A101,48,2026-10-07
--Inventory_Snapshot--
store_id,sku_id,total_on_hand,earliest_batch_expiry
S01,A100,40,2026-10-20
S01,A101,12,2026-11-15
--Planogram--
store_id,sku_id,zone_tier,days_in_zone,facings
S01,A100,prime,45,3
S01,A101,prime,60,2Gemini复核提示词(本站独立编写)
变量名需在模板中核对替换;护栏(价格钳制、替代SKU强制)由模板代码兜底,提示词只是第一道
你是零售门店商品运营顾问。下面是某门店黄金视线层疑似滞销SKU的JSON数据,含未售天数、到期天数、价格指数(相对品类中位)、清货天数、占用资金与系统建议动作。请复核每条:1)判断建议动作(liquidate/delist/price_test/relocate/monitor)是否合理,可改判并给reason;2)若建议降价,给出suggested_price,但不得高于现价、不得低于成本价;3)若建议delist,确认replacement_sku非空。只输出JSON数组:[{"store_id":"","sku_id":"","action":"","suggested_price":0.0,"reason":""}]
数据:{{items_json}}输入与输出示例
本站虚构演示,数字对应合成输入,非模板实跑结果
输入
S01店SKU A100:黄金位45天、units_30d=2、在库40件、最早批次2026-10-20到期、成本3.2元、现价6.5元,资金占用128元,规则矩阵初判liquidate。对应输出
Gemini返回{"store_id":"S01","sku_id":"A100","action":"liquidate","suggested_price":4.5,"reason":"临期且动销极慢"};护栏确认4.5不低于成本3.2;Action_Queue新增一票:清货价4.5元、facings 3→1、复核日期7天后;Slack摘要显示本店1条liquidate;Run_Log写入扫描2条/命中1条。做完检查这些
- A100命中滞销+临期规则进入候选,A101(动销48件)被过滤掉,不进入Action_Queue
- 送Gemini的条数不超过max_ai_items,且按资金占用从高到低取
- 清货建议价被护栏限制在不高于现价且不低于成本,delist建议必须有replacement_sku
- Action_Queue新增票数与Slack摘要计数、Run_Log审计行计数一致
容易卡住的地方
- 六个标签页名与列名必须与模板Config完全一致,错一个下划线连接就失败
- earliest_batch_expiry等日期列格式不统一会导致到期天数计算错误,先统一为YYYY-MM-DD
- Gemini返回非JSON时解析节点会报错,提示词里必须强调只输出JSON数组
- 阈值(t_stagnant_days等)没有普适值,直接套默认值可能全店误报,用合成数据校准后再上真数据
- Service Account未共享表格会读不到数据;Slack频道未授权会发送失败
- 行动票只写入Action_Queue并发Slack摘要,模板不会直接改ERP或线上价格,实际执行仍需门店人员按票操作
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Optimize dead shelf products with Google Sheets, Google Gemini and Slack
- 原作者
- iamvaar
- 原始发布日期
- 2026-10-08T12:05:50.069Z
- 来源
- https://n8n.io/workflows/20665