WhatsApp Business App 共存(Coexistence)完全指南
一个号码如何同时跑在 WhatsApp Business App 和 Cloud API 上——会导入什么、一次性的 24 小时历史窗口,以及那些做错了就无法撤销的步骤。
共存(Coexistence) 指的是同一个 WhatsApp 号码,既由店主的 WhatsApp Business App 使用,又同时接在平台的 Cloud API 上。这是绝大多数小生意真正想要的形态:他们继续用口袋里那台手机回消息,同时团队在同一个号码上获得共享收件箱、自动化和报表。
它也是坑最深的一种接入方式,因为其中好几步一生只发生一次、并且不能重来。这篇文章讲的就是这几步。
号码接入的两种方式
| 标准 Cloud API | 共存 | |
|---|---|---|
| 手机上的 WhatsApp Business App | 该号码停止可用 | 继续可用 |
| 手机上已有的聊天记录 | 丢失 | 一次性导入 |
| 谁能回复 | 只有平台 | 手机和平台都可以 |
| 能撤销吗 | 不能——驱逐是永久的 | 没有需要撤销的东西 |
区别之所以重要,是因为标准接入会为 Cloud API 独占注册该号码,而注册会把号码从店主的手机上驱逐出去。App 会登出,这一动作本身也不会转移手机上的聊天记录。没有撤销操作,也没有任何工单能把它退回去。
所以,如果这门生意想继续用手机,共存流程必须在注册的那一刻就选好。它不是一个事后可以打开的开关。
会导入什么、什么时候导入
一个号码通过共存流程接入之后,WhatsApp 会向对接的平台推送两样东西:
- 通讯录——那台手机上保存的联系人,包括店主给他们起的备注名。
- 会话历史——大约最近六个月的聊天记录,双向的都有。
关于这次导入,有三个事实决定了这门生意到底能不能拿到自己的历史:
- 每个号码一生只能请求一次。 两个同步各自只有一次机会,失败或漏掉都不会在之后补发。
- 有 24 小时的硬性期限。 如果在接入后一天之内没有发起同步请求,WhatsApp 会强制把号码从平台下线。
- 它在接入后几分钟内一次性到达,是一大批过去的消息突然涌入,而不是慢慢回填。
历史里的媒体文件是个特例
导入的消息里,有一部分带着真实的媒体 id,文件可以正常拉取。另一部分——那些只在手机上存在过的文件——到达时只是一个没有任何 id 的占位符。这些文件谁也找不回来,在任何平台上都一样。它们会在会话里显示成一条"文件不可用"的说明,而不是一张破图。
导入的历史绝对不能做的事
一次导入,是几百条旧消息从与实时流量相同的通道里涌进来,而且其中一半是商家自己说的话,不是顾客说的。处理不当,后果你的顾客会直接看到:
- AI 助手绝对不能去回答它们。 如果把导入消息当成新的入站流量,自动回复会对每一条都触发一次——用商家自己的号码,发给真实的人,聊的是几个月前的对话。
- 必须按消息发出的时间落库。 收件箱按消息时间排序,用"现在"导入,等于把六个月的历史堆在今天的队列上面。
- 不能重开任何东西。 去年三月的一条消息,不该把一个今天早上刚被人工解决掉的会话重新拉回未处理队列。
- 不能打开服务窗口。 一条导入的入站消息并不代表顾客此刻在跟你说话,把它当成那样,等于误以为可以给一批本来不允许发自由格式消息的顾客发这类消息。
Juno 用一条与实时流量完全分开的通道来落这四条规则——导入的消息根本不会进入自动化和 AI 层。
接入第一个号码之前
有两件事值得在当天就确认,因为它们都是一次性的:
- 媒体存储必须已经配置好。 WhatsApp 的媒体大约在消息发出 30 天后过期。在存储配好之前到达的照片只会留下一个 id,一个月之后文件对所有人都不存在了。
- 平台必须已经订阅了共存相关的事件类型。 订阅历史事件是一个账号级别的设置,跟"接入这个号码"是两件事。缺了它,接入看起来照样成功,两个同步照样被接受,但一条历史消息都不会送达——而这次导入不能再请求第二次。
Juno 会在写入任何东西之前先检查第二条,缺失时直接拒绝继续,正是为了不让这个号码唯一一次拿回历史的机会,浪费在一次根本到达不了的投递上。