name: whatsapp-automation description: “通过Rube MCP(Composio)自动化WhatsApp Business任务:发送消息、管理模板、上传媒体和处理联系人。始终首先搜索工具以获取当前模式。” requires: mcp: [rube] category: communication
通过Rube MCP实现WhatsApp商业自动化
通过Composio的WhatsApp工具包,通过Rube MCP自动化WhatsApp商业操作。
工具包文档: 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 - 如果连接不活跃,请按照返回的认证链接完成WhatsApp商业设置
- 在运行任何工作流前,确认连接状态显示为活跃
核心工作流
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商业资料
工具序列:
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商业API的联系人模式
- 每个联系人至少需要一个姓名字段
- 联系人中的电话号码应包括国家代码
常见模式
24小时消息窗口
- 客户必须先向您发送消息以打开对话窗口
- 在他们上次消息的24小时内,您可以发送自由格式消息
- 24小时后,只能发送批准的模板消息
- 模板消息可以重新打开对话窗口
电话号码解析
1. 调用WHATSAPP_GET_PHONE_NUMBERS
2. 提取您商业号码的phone_number_id
3. 在所有发送操作中使用phone_number_id
媒体上传流程
1. 使用文件调用WHATSAPP_UPLOAD_MEDIA
2. 从响应中提取media_id
3. 使用media_id调用WHATSAPP_SEND_MEDIA_BY_ID
4. 或直接使用公共URL调用WHATSAPP_SEND_MEDIA
已知问题
电话号码格式:
- 始终使用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 | (文件参数) |
| 按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 | (无) |
| 获取电话号码详情 | 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 | (无) |
| 检查模板状态 | WHATSAPP_GET_TEMPLATE_STATUS | template_id |
由Composio提供支持