# 不支持的 WhatsApp 消息类型

WhatsApp 承载了 Bird 的 API 未建模的内容，从目录订单到关于对话的系统通知。Bird 不会丢弃这类消息或以空内容投递，而是使用一个 `unsupported` 分支记录它，该分支标明了 WhatsApp 内容类型。消息在 [WhatsApp 日志](/docs/guides/whatsapp/message-log)中可见，并像其他消息一样送达你的 webhook。

## 不支持的消息包含什么

`unsupported.type` 携带 WhatsApp 自身的类型字符串来描述收到的内容，这也是消息上唯一的内容。外层信封不变：

```json
{
  "id": "wam_01kyh0w4ujnz2x8p1s5dci0vlg",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "unsupported": { "type": "order" },
  "created_at": "2026-08-25T09:31:20Z"
}
```

| `type`        | 联系人发送的内容                                                   |
| ------------- | ------------------------------------------------------------------ |
| `interactive` | API 无法将其回复形式识别为点击的互动内容                           |
| `button`      | API 无法将其识别为回复的按钮点击                                   |
| `order`       | 从产品目录下单的购物车或订单                                       |
| `system`      | 关于对话的系统通知，例如联系人更换了手机号码                       |
| `unsupported` | WhatsApp 自身的 `unsupported` 类型，用于其自有客户端无法渲染的消息 |

`unsupported` 在上表中不是占位符。当 WhatsApp 的某个客户端发送了其他客户端无法显示的内容时，它会上报一个以此命名的内容类型，该值即以此形式到达。

该列表是开放的。WhatsApp 会随时间添加新的内容类型，因此遇到无法识别的 `type` 时，应将其视为未来的类型而非错误：记录并继续，而不是中断读取。

## webhook 载荷

`whatsapp.received` 也会为不支持的消息触发，携带相同的分支：

```json
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:31:20.774Z",
  "data": {
    "whatsapp_id": "wam_01kyh0w4ujnz2x8p1s5dci0vlg",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100" },
    "to": { "phone_number": "+13124495569" },
    "unsupported": { "type": "order" },
    "tags": null,
    "metadata": null
  }
}
```

根据找到的 content 字段进行分支的端点应有一个默认分支，该分支正是此 arm 所落入的位置。无论哪种情况都以 `2xx` 确认 webhook：重试不会改变任何结果，因为内容不会在两次尝试之间变为已建模。

## 不支持的消息仍然会做什么

在不依赖于内容的所有方面，该消息都被视为一条入站消息：

- **它会重置客服窗口**为全新的 24 小时，因此从目录下单的订单会重新打开自由回复权限。
- **它会出现在消息列表和 WhatsApp 日志中**，显示其类型而非空白行。
- **它不会被计费。** 入站消息均不收费。

你无法做的是读取其内容。订单不会携带购物车详情，系统通知也不会说明具体变更。如果需要这些细节，可以用文字询问联系人，或使用[回复按钮或列表菜单](/docs/guides/whatsapp/message-types/interactive)，使回答以你可以处理的已建模分支到达。

## 注意事项

- **不要将该分支视为错误。** 消息已成功接收，只是内容未建模。对其告警意味着每当联系人下单时都会触发告警。
- **`system` 类型可能意味着联系人更换了号码。** Meta 将电话号码变更记录为引发系统消息的事件之一，同时会重新生成联系人的[业务范围用户 ID](/docs/guides/whatsapp/business-scoped-user-ids)。该分支仅标明类型，不含其他信息，因此应将其视为重新确认对方身份的提示。
- **表情回应不是不支持的消息。** 它根本不是入站消息，因此不会触达任何 webhook，也不会出现在任何消息列表中：每次变更都记录在被回应消息自身的回应日志中，详见 [WhatsApp 事件](/docs/guides/whatsapp/events#reaction-events)。
- **原样存储类型值。** 未来的类型会解析为你尚未编写代码处理的名称，保留原始值才能在你实现支持后找到这些消息。

## 后续步骤

- [接收消息的工作原理](/docs/guides/whatsapp/receiving-whatsapp)：入站信封、媒体获取以及 `whatsapp.received` webhook
- [接收互动回复](/docs/guides/whatsapp/receiving-whatsapp/interactive-replies)：以已建模内容到达的点击操作
- [WhatsApp 日志](/docs/guides/whatsapp/message-log)：在控制面板中浏览对话
- [WhatsApp 事件](/docs/guides/whatsapp/events)：完整的事件列表，通过 API 或 webhook 获取

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
