关于 whatsapp-automation
面向 WhatsApp Business 操作的工作流技能,通过 Composio 的 WhatsApp 工具包和 Rube MCP 执行消息与账户管理。适用于需要发送文本、模板、媒体或联系人,并管理业务资料和模板的场景。
主要功能
- 01发送文本、模板和媒体消息
- 02回复收到的消息
- 03发送联系人信息
- 04查看业务号码与资料
- 05管理消息模板
适用场景
- 01向已授权的联系人发送业务消息
- 02在 24 小时窗口外发送获批模板
- 03回复收到的 WhatsApp 消息
- 04查看业务号码或管理消息模板
MCP 相关
该技能通过 Rube MCP 连接 Composio 的 WhatsApp 工具包;客户端需先发现工具并确认 WhatsApp 连接状态。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill whatsapp-automation安装后在 Claude Code 中输入/whatsapp-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 WhatsApp Business
通过 Rube MCP 使用 Composio 的 WhatsApp 工具包,自动化 WhatsApp Business 操作。
前提条件
- 必须连接 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
消息发送边界
必须获得用户对目标收件人和内容的明确授权,并核实发送方企业号码、用户主动选择接收消息的状态以及适用的消息政策。账号已连接或模板已获批准,本身并不代表有权联系某人。切勿上传未经授权的媒体,也不要为了满足 URL 字段而发布私有文件。发送结果不确定时,检查消息 ID 和状态;不要盲目重试,以免重复发送。实时获取的架构优先于静态工具或参数示例。请参阅 Meta 当前定价。
核心工作流
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 小时后,只能发送已获批准的模板消息
- 只有客户发送新消息才能开启或重置 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 小时窗口后,企业主动发起的消息必须使用模板
- 已送达的消息可能按类别、市场和适用的免费窗口逐条收费;开展营销活动前,请查看 Meta 当前的定价。
- 每个电话号码和账户都有速率限制
媒体处理:
- 已上传的媒体会过期;请在上传后尽快使用
- 媒体 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 |
适用场景
当需要执行概述中描述的工作流或操作时,可使用此技能。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 请勿将输出视为可替代针对具体环境的验证、测试或专家审核。
- 如果缺少必要输入、权限、安全边界或成功标准,请暂停并请求澄清。