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

2026-10-14 · 原文发布日

WhatsApp 销售线索 AI 应答与打分

接收 WhatsApp Cloud API 的入站消息并处理 Meta 的 webhook 验证,按消息 ID 去重后在 Supabase 里查客户和对话历史,加载商品目录交给 OpenAI 代理判断意图并草拟简短回复,再按规则给线索打冷温热分:回复发回客户、对话存档,热线索或需要人工时发 Slack 提醒团队。回复语气、语言、打分阈值都可改。

原文要点

原文模板接收 WhatsApp Cloud API 入站消息并处理 Meta 的一次性 webhook 验证,按消息 ID 在 Supabase 去重,按手机号查或建客户记录并拉取近期对话,加载商品目录(仅前 30 条)后交给基于 gpt-4o-mini 的 OpenAI 代理判断意图、草拟简短回复,再按规则打分标为冷/温/热(默认阈值 70 和 40),回复发回客户、对话存档、更新 CRM 字段,热线索或需要人工时发 Slack 提醒。语气、语言、阈值和提醒条件均可改;模板附带 whatsapp_sales_agent_setup.sql 建表脚本。

这次做成什么

照着搭一条 WhatsApp 销售线索自动应答工作流:收消息→去重→查客户与历史→AI 草拟回复→规则打分→回复客户并存档→热线索提醒 Slack。本站独立编写一份系统提示词、一份建表 SQL 和一条测试 webhook 数据,便于先离线验证。

准备什么

  • Meta Business 账号并开通 WhatsApp Cloud API,拿到 phone number ID 和访问令牌
  • n8n 实例有公网可达的 webhook URL,供 Meta 回调
  • Supabase 项目并建好 customers、conversations、products 三张表
  • OpenAI API 凭据(模板使用 gpt-4o-mini)和已加入目标频道的 Slack 应用
  • 产品和营业信息:商品名、价格、库存、配送/支付/退货/营业时间

具体怎么做

  1. 配置 webhook 与 Meta 验证

    添加 Webhook 节点接收 POST。Meta 配置回调时会先发一次 GET 验证请求(带 hub.mode、hub.verify_token、hub.challenge),工作流需在验证分支比对 verify token 并原样返回 hub.challenge。在 Meta 后台把回调 URL 指向该 webhook,订阅 messages 字段,verify token 与工作流里保持一致。

  2. 规范化与去重

    用 Code 节点把 WhatsApp 负载解析成干净记录:客户手机号、消息文本、message_id、时间戳;忽略状态回调(sent/delivered 等非消息事件)。在 Supabase 节点按 message_id 查询 conversations 表,已存在则直接结束流程,避免 Meta 重投造成重复回复。

  3. 查客户、拉历史、载目录

    按手机号查 customers 表,不存在则插入新客户;再查该客户最近若干条 conversations 作为历史上下文。另用 Supabase 节点读取 products 表前 30 条(模板默认上限),连同 Client Config 里的营业信息(商家名、配送、支付、退货、营业时间)一起组装成代理输入。

  4. AI 代理判断意图并草拟回复

    添加 OpenAI Chat 节点(模型 gpt-4o-mini),系统提示词见下方材料,用户消息中放入客户消息、近期历史与商品目录摘要,要求输出 JSON:intent、reply、needs_human。Code 节点解析后进入打分。

  5. 规则打分并分流

    在 AI Lead Scoring 节点按关键词和意图加分:出现购买意向、问价、问库存等加分,只问候不加分;默认 ≥70 为 Hot、40-69 为 Warm、<40 为 Cold,可按业务改阈值和关键词。打分写入对话记录。

  6. 回复、存档、提醒

    用 HTTP Request 或 WhatsApp 节点把 reply 经 Cloud API 发回客户;把本轮对话写入 conversations 并更新 customers 的 CRM 字段。加分支节点:Hot 或 needs_human 为真时调用 Slack 节点向销售频道发提醒,包含客户手机号、意向摘要和最近消息。

可直接复制的材料

AI 销售代理系统提示词(本站独立编写)

