// Install the SDK
// npm install @messagebird/sdk
const msg = await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_otp",
components: [{ type: "body", parameters: [{ type: "text", text: "123456" }] }],
},
});
console.log(msg.id, msg.status);使用我们的 TypeScript、Python、Go 或 PHP SDK、Bird CLI 或直接发送 HTTP 请求,几分钟内即可发出第一条消息。在你自己的 WhatsApp Business 号码验证期间,可以立即使用 Bird 预先审核通过的模板。
模板与 24 小时窗口
在 24 小时窗口内外发送正确格式的消息。
WhatsApp 将企业主动发起的触达与进行中的客户对话区分开。在没有活跃聊天时,使用经 Meta 审核的实用、身份验证或营销模板联系客户;客户给你发消息或来电后的 24 小时内,可改为发送自由格式文本、媒体和交互菜单。
提前发现已关闭的窗口和变量不匹配
Bird 按收件人和企业号码跟踪 24 小时客户服务窗口。如果你的应用在窗口关闭后尝试发送自由格式消息,或传入的模板变量与占位符不匹配,API 会在创建或计费之前拒绝该调用。
富媒体、交互按钮和列表菜单
对话开启时,通过同一个端点发送图片、PDF、音频、视频、位置或联系人名片。添加快捷回复按钮、多选列表菜单、商品轮播,或位置和联系人请求,让客户点一下即可回复,无需打字。
实时送达跟踪
跟踪消息从 API 受理到已读回执的全过程。
在 WhatsApp 上发送是异步的。Bird 受理你的请求后,webhook 事件和单条消息时间线会显示消息何时交给 WhatsApp、何时送达客户手机以及何时在聊天中被打开。
借助 Meta 错误详情诊断拒绝原因
如果消息在受理后失败,例如服务窗口在发送途中过期或 Meta 拦截了投递,Bird 会在消息记录中保存失败描述和对应的 Meta 错误码,让你的团队判断是重试还是切换渠道。
防止网络重试导致重复发送
在发送请求中附带幂等键,这样在保留期内发生超时或工作进程重试时,会返回原始响应,而不会重复发送消息。
order_ready
事件
已接受
Bird 接受请求并返回消息标识。
已发送
消息进入发送流程。
已送达
提供商的观测结果可用时,会更新消息记录。
读取
在同一集成中处理拒绝、失败和缺失的观测结果。
Harbor
商业账户
order_ready
Harbor
商业账户
事件
已接受
Bird 接受请求并返回消息标识。
已发送
消息进入发送流程。
已送达
提供商的观测结果可用时,会更新消息记录。
读取
在同一集成中处理拒绝、失败和缺失的观测结果。
双向工作流的上下文
让客户回复始终关联到正确的订单或工单。
引用之前的消息,让客户在聊天中直接看到你在回答哪个问题或哪笔订单。当客户点击快捷回复按钮、选择列表选项或回复最近的消息时,Bird 会返回所选操作和被引用消息的引用信息,让你的应用立即分发该回复。
为外发消息添加标签和元数据
为外发消息添加最多 20 个可筛选标签和 2 KB 的自定义 JSON 元数据。按营销活动或工作流切分消息日志,并在 API 读取和送达 webhook 中,让内部订单号或工单号始终关联到外发记录。
在代码库、终端或 AI 代理中操作
通过 Bird CLI 发送测试消息、查看送达时间线并筛选近期记录,或通过 Bird MCP 服务器连接你的编程助手,权限受工作区角色和发送方权限管控。
WhatsApp 发送常见问题
请求被接受是否意味着消息已送达?
我可以随时发送自由格式的消息吗?
是否有 WhatsApp 批量发送端点?
如何将交互式回复匹配到我的应用?
规模扩展, 不失控制。
Separate production and sandbox traffic into dedicated workspaces, scope API keys to the exact channels each service or agent needs, and track permission changes in the audit log.