# 接收 WhatsApp 文本消息

联系人在聊天中输入内容后会产生一条携带 `text` 的入站消息。这是最常见的入站分支，也是打开或重置[客户服务窗口](/docs/knowledge-base/whatsapp/customer-service-window)的分支。

## 入站文本携带的内容

`text.body` 保存联系人输入的内容，该分支上不携带其他任何字段：

```json
{
  "id": "wam_01kya19eknftrs2s6p82asmvnh",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100", "display_name": "Alex Rivera" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "text": { "body": "Is my order out for delivery yet?" },
  "created_at": "2026-08-25T09:04:11Z"
}
```

`preview_url` 是一个发送端字段。入站文本不携带链接预览标志，无论联系人自己的客户端渲染了什么，因此 `body` 中的 URL 会作为文本的一部分被读取。

读取 schema 未对入站 `body` 声明最大长度。4096 字符的上限属于[发送端](/docs/guides/whatsapp/message-types/plain-text#limits)，因此请将存储设计为无限制文本，而不是依赖入站分支未承诺的限制。

## 以引用回复方式发送的文本

当联系人通过引用你的某条消息来回复时，分支不变，`in_reply_to_message_id` 标识他们回复的那条消息：

```json
{
  "id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "text": { "body": "Yes, that one" },
  "created_at": "2026-08-25T09:06:02Z"
}
```

WhatsApp 并非标记每一条回复，未标记的回复不携带任何 ID。请参阅中心页面的[引用回复](/docs/guides/whatsapp/receiving-whatsapp#quoted-replies)，了解解析可能遗漏的情况以及如何在没有 ID 时进行关联。

## Webhook 载荷

`whatsapp.received` 在事件信封上携带相同的分支，因此端点可以直接处理文本，无需再读取消息：

```json
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:04:11.118Z",
  "data": {
    "whatsapp_id": "wam_01kya19eknftrs2s6p82asmvnh",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100", "display_name": "Alex Rivera" },
    "to": { "phone_number": "+13124495569" },
    "text": { "body": "Is my order out for delivery yet?" },
    "tags": null,
    "metadata": null
  }
}
```

## 注意事项

- **文本是联系人重新打开窗口的最低成本方式。** 任何入站消息都会将服务窗口重置为 24 小时，而文本是大多数联系人发送的内容；从那一刻起，你可以发送自由格式的回复。
- **`from` 可能不携带电话号码。** 已启用 WhatsApp 用户名的联系人通过[业务范围用户 ID](/docs/guides/whatsapp/business-scoped-user-ids)联系你，因此请从 `from` 读取身份信息，而不要假定 `from.phone_number` 已设置。
- **正文是联系人自己输入的内容。** 点击你发送的某个元素会以[互动回复](/docs/guides/whatsapp/receiving-whatsapp/interactive-replies)的形式到达其独立的分支。

## 后续步骤

- [接收工作原理](/docs/guides/whatsapp/receiving-whatsapp)：入站信封、媒体获取以及 `whatsapp.received` webhook
- [WhatsApp 纯文本消息](/docs/guides/whatsapp/message-types/plain-text)：同一分支的发送端
- [接收互动回复](/docs/guides/whatsapp/receiving-whatsapp/interactive-replies)：点击按钮或列表行后到达的内容
- [发送 WhatsApp 消息](/docs/guides/whatsapp/sending-whatsapp)：在服务窗口内回复以及引用消息

## 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)
