把 WhatsApp 模板导入 Omni Octo

在 Meta 的 WhatsApp Manager 里创建模板,或者请 Octo 帮你写,用“从 Meta 同步”把它们导入进来,再看懂每个模板显示的状态 —— 包括已批准的模板找不到时该怎么办。

更新于

Omni Octo 不会背着你写模板,而且每一个模板都要经过 Meta 批准。创建模板有两种方式, 导入模板只有一种:

  • 在 Meta 的 WhatsApp Manager 里写,然后同步到 Omni Octo。
  • 请 Octo 来写。 Octo 替你把模板提交给 Meta,模板会立刻出现在 Omni Octo 里, 带着 Meta 在提交时给出的状态。

不管哪种方式,模板都放在 /templates/whatsapp,而且只有已批准的模板才能 发送。如果你还没读过 什么时候 WhatsApp 消息必须是模板, 请先读那篇 —— 它讲了模板的类别和组成部分。

模板页面

/templates/whatsapp 列出 Omni Octo 知道的所有模板,包括显示名称、名称、 状态、类别、语言、渠道和创建时间。标题下方写着:

管理用于外发营销活动的已批准模板。在 Meta Manager 中创建新模板。

潮汐洗衣店的 WhatsApp 模板页面,列出六个模板,每个都有显示名称、名称、状态(已批准、待审核、已拒绝)、类别、语言、WhatsApp 号码和创建时间。右上角是“从 Meta 同步”和“上次同步 5 分钟前”。
这个号码上的全部模板和它们的状态。Octo 创建的模板有好读的显示名称,比如“取件确认”;同步进来的模板显示的是它在 Meta 上的名称。

Meta Manager 是一个指向 Meta WhatsApp Manager 的链接。这个页面上没有编辑器: 你不能在这里写模板,也不能在这里改模板的文字。要改措辞,请在 WhatsApp Manager 里 编辑(Meta 会重新审核),然后同步。

筛选条件可以按状态、语言、WhatsApp 号码来缩小列表,还可以按显示名称和名称搜索。 标题下方有一行 —— 正在显示以下模板: —— 写明你正在看的是哪个或哪些号码。

点击某一行会打开这个模板:页眉、变量高亮显示的正文、页脚、按钮,以及创建和批准的 日期。面板上有 用于营销活动、在 Meta Manager 中查看 和 删除。

方式一:在 WhatsApp Manager 里写

当模板需要文字以外的东西 —— 图片、视频或文件页眉,复制验证码按钮 —— 或者它是一个 措辞由 Meta 固定的验证类模板时,就用这种方式。WhatsApp Manager 有 Meta 自己的 编辑器和预览,Omni Octo 并不取代它。

在那里提交,Meta 会进行审核。在你同步之前,Omni Octo 并不知道它的存在 —— 见下文。

方式二:请 Octo 来写

Octo 可以根据一句话搭建并提交一个模板。以潮汐洗衣店为例:

Create a utility template called pickup_reminder on our WhatsApp number:
"Hi {{customer_name}}, a reminder that your pickup is {{pickup_slot}}. Reply here if you need to change it."
Add a quick-reply button "Change time".

Octo 能放进模板里的内容:

部分Octo 能搭建的
页眉仅文本
正文文本,可以带 {{customer_name}} 这样的命名变量
页脚文本
按钮一个链接(URL 末尾可以是一个变量)、一个电话号码,或者快速回复

它不能添加图片、视频或文件页眉,也不能添加复制验证码按钮 —— 这些请用 WhatsApp Manager。

有几件事 Octo 会替你做,也有几件事它会拒绝:

  • 命名变量会变成编号。 Octo 发给 Meta 的是 {{1}} 和 {{2}},并记住 {{1}} 原来是 customer_name。请 Octo 发送这个模板时,你可以按名字给出变量值。在其他 任何地方 —— 收件箱、API、营销活动 —— 它都是一个按位置填写的模板:{{1}}、 {{2}}。
  • 名称只能用小写字母、数字和下划线 —— 写 pickup_reminder,不要写 Pickup Reminder。Octo 还会给它起一个好读的显示名称,用在模板页面上。
  • Meta 会拒绝的正文,它会先拒绝,在向 Meta 发送任何东西之前:以变量开头的正文、 变量位于结尾或紧挨着结尾的正文,或者两个变量之间只隔一个空格的正文。Octo 会告诉你 正文违反了哪条规则。
  • 电话号码按钮需要一个真实的号码。 编造的号码会被 Meta 拒绝。

提交完成后,Octo 会告诉你 Meta 给出的状态,并附上这个模板在 /templates/whatsapp 上的链接。不需要同步:Octo 创建的模板已经在页面上了。

如果你提出要求,Octo 还可以列出你的模板、完整显示某个模板、同步某个号码,以及删除 模板。

从 Meta 同步

从 Meta 同步 是 /templates/whatsapp 右上角的按钮。对于它同步的每一个 WhatsApp 号码,它会向 Meta 请求该号码背后的 WhatsApp Business 账户里的全部模板, 然后:

  • 添加 Omni Octo 还没有的模板,
  • 刷新 已有的模板 —— 状态、类别、内容,以及 Meta 给出的拒绝原因,
  • 移除 Meta 上已经不存在的模板,比如有人在 WhatsApp Manager 里把它删了。Meta 不会通知我们删除操作,所以同步是它们从这里消失的唯一途径。

完成后,会有一行文字报告发生了什么:

已从 Meta 同步 — 新增 2 个, 更新 6 个(共 8 个)

