关于 whatsapp-automation
whatsapp-automation 是通过 Rube MCP 使用 Composio 工具包自动处理 WhatsApp Business 业务的技能,涵盖消息、模板、媒体、联系人和企业资料。
主要功能
- 01发送文本和模板消息
- 02上传并发送媒体
- 03回复收到的消息
- 04分享联系人卡片
- 05查看企业资料并管理模板
适用场景
- 01在允许的时间窗口内发送客户消息
- 02发送已批准的外发沟通模板
- 03在聊天中分享媒体或联系人卡片
MCP 相关
通过 Rube MCP 使用 Composio 的 WhatsApp 工具包。需要有效的 WhatsApp Business 连接;普通 WhatsApp 账号不适用。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ composiohq/ awesome-claude-skills --skill whatsapp-automation安装后在 Claude Code 中输入/whatsapp-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 WhatsApp Business
通过 Rube MCP 使用 Composio 的 WhatsApp 工具包自动化 WhatsApp Business 操作。
工具包文档:composio.dev/toolkits/whatsapp
前置条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过
RUBE_MANAGE_CONNECTIONS建立有效的 WhatsApp 连接,并使用工具包whatsapp - 始终先调用
RUBE_SEARCH_TOOLS,以获取当前工具架构 - 需要 WhatsApp Business API 账号(不能使用普通 WhatsApp 账号)
设置
获取 Rube MCP:在客户端配置中添加 https://rube.app/mcp 作为 MCP 服务。无需 API 密钥,只需添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS能正常响应,以验证 Rube MCP 是否可用 - 使用工具包
whatsapp调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请按返回的授权链接完成 WhatsApp Business 设置
- 运行任何工作流前,确认连接状态显示为 ACTIVE
核心工作流
1. 发送文本消息
适用场景:用户想向 WhatsApp 联系人发送文本消息
工具调用顺序:
WHATSAPP_GET_PHONE_NUMBERS- 列出可用的企业电话号码 [前置步骤]WHATSAPP_SEND_MESSAGE- 发送文本消息 [必需]
关键参数:
to:接收方电话号码,使用国际格式(例如:'+14155551234')body:消息文本内容phone_number_id:用于发送消息的企业电话号码 ID
注意事项:
- 电话号码必须使用包含国家/地区代码的国际 E.164 格式
- 超出 24 小时窗口后发送消息需要使用已批准的模板
- 24 小时窗口从客户上次给你发送消息时开始计算
- 企业主动发起的对话必须先发送模板消息
2. 发送模板消息
适用场景:用户想发送预先批准的模板消息进行主动沟通
工具调用顺序:
WHATSAPP_GET_MESSAGE_TEMPLATES- 列出可用模板 [前置步骤]WHATSAPP_GET_TEMPLATE_STATUS- 检查模板审批状态 [可选]WHATSAPP_SEND_TEMPLATE_MESSAGE- 发送模板消息 [必需]
关键参数:
template_name:已批准模板的名称language_code:模板语言(例如:'en_US')to:接收方电话号码components:模板变量值和参数
注意事项:
- 模板必须先经过 Meta 批准才能使用
- 模板变量必须与预期的数量和格式一致
- 发送未批准或已拒绝的模板会返回错误
- 语言代码必须与模板已批准的翻译版本相符
3. 发送媒体消息
适用场景:用户想发送图像、文档或其他媒体
工具调用顺序:
WHATSAPP_UPLOAD_MEDIA- 将媒体上传到 WhatsApp 服务器 [必需]WHATSAPP_SEND_MEDIA_BY_ID- 使用上传后获得的媒体 ID 发送媒体 [必需] 或WHATSAPP_SEND_MEDIA- 使用公开 URL 发送媒体 [替代方案]
关键参数:
media_url:媒体的公开 URL(用于 SEND_MEDIA)media_id:上传响应中的 ID(用于 SEND_MEDIA_BY_ID)type:媒体类型('image'、'document'、'audio'、'video'、'sticker')caption:媒体的可选说明
注意事项:
- 上传的媒体 ID 是临时的,会在一段时间后过期
- 媒体大小限制因类型而异(图像:5MB,视频:16MB,文档:100MB)
- 支持的格式:图像(JPEG、PNG)、视频(MP4、3GPP)、文档(PDF 等)
- SEND_MEDIA 需要使用可公开访问的 HTTPS URL
4. 回复消息
使用时机:用户想回复收到的 WhatsApp 消息
工具顺序:
WHATSAPP_SEND_REPLY- 回复特定消息[必需]
关键参数:
message_id:要回复的消息 IDto:收件人的电话号码body:回复文本内容
注意事项:
message_id必须来自 24 小时窗口内收到的消息- 回复会在对话中显示为引用消息
- 原始消息必须仍然存在(未删除),引用才会显示
5. 管理商业资料和模板
使用时机:用户想查看或管理其 WhatsApp Business 资料
工具顺序:
WHATSAPP_GET_BUSINESS_PROFILE- 获取商业资料详情[可选]WHATSAPP_GET_PHONE_NUMBERS- 列出已注册的电话号码[可选]WHATSAPP_GET_PHONE_NUMBER- 获取特定号码的详情[可选]WHATSAPP_CREATE_MESSAGE_TEMPLATE- 创建新模板[可选]WHATSAPP_GET_MESSAGE_TEMPLATES- 列出所有模板[可选]
关键参数:
phone_number_id:商业电话号码 IDtemplate_name:新模板的名称category:模板类别(MARKETING、UTILITY、AUTHENTICATION)language:模板语言代码
注意事项:
- 新模板必须经过 Meta 审核后才能使用
- 模板名称必须使用小写字母和下划线(不能有空格)
- 类别会影响定价和审批标准
- 模板的标题、正文和按钮都必须遵循特定格式要求
6. 分享联系人
使用时机:用户想通过 WhatsApp 发送联系人信息
工具顺序:
WHATSAPP_SEND_CONTACTS- 发送联系人卡片[必需]
关键参数:
to:收件人的电话号码contacts:联系人对象数组,包含姓名、电话和电子邮件信息
注意事项:
- 联系人对象必须遵循 WhatsApp Business API 联系人架构
- 每位联系人都必须至少填写姓名字段
- 联系人电话号码应包含国家代码
常见模式
24 小时消息窗口
- 客户必须先给你发消息,才能开启对话窗口
- 在客户发送最后一条消息后的 24 小时内,你可以发送自由格式消息
- 24 小时后,只能发送已获批准的模板消息
- 模板消息可以重新开启对话窗口
电话号码解析
1. Call WHATSAPP_GET_PHONE_NUMBERS
2. Extract phone_number_id for your business number
3. Use phone_number_id in all send operations
媒体上传流程
1. Call WHATSAPP_UPLOAD_MEDIA with the file
2. Extract media_id from response
3. Call WHATSAPP_SEND_MEDIA_BY_ID with media_id
4. OR use WHATSAPP_SEND_MEDIA with a public URL directly
已知注意事项
电话号码格式:
- 始终使用 E.164 格式:+[国家代码][号码](例如,
'+14155551234') - 不要包含连字符、空格或圆括号
- 必须包含国家代码;否则本地号码将无法使用
消息限制:
- 在 24 小时窗口之外,由企业发起的消息必须使用模板
- 模板消息按对话收费
- 每个电话号码和每个账户都受速率限制
媒体处理:
- 上传的媒体会过期;请在上传后尽快使用
- 媒体 URL 必须是可公开访问的 HTTPS 地址
- 贴纸有特定要求(WebP 格式,512x512 像素)
模板管理:
- 模板审核可能需要长达 24 小时
- 被拒绝的模板需要修正后重新提交
- 模板变量使用双花括号:{{1}}、{{2}} 等
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 发送消息 | WHATSAPP_SEND_MESSAGE | to, body |
| 发送模板 | WHATSAPP_SEND_TEMPLATE_MESSAGE | template_name, to, language_code |
| 上传媒体 | WHATSAPP_UPLOAD_MEDIA | (file params) |
| 按 ID 发送媒体 | WHATSAPP_SEND_MEDIA_BY_ID | media_id, to, type |
| 按 URL 发送媒体 | WHATSAPP_SEND_MEDIA | media_url, to, type |
| 回复消息 | WHATSAPP_SEND_REPLY | message_id, to, body |
| 发送联系人 | WHATSAPP_SEND_CONTACTS | to, contacts |
| 获取媒体 | WHATSAPP_GET_MEDIA | media_id |
| 列出电话号码 | WHATSAPP_GET_PHONE_NUMBERS | (none) |
| 获取电话号码 | WHATSAPP_GET_PHONE_NUMBER | phone_number_id |
| 获取企业资料 | WHATSAPP_GET_BUSINESS_PROFILE | phone_number_id |
| 创建模板 | WHATSAPP_CREATE_MESSAGE_TEMPLATE | template_name, category, language |
| 列出模板 | WHATSAPP_GET_MESSAGE_TEMPLATES | (none) |
| 检查模板状态 | WHATSAPP_GET_TEMPLATE_STATUS | template_id |
由 Composio 提供支持
评论
支持 Markdown