本站独立编写的示例提示词,占位符需替换为工作流里的实际字段;语气、语言、长度可按模板说明自行调整。

你是 {{business_name}} 的 WhatsApp 销售助理。根据客户消息、近期对话历史和商品目录,完成两件事:判断意图并草拟一条简短回复。

规则:
1. 只根据商品目录和营业信息回答,目录里没有的商品或价格不要编造,回复“我让同事确认后回复您”。
2. 回复不超过 80 字,语气友好,可用少量表情,默认用客户使用的语言。
3. 涉及投诉、退款纠纷、大额定制或你拿不准的问题,把 needs_human 设为 true。
4. 只输出 JSON:{"intent": "browse|ask_price|ask_stock|purchase|complaint|other", "reply": "给客户的回复", "needs_human": true或false}

营业信息:配送 {{delivery}};支付 {{payment}};退货 {{returns}};营业时间 {{hours}}。

Supabase 建表示例(本站独立简版)

本站独立编写的简化建表示例;原模板附带 whatsapp_sales_agent_setup.sql,请以模板内脚本为准核对字段。

create table customers (
  id bigint generated always as identity primary key,
  phone text unique not null,
  name text,
  lead_status text default 'Cold',
  last_message_at timestamptz,
  created_at timestamptz default now()
);

create table conversations (
  id bigint generated always as identity primary key,
  message_id text unique not null,
  phone text not null,
  direction text not null,
  body text,
  intent text,
  score int default 0,
  created_at timestamptz default now()
);

create table products (
  id bigint generated always as identity primary key,
  product_name text not null,
  price numeric(10,2),
  description text,
  features text,
  stock int default 0
);

Meta webhook 测试数据(本站虚构)

本站虚构的入站消息负载,可在 webhook 节点用测试执行验证规范化与去重逻辑,不会触发真实发送。

{
  "object": "whatsapp_business_account",
  "entry": [{
    "changes": [{
      "field": "messages",
      "value": {
        "messages": [{
          "id": "wamid.TESTDEMO001",
          "from": "8613800000000",
          "timestamp": "1730000000",
          "type": "text",
          "text": {"body": "你好,你们的蓝牙耳机多少钱?有现货吗?"}
        }],
        "metadata": {"phone_number_id": "100000000000001"}
      }
    }]
  }]
}

输入与输出示例

本站虚构演示,分值与阈值为示例设定,非该工作流的实测输出。

输入

客户(8613800000000)发来:“你好,你们的蓝牙耳机多少钱?有现货吗?”目录中蓝牙耳机 199 元、库存 42 件。

对应输出

{"intent":"ask_price","reply":"您好!蓝牙耳机现价 199 元,目前有现货,今天下单明天就能发货~需要我帮您留一副吗?","needs_human":false};打分:问价+30、问库存+25,合计 55 → Warm,不触发 Slack 提醒。

做完检查这些

  • Meta 后台 webhook 验证一次性通过,回调状态正常
  • 同一 message_id 重复投递时只处理一次,不重复回复
  • 代理输出可解析为含 intent、reply、needs_human 的 JSON
  • 打分后能正确标出 Cold/Warm/Hot,Hot 或 needs_human 时 Slack 频道收到提醒
  • conversations 表按消息顺序存下双向对话,customers 的 CRM 字段同步更新

容易卡住的地方

  • verify token 在 Meta 和工作流两边必须完全一致,否则验证失败
  • 非消息类回调(送达回执等)若不忽略会污染去重和历史逻辑
  • 目录只加载前 30 条商品,目录更大时要加按兴趣或关键词过滤,否则 AI 看不到全部商品
  • Slack 应用必须先被邀请进目标频道,否则发消息报错
  • gpt-4o-mini 调用和 WhatsApp Cloud API 可能产生费用,需自行核算
  • 测试请用隔离的测试号码与凭据,不要拿真实客户对话练手

原文与作者资料 ↗

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

原文标题
Reply to WhatsApp sales leads with OpenAI, Supabase, and Slack alerts
原作者
Bhaskar Gorati
原始发布日期
2026-10-14T06:22:32.078Z
来源
https://n8n.io/workflows/20928