mcpField
W
whatsapp-automation

whatsapp-automation

github.com/sickn33其他48.7k236 次安装今天更新
代码仓库

关于 whatsapp-automation

面向 WhatsApp Business 操作的工作流技能,通过 Composio 的 WhatsApp 工具包和 Rube MCP 执行消息与账户管理。适用于需要发送文本、模板、媒体或联系人,并管理业务资料和模板的场景。

主要功能

  1. 01发送文本、模板和媒体消息
  2. 02回复收到的消息
  3. 03发送联系人信息
  4. 04查看业务号码与资料
  5. 05管理消息模板

适用场景

  1. 01向已授权的联系人发送业务消息
  2. 02在 24 小时窗口外发送获批模板
  3. 03回复收到的 WhatsApp 消息
  4. 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 密钥——只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 能够响应,以验证 Rube MCP 已可用
  2. 使用工具包 whatsapp 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请按照返回的授权链接完成 WhatsApp Business 设置
  4. 运行任何工作流前,确认连接状态为 ACTIVE

消息发送边界

必须获得用户对目标收件人和内容的明确授权,并核实发送方企业号码、用户主动选择接收消息的状态以及适用的消息政策。账号已连接或模板已获批准,本身并不代表有权联系某人。切勿上传未经授权的媒体,也不要为了满足 URL 字段而发布私有文件。发送结果不确定时,检查消息 ID 和状态;不要盲目重试,以免重复发送。实时获取的架构优先于静态工具或参数示例。请参阅 Meta 当前定价。

核心工作流

1. 发送文本消息

适用场景:用户希望向 WhatsApp 联系人发送文本消息

工具调用顺序:

  1. WHATSAPP_GET_PHONE_NUMBERS - 列出可用的企业电话号码 [前置条件]
  2. WHATSAPP_SEND_MESSAGE - 发送文本消息 [必需]

关键参数:

  • to:采用国际格式的收件人电话号码(例如,'+14155551234')
  • body:消息文本内容
  • phone_number_id:用于发送消息的企业电话号码 ID

注意事项:

  • 电话号码必须采用带国家/地区代码的国际 E.164 格式
  • 在 24 小时窗口之外发送消息需要使用已获批准的模板
  • 24 小时窗口从客户上次向你发送消息时开始计算
  • 企业主动发起的对话必须先发送模板消息
2. 发送模板消息

适用场景:用户希望发送预先批准的模板消息进行主动沟通

工具调用顺序:

  1. WHATSAPP_GET_MESSAGE_TEMPLATES - 列出可用模板 [前置条件]
  2. WHATSAPP_GET_TEMPLATE_STATUS - 检查模板审批状态 [可选]
  3. WHATSAPP_SEND_TEMPLATE_MESSAGE - 发送模板消息 [必需]

关键参数:

  • template_name:已获批准的模板名称
  • language_code:模板语言(例如,'en_US')
  • to:收件人电话号码
  • components:模板变量值和参数

注意事项:

  • 模板必须先经 Meta 批准才能使用
  • 模板变量必须符合预期的数量和格式
  • 发送未获批准或已被拒绝的模板会返回错误
  • 语言代码必须与模板的一种已获批准译文相符
3. 发送媒体消息

适用场景:用户希望发送图片、文档或其他媒体

工具调用顺序:

  1. WHATSAPP_UPLOAD_MEDIA - 将媒体上传到 WhatsApp 服务器 [必需]
  2. WHATSAPP_SEND_MEDIA_BY_ID - 使用上传后获得的媒体 ID 发送媒体 [必需] 或
  3. 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 消息

工具调用顺序:

  1. WHATSAPP_SEND_REPLY - 回复特定消息[必需]

关键参数:

  • message_id:被回复消息的 ID
  • to:收件人电话号码
  • body:回复文本内容

注意事项:

  • message_id 必须对应 24 小时窗口内收到的消息
  • 回复在对话中会显示为引用消息
  • 原始消息必须仍然存在(未被删除),引用才能显示
5. 管理商业资料和模板

使用时机:用户想要查看或管理自己的 WhatsApp Business 资料

工具调用顺序:

  1. WHATSAPP_GET_BUSINESS_PROFILE - 获取商业资料详情[可选]
  2. WHATSAPP_GET_PHONE_NUMBERS - 列出已注册的电话号码[可选]
  3. WHATSAPP_GET_PHONE_NUMBER - 获取特定号码的详情[可选]
  4. WHATSAPP_CREATE_MESSAGE_TEMPLATE - 创建新模板[可选]
  5. WHATSAPP_GET_MESSAGE_TEMPLATES - 列出所有模板[可选]

关键参数:

  • phone_number_id:商业电话号码 ID
  • template_name:新模板的名称
  • category:模板类别(MARKETING、UTILITY、AUTHENTICATION)
  • language:模板语言代码

注意事项:

  • 新模板必须经过 Meta 审核才能使用
  • 模板名称必须使用小写字母和下划线(不能有空格)
  • 类别会影响定价和审批标准
  • 模板的标题、正文和按钮必须遵循特定格式要求
6. 分享联系人

使用时机:用户想通过 WhatsApp 发送联系人信息

工具调用顺序:

  1. 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_MESSAGEto, body
发送模板消息WHATSAPP_SEND_TEMPLATE_MESSAGEtemplate_name, to, language_code
上传媒体WHATSAPP_UPLOAD_MEDIA(file params)
按 ID 发送媒体WHATSAPP_SEND_MEDIA_BY_IDmedia_id, to, type
按 URL 发送媒体WHATSAPP_SEND_MEDIAmedia_url, to, type
回复消息WHATSAPP_SEND_REPLYmessage_id, to, body
发送联系人WHATSAPP_SEND_CONTACTSto, contacts
获取媒体WHATSAPP_GET_MEDIAmedia_id
列出电话号码WHATSAPP_GET_PHONE_NUMBERS(none)
获取电话号码WHATSAPP_GET_PHONE_NUMBERphone_number_id
获取企业资料WHATSAPP_GET_BUSINESS_PROFILEphone_number_id
创建模板WHATSAPP_CREATE_MESSAGE_TEMPLATEtemplate_name, category, language
列出模板WHATSAPP_GET_MESSAGE_TEMPLATES(none)
检查模板状态WHATSAPP_GET_TEMPLATE_STATUStemplate_id

适用场景

当需要执行概述中描述的工作流或操作时,可使用此技能。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 请勿将输出视为可替代针对具体环境的验证、测试或专家审核。
  • 如果缺少必要输入、权限、安全边界或成功标准,请暂停并请求澄清。

评论

支持 Markdown