新增 统计的是之前不在这里的模板。更新 只统计真正有变化的模板 —— Meta 上原样 未变的模板不会被改动,也不计入。如果同步删除了模板,还会加上 移除 N 个。什么都 没变时,这一行显示为 已从 Meta 同步 — 无变更,后面跟着总数。

按钮下方的 上次同步 告诉你模板上一次导入是多久以前 —— 上次同步 5 分钟前。

通过同步导入的模板,会用它在 Meta 上的名称作为显示名称,因为 Meta 没有单独的显示 名称。

同步哪些号码

模板按 WhatsApp 号码分开保存,按钮同步哪些号码由 渠道 筛选决定:

  • 所有渠道 —— 工作区里每一个已启用的 WhatsApp 号码,逐个同步,结果合并成 一行。已停用、出错或仍在设置中的号码会被跳过,因为无法向 Meta 查询它们。
  • 在筛选中选定的某一个号码 —— 只同步这个号码,不管它处于什么状态。

如果一个号码失败而其他号码成功,你会看到成功那部分的结果行,以及每个失败号码各一条 单独的提示,写明号码名称:无法同步 潮汐洗衣店 主号码:…,后面是 Meta 的错误信息。

上次同步 也遵循同样的筛选。选中一个号码时,显示的是这个号码的上次同步时间。选 所有渠道 时,显示的是已启用号码中最早的那次上次同步 —— 这样一个落后的号码 不会被刚刚同步过的号码掩盖。如果当前范围内有任何号码从未同步过,这一行就不显示。

在对话里同步

/conversations 中的模板选择器也有同样的 从 Meta 同步 按钮,在列表旁边和 空状态里都有。它同步的是这个对话所在的号码,并在按钮下方显示同样的结果行。当你刚在 WhatsApp Manager 里写完一个模板、又不想离开对话时,就用它。

每种状态是什么意思

状态含义能发送吗?
待审核Meta 还在审核不能
已批准Meta 已批准能
已拒绝Meta 拒绝了不能
已暂停Meta 暂停了它不能
已停用Meta 停用了它不能

只有 已批准 的模板才能发送 —— 无论是在对话里、通过 API、由 Octo 还是在营销活动 中。处于其他任何状态的模板根本不会出现在对话的选择器里,而且在它的面板上, 用于营销活动 是灰色的,并显示这样一行:

模板必须先通过 Meta 批准,才能启动营销活动。当前状态:待审核。

如果 Meta 报告了一个 Omni Octo 没有对应名称的状态,模板会显示为 待审核,直到 Meta 把它推进到下一个状态。

Meta 拒绝模板时

打开这个模板。如果 Meta 给出了原因,面板会在模板内容上方,用一个标题为 已被 Meta 拒绝 的方框显示出来。Meta 的原因是一个简短的代码,而不是一句话 —— 比如 Meta 认为一条促销被当作实用类提交时,会给出 INCORRECT_CATEGORY。Omni Octo 按 Meta 发来的原样显示这个代码,不做解读。

一个被拒绝的营销类模板的面板:标题为“已被 Meta 拒绝”的方框里显示 Meta 的原因 INCORRECT_CATEGORY,下方是模板的正文和页脚,“用于营销活动”为灰色,并附一行说明模板必须先获得批准。
Meta 的原因,按 Meta 发来的原样显示 —— 这里是代码 INCORRECT_CATEGORY —— 在模板获得批准之前,“用于营销活动”一直是灰色的。

被拒绝的模板无法在 Omni Octo 里修正。请在 WhatsApp Manager 里编辑并重新提交,或者 请 Octo 用一个新名称创建一个修正后的模板。

看着模板获得批准

让 /templates/whatsapp 保持打开,你不需要刷新它。当 Meta 通知我们它批准、拒绝、 暂停或停用了一个 Omni Octo 已有的模板时,那一行会自动变化,并弹出一条提示: 模板状态现在为已批准。

这只对 Omni Octo 已经知道的模板有效 —— Octo 创建的,或者你在它还处于待审核时就同步 过的。一个你在 WhatsApp Manager 里写好却从没同步过的模板,还不在页面上,所以没有 什么可以更新:同步它。

删除模板

模板面板上的 删除 会先询问:

确定删除模板“pickup_confirmation”吗?此操作也会将其从 Meta 中删除。

它不只是从 Omni Octo 移除 —— 在 Meta 那边也会被删除。反过来,如果你在 WhatsApp Manager 里删除,模板会在 Meta 上被删除,并在你下次同步时从 Omni Octo 消失。

“我在 Meta 里批准了,这里却没有”

按顺序逐项检查:

  1. 同步。 点击 从 Meta 同步。在 WhatsApp Manager 里写的模板永远不会自己 导入进来。
  2. 确认号码已启用。 在 所有渠道 下,只会同步已启用的号码。如果模板属于一个 出错或仍在设置中的号码,请在 渠道 筛选中选中这个号码,单独同步 —— Meta 返回的错误会告诉你问题在哪。在对话里,选择器只同步这个对话所在的号码。
  3. 检查筛选条件。 状态、语言或搜索筛选都可能把它藏起来。开着筛选且没有匹配项时, 页面会显示 没有符合筛选条件的模板。
  4. 检查 WhatsApp Business 账户。 同步读取的是号码所连接的那个账户。在 WhatsApp Manager 里另一个企业账户下创建的模板,不会被导入。
  5. 看错误信息。 如果 Meta 拒绝了同步,错误会显示在你点击按钮的地方 —— 在页面上 是一条提示(选 所有渠道 时,每个失败的号码各一条,带号码名称),在选择器里 则显示在按钮下方。

一旦它显示 已批准,四种发送方式就都可以用了。

接下来读什么