WhatsApp 日志
Bird 仪表盘中的 Messages 页面是工作区发送的每条 WhatsApp 消息的完整记录:通过 POST /v1/whatsapp/messages 发出的每条消息都会出现在这里,按时间倒序排列。您可以用它确认消息是否已发出、查看投递状态,以及了解消息使用了哪个模板。要了解此页面在仪表盘中的位置,请参阅仪表盘导览。
消息列表

每行代表一条消息。各列如下:
| 列名 | 显示内容 |
|---|---|
| Status | 消息的当前状态(参见状态),以彩色圆点显示 |
| From | 消息发送所用的 WhatsApp 发送方号码 |
| To | 收件人号码 |
| Content | 消息发送所用的模板,或入站消息的文本(点击该行可打开消息) |
| Category | 模板的类别 |
| Sent | 发送被接受的时间 |
列表分页显示,每页 25 条消息;使用 Prev 和 Next 在页面之间切换。
搜索与筛选
消息日志增长很快,因此页面顶部提供了接收方搜索和两个筛选器。它们可以组合使用:状态筛选加日期范围会缩小到同时匹配两者的消息。
按接收方搜索。 搜索框匹配 E.164 格式的精确接收方号码。输入你发送到的完整号码(例如 +14155550100),即可找到发送给该号码的所有消息。搜索匹配完整值,而非其中的子串。
Status。 按一个或多个状态筛选。Status 支持多选,例如你可以同时选择 Accepted 和 Sent 来显示所有仍在投递中的消息。可选项包括 Accepted、Sent、Delivered、Failed、Rejected 和 Received。
Date。 按消息发送时间筛选:选择预设范围(最近 3 天、7 天或 30 天),或从日历中选择自定义范围。
当筛选条件组合没有匹配结果时,页面会显示无结果状态,并提供 Clear filters 操作以重置回完整列表。
状态说明
消息的状态反映其当前的发送或接收阶段。出站消息从 accepted 开始,逐步推进到最终回执。
| 状态 | 含义 |
|---|---|
| Accepted | 已接收该消息,正在准备将其交给 WhatsApp |
| Sent | 已交给 WhatsApp,等待投递回执 |
| Delivered | WhatsApp 确认已投递给接收方 |
| Failed | 发送或投递失败;请查看记录的错误信息 |
| Rejected | Bird 在发送前拒绝了该消息。消息未发出,也不会产生费用 |
| Scheduled | 已排入队列,将在未来某个时间发送 |
| Canceled | 计划发送的消息在发出前已取消;没有后续发送 |
| Received | 一条入站消息 |
当收件人在工作区的屏蔽列表中、钱包余额不足以支付发送费用、或目标地区未配置价格时,消息会被标记为 rejected。已读回执不是一种状态:当收件人阅读了一条已送达的消息时,Bird 会在该消息上记录一个 read_at 时间戳和一个 whatsapp.read 事件,投递状态仍保持为 delivered。
检查消息详情
点击任意行可打开该消息。顶部显示生成消息的模板、当前状态、收件人和类别标签,下方有三个选项卡:

- Events:消息上发生的所有事件的时间线,按顺序排列,每个事件附有时间戳。它依次显示
Accepted、Sent、Delivered,如果接收方已阅读则显示已读回执,或者显示失败或拒绝及其错误描述。这与通过GET /v1/whatsapp/messages/{message_id}/events读取的事件流相同。 - Details:消息的元数据。包含 ID(带复制按钮)、发送方和接收方号码、模板的 slug、语言和类别,以及发送、投递和已读时间戳。对于未送达的消息,还会显示错误描述,以及发送时携带的任何标签和元数据。
- Preview:消息在 WhatsApp 中的渲染效果。对于模板消息,此处显示的是模板的当前内容,而非发送时提供的值,因此变量会显示为占位符,且后续对模板的编辑会改变您看到的内容;请将其视为渲染辅助工具,而非已送达内容的记录。入站消息则预览其自身内容。
通过 API 查看相同的日志
本页面上的所有内容均读取自 GET /v1/whatsapp/messages 及其逐条消息的子资源。列表接受页面本身的三个筛选条件:status、category 以及日期范围(created_after/created_before)。它还支持页面上没有对应控件的几个筛选条件:direction、标签,以及精确的 to 或 from。to 和 from 表示与响应中相同的消息两端,因此 to 在出站消息中是联系人,在入站消息中是你的企业号码;两者均接受 E.164 格式的电话号码或业务范围内的用户 ID。页面的收件人搜索是唯一没有直接对应项的筛选条件,因为它匹配任一方向上的联系人,而仅靠 to 或 from 无法表达这一点。Events 标签页背后的时间线是 GET /v1/whatsapp/messages/{message_id}/events;WhatsApp 事件介绍了如何以编程方式读取它。
后续步骤
- 发送 WhatsApp 消息:每行背后的发送载荷
- WhatsApp 事件:时间线背后的消息状态事件
- WhatsApp 指标:所有消息的聚合视图
- WhatsApp 定价:按目的地和类别计算的消息费用