WhatsApp 日志
Bird 仪表板中的 Messages 页面是工作区发送过的每条 WhatsApp 消息的记录:通过 POST /v1/whatsapp/messages 发出的每次发送都会出现在这里,最新的排在最前面。用它来确认消息是否已发出、查看消息在投递生命周期中的位置,以及了解使用了哪个模板。关于该页面在仪表板中的位置,请参阅仪表板导览。
消息列表

每行代表一条消息。各列如下:
| 列名 | 显示内容 |
|---|---|
| Status | 消息的当前状态(参见状态说明),以彩色圆点表示 |
| From | 消息发送所用的 WhatsApp 发送方号码 |
| To | 接收方号码 |
| Template | 消息使用的模板(点击该行可打开消息详情) |
| 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、语言和类别,以及发送、投递和已读时间戳。对于未送达的消息,还会显示错误描述,以及发送时携带的任何标签和元数据。
通过 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 定价:按目的地和类别计算的消息费用