2026-09-29 · 原文发布日
WhatsApp和Telegram上的多智能体小店运营助手
这是模板作者标价的付费模板。它把WhatsApp Business和Telegram消息接进一个OpenAI编排器,由六个分工代理分别处理销售线索、供应商、库存、发票、预约和客服,业务知识取自Google Sheets,验证过的动作落进PostgreSQL,敏感操作需Telegram管理员批准,也可自动回复客户。部署需跑配套SQL建表、按模板建表格,并配置企业档案和启用的代理。附件只做元数据处理,预约仅记为待确认请求。
原文要点
原模板是付费n8n模板,核心链路为WhatsApp Business Cloud API与Telegram消息进入后,先做文本、发送者与附件元数据归一化,再读PostgreSQL业务档案、受信供应商与去重记录;常规消息取已批准知识与近期会话,交给一个OpenAI编排器协调销售线索、供应商产品、库存、发票、预约、客服六个代理。动作先校验启用代理、角色、权限与必填数据,再写PostgreSQL;支持的产品变更同步Google Sheets,敏感变更要Telegram管理员批准,预约只记未确认请求,附件只处理元数据。
这次做成什么
在站内先搭一套可验收的“小店多代理分流”练习:不购买模板也能用一张人工样例事件、六段角色提示词和一份审批规则表,验证消息归一化、意图路由、敏感动作审批与结果落库的判断逻辑;若之后购买原模板,本页输出可作为核对清单,不是原工作流文件。
准备什么
- 一个可写测试PostgreSQL库或先用SQLite/表格模拟,绝不能连生产库
- n8n实例或先用纸面/表格跑流程,需具备公开HTTPS webhook时才接真实WhatsApp/Telegram
- OpenAI兼容模型凭据仅用于独立练习,可先用人工判读替代
- Google Sheets测试表含BusinessFAQ、Products、Inventory、InvoiceRules、BookingRules五个分页
- Telegram测试机器人与管理员chat ID,WhatsApp仅在有Business Cloud API测试号时启用
具体怎么做
建立最小业务档案与规则
在测试表新建五页:BusinessFAQ放十条常见问题;Products放SKU、名称、价格、同步开关;Inventory放SKU、库存、低库存阈值;InvoiceRules放开票触发词与必填字段;BookingRules放可预约时段、时长、是否需人工确认。另建一张agent_rules表,列agent、enabled、allowed_ops、requires_admin_approval、required_fields,把六个代理逐行填入。
造一条人工样例事件并归一化
不从真实客户抓数据。构造JSON样例:channel取whatsapp或telegram,event_id唯一,sender_id、sender_role、text、received_at、attachments只保留filename、mime、size。进入流程前先查event_id是否已存在于processed_events;存在则丢弃,不存在再读取business_profile与trusted_suppliers,标记sender是否管理员或供应商。
用编排提示词做六路分流
把归一化事件、近五轮会话、BusinessFAQ片段和agent_rules贴入本页编排提示词,让模型只输出JSON:primary_agent必须是sales、supplier、inventory、invoice、appointment、support之一;proposal含action、fields、risk_level;missing_fields列出缺项;admin_approval_required按规则表判定。人工先核对输出是否引用不存在的代理或字段。
验证动作后才写入结果
对每个proposal做四道闸:代理enabled为true;sender_role允许该action;required_fields齐全;敏感动作已有管理员approve命令。四道全过才在outcomes表写status=validated,否则写status=rejected及原因。产品变更仅在Products同步开关为真且SKU可靠时追加到待同步清单,不直接改真实表。
演练管理员批准与客户回复
敏感proposal生成approval_id,发到测试Telegram管理员会话;只识别格式为APPROVE approval_id或REJECT approval_id reason的命令。获批后把outcomes改为approved并生成客户可读回复;未获批回复“已收到,需人工确认后处理”。预约一律写unconfirmed request,不假装已订日历。
可直接复制的材料
六代理编排练习提示词
本站独立编写的练习提示词,不是原模板系统指令;接入原模板后需在其对应节点核对实际提示词与模型参数。
你是小店运营编排器。只根据输入JSON工作,禁止编造库存、价格、预约结果。输出必须是单个JSON对象,不要Markdown。字段:primary_agent从sales、supplier、inventory、invoice、appointment、support选一;secondary_agents为数组;proposal包含action、target_sheet、fields、risk_level(low|medium|high);missing_fields为数组;admin_approval_required为布尔;customer_reply为不超过80字中文;reason不超过50字。规则:预约只能请求,不能确认;发票支付、市场上架、图像视频音频PDF内容分析都标记unsupported;需要改库存、价格、发票、供应商或删除记录时risk_level不得为low且admin_approval_required为true;字段不足时primary_agent仍可选,但proposal.action必须为request_more_info。输入:{{normalized_event}} {{recent_history}} {{business_profile}} {{agent_rules}}agent_rules测试配置
本站合成配置;TEST_SHEET_ID、TEST_CHAT_ID必须替换,金额、库存不要指向真实数据。
{"business_id":"demo_shop_001","industry":"零售","spreadsheet_id":"TEST_SHEET_ID","admin_telegram_chat_id":"TEST_CHAT_ID","trusted_suppliers":["SUP-A","SUP-B"],"auto_reply":false,"agents":[{"agent":"sales","enabled":true,"allowed_ops":["create_lead","faq_reply"],"requires_admin_approval":false,"required_fields":["sender_id","text"]},{"agent":"supplier","enabled":true,"allowed_ops":["identify_supplier","draft_update"],"requires_admin_approval":true,"required_fields":["sku","supplier_id"]},{"agent":"inventory","enabled":true,"allowed_ops":["read_stock","draft_adjust"],"requires_admin_approval":true,"required_fields":["sku","quantity"]},{"agent":"invoice","enabled":true,"allowed_ops":["explain_rule","draft_invoice"],"requires_admin_approval":true,"required_fields":["order_ref","amount"]},{"agent":"appointment","enabled":true,"allowed_ops":["request_booking"],"requires_admin_approval":false,"required_fields":["name","phone","preferred_time"]},{"agent":"support","enabled":true,"allowed_ops":["faq_reply","handoff"],"requires_admin_approval":false,"required_fields":["text"]}]}人工样例事件集
全部为虚构号码与事件;PDF只按元数据处理,不解析内容。
[{"event_id":"evt-wa-0001","channel":"whatsapp","sender_id":"8613800000000","sender_role":"customer","text":"SKU-102还有货吗?能降到95元吗?","received_at":"2026-10-01T10:00:00+08:00","attachments":[{"filename":"quote.pdf","mime":"application/pdf","size":10240}]},{"event_id":"evt-tg-0002","channel":"telegram","sender_id":"admin_1","sender_role":"admin","text":"APPROVE ap-20261001-01 同意临时改价","received_at":"2026-10-01T10:05:00+08:00","attachments":[]},{"event_id":"evt-wa-0003","channel":"whatsapp","sender_id":"8613900000000","sender_role":"customer","text":"想约明天下午看货,我叫林岚,电话13900001111","received_at":"2026-10-01T10:10:00+08:00","attachments":[]}]输入与输出示例
本站虚构演示,未运行模型或原模板;输出字段与输入SKU、库存、目标价对应。
输入
evt-wa-0001:客户问SKU-102是否有货并压价到95元;Inventory显示SKU-102库存8、阈值5,Products价格128、同步开关真;customer非管理员。对应输出
{"primary_agent":"inventory","secondary_agents":["sales"],"proposal":{"action":"read_stock_then_draft_update","target_sheet":"Inventory","fields":{"sku":"SKU-102","stock":8,"requested_price":95},"risk_level":"medium"},"missing_fields":["approved_price","supplier_id"],"admin_approval_required":true,"customer_reply":"SKU-102当前有货;改价需人工确认,我先记录您的目标价95元。","reason":"询价含改价,附件不解析"}做完检查这些
- 重复event_id被识别且不再处理,outcomes出现duplicate_skip原因
- 六个代理都能在agent_rules中逐项启停,禁用代理即使被模型点名也会rejected
- 改库存、改价、发票草案、供应商变更都生成approval_id,未收到APPROVE前outcomes不是approved
- 预约样例只写入unconfirmed request,不出现日历已确认、已付款或市场上架字样
- 客户回复不承诺PDF内容分析,只说明已收到附件元数据
容易卡住的地方
- 这是作者标价付费模板,本站示例不是原工作流文件;购买前不要声称可导入等价JSON
- 真实上线必须另跑作者随附SQL建uam_*表和函数;本站未提供该脚本,不能凭记忆重建
- WhatsApp Business Cloud API与Telegram都需要公开HTTPS webhook和各自权限,内网n8n不能直接收真实消息
- 产品同步每条消息只支持一个变体且依赖可靠SKU,撞名或缺SKU会造成重复或错同步
- 附件、语音转写、PDF正文、自动日历、支付与市场上架在原版本明确未实现,练习不要补写成已完成
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Manage WhatsApp and Telegram business ops with OpenAI, Postgres and Sheets
- 原作者
- Paras Gediya
- 原始发布日期
- 2026-09-28T22:58:34.799Z
- 来源
- https://n8n.io/workflows/20103