- Add date_added to all 950+ skills for complete tracking - Update version to 6.5.0 in package.json and README - Regenerate all indexes and catalog - Sync all generated files Features from merged PR #150: - Stars/Upvotes system for community-driven discovery - Auto-update mechanism via START_APP.bat - Interactive Prompt Builder - Date tracking badges - Smart auto-categorization All skills validated and indexed. Made-with: Cursor
219 lines
8.1 KiB
Markdown
219 lines
8.1 KiB
Markdown
---
|
|
name: whatsapp-automation
|
|
description: "Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools first for current schemas."
|
|
risk: unknown
|
|
source: community
|
|
date_added: "2026-02-27"
|
|
---
|
|
|
|
# WhatsApp Business Automation via Rube MCP
|
|
|
|
Automate WhatsApp Business operations through Composio's WhatsApp toolkit via Rube MCP.
|
|
|
|
## Prerequisites
|
|
|
|
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
|
|
- Active WhatsApp connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `whatsapp`
|
|
- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
|
|
- WhatsApp Business API account required (not regular WhatsApp)
|
|
|
|
## Setup
|
|
|
|
**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
|
|
|
|
|
|
1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
|
|
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `whatsapp`
|
|
3. If connection is not ACTIVE, follow the returned auth link to complete WhatsApp Business setup
|
|
4. Confirm connection status shows ACTIVE before running any workflows
|
|
|
|
## Core Workflows
|
|
|
|
### 1. Send a Text Message
|
|
|
|
**When to use**: User wants to send a text message to a WhatsApp contact
|
|
|
|
**Tool sequence**:
|
|
1. `WHATSAPP_GET_PHONE_NUMBERS` - List available business phone numbers [Prerequisite]
|
|
2. `WHATSAPP_SEND_MESSAGE` - Send a text message [Required]
|
|
|
|
**Key parameters**:
|
|
- `to`: Recipient phone number in international format (e.g., '+14155551234')
|
|
- `body`: Message text content
|
|
- `phone_number_id`: Business phone number ID to send from
|
|
|
|
**Pitfalls**:
|
|
- Phone numbers must be in international E.164 format with country code
|
|
- Messages outside the 24-hour window require approved templates
|
|
- The 24-hour window starts when the customer last messaged you
|
|
- Business-initiated conversations require template messages first
|
|
|
|
### 2. Send Template Messages
|
|
|
|
**When to use**: User wants to send pre-approved template messages for outbound communication
|
|
|
|
**Tool sequence**:
|
|
1. `WHATSAPP_GET_MESSAGE_TEMPLATES` - List available templates [Prerequisite]
|
|
2. `WHATSAPP_GET_TEMPLATE_STATUS` - Check template approval status [Optional]
|
|
3. `WHATSAPP_SEND_TEMPLATE_MESSAGE` - Send the template message [Required]
|
|
|
|
**Key parameters**:
|
|
- `template_name`: Name of the approved template
|
|
- `language_code`: Template language (e.g., 'en_US')
|
|
- `to`: Recipient phone number
|
|
- `components`: Template variable values and parameters
|
|
|
|
**Pitfalls**:
|
|
- Templates must be approved by Meta before use
|
|
- Template variables must match the expected count and format
|
|
- Sending unapproved or rejected templates returns errors
|
|
- Language code must match an approved translation of the template
|
|
|
|
### 3. Send Media Messages
|
|
|
|
**When to use**: User wants to send images, documents, or other media
|
|
|
|
**Tool sequence**:
|
|
1. `WHATSAPP_UPLOAD_MEDIA` - Upload media to WhatsApp servers [Required]
|
|
2. `WHATSAPP_SEND_MEDIA_BY_ID` - Send media using the uploaded media ID [Required]
|
|
OR
|
|
3. `WHATSAPP_SEND_MEDIA` - Send media using a public URL [Alternative]
|
|
|
|
**Key parameters**:
|
|
- `media_url`: Public URL of the media (for SEND_MEDIA)
|
|
- `media_id`: ID from upload response (for SEND_MEDIA_BY_ID)
|
|
- `type`: Media type ('image', 'document', 'audio', 'video', 'sticker')
|
|
- `caption`: Optional caption for the media
|
|
|
|
**Pitfalls**:
|
|
- Uploaded media IDs are temporary and expire after a period
|
|
- Media size limits vary by type (images: 5MB, videos: 16MB, documents: 100MB)
|
|
- Supported formats: images (JPEG, PNG), videos (MP4, 3GPP), documents (PDF, etc.)
|
|
- SEND_MEDIA requires a publicly accessible HTTPS URL
|
|
|
|
### 4. Reply to Messages
|
|
|
|
**When to use**: User wants to reply to an incoming WhatsApp message
|
|
|
|
**Tool sequence**:
|
|
1. `WHATSAPP_SEND_REPLY` - Send a reply to a specific message [Required]
|
|
|
|
**Key parameters**:
|
|
- `message_id`: ID of the message being replied to
|
|
- `to`: Recipient phone number
|
|
- `body`: Reply text content
|
|
|
|
**Pitfalls**:
|
|
- message_id must be from a message received within the 24-hour window
|
|
- Replies appear as quoted messages in the conversation
|
|
- The original message must still exist (not deleted) for the quote to display
|
|
|
|
### 5. Manage Business Profile and Templates
|
|
|
|
**When to use**: User wants to view or manage their WhatsApp Business profile
|
|
|
|
**Tool sequence**:
|
|
1. `WHATSAPP_GET_BUSINESS_PROFILE` - Get business profile details [Optional]
|
|
2. `WHATSAPP_GET_PHONE_NUMBERS` - List registered phone numbers [Optional]
|
|
3. `WHATSAPP_GET_PHONE_NUMBER` - Get details for a specific number [Optional]
|
|
4. `WHATSAPP_CREATE_MESSAGE_TEMPLATE` - Create a new template [Optional]
|
|
5. `WHATSAPP_GET_MESSAGE_TEMPLATES` - List all templates [Optional]
|
|
|
|
**Key parameters**:
|
|
- `phone_number_id`: Business phone number ID
|
|
- `template_name`: Name for the new template
|
|
- `category`: Template category (MARKETING, UTILITY, AUTHENTICATION)
|
|
- `language`: Template language code
|
|
|
|
**Pitfalls**:
|
|
- New templates require Meta review before they can be used
|
|
- Template names must be lowercase with underscores (no spaces)
|
|
- Category affects pricing and approval criteria
|
|
- Templates have specific formatting requirements for headers, body, and buttons
|
|
|
|
### 6. Share Contacts
|
|
|
|
**When to use**: User wants to send contact information via WhatsApp
|
|
|
|
**Tool sequence**:
|
|
1. `WHATSAPP_SEND_CONTACTS` - Send contact cards [Required]
|
|
|
|
**Key parameters**:
|
|
- `to`: Recipient phone number
|
|
- `contacts`: Array of contact objects with name, phone, email details
|
|
|
|
**Pitfalls**:
|
|
- Contact objects must follow the WhatsApp Business API contact schema
|
|
- At least a name field is required for each contact
|
|
- Phone numbers in contacts should include country codes
|
|
|
|
## Common Patterns
|
|
|
|
### 24-Hour Messaging Window
|
|
|
|
- Customers must message you first to open a conversation window
|
|
- Within 24 hours of their last message, you can send free-form messages
|
|
- After 24 hours, only approved template messages can be sent
|
|
- Template messages can re-open the conversation window
|
|
|
|
### Phone Number Resolution
|
|
|
|
```
|
|
1. Call WHATSAPP_GET_PHONE_NUMBERS
|
|
2. Extract phone_number_id for your business number
|
|
3. Use phone_number_id in all send operations
|
|
```
|
|
|
|
### Media Upload Flow
|
|
|
|
```
|
|
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
|
|
```
|
|
|
|
## Known Pitfalls
|
|
|
|
**Phone Number Format**:
|
|
- Always use E.164 format: +[country code][number] (e.g., '+14155551234')
|
|
- Do not include dashes, spaces, or parentheses
|
|
- Country code is required; local numbers without it will fail
|
|
|
|
**Messaging Restrictions**:
|
|
- Business-initiated messages require templates outside the 24-hour window
|
|
- Template messages cost money per conversation
|
|
- Rate limits apply per phone number and per account
|
|
|
|
**Media Handling**:
|
|
- Uploaded media expires; use promptly after upload
|
|
- Media URLs must be publicly accessible HTTPS
|
|
- Stickers have specific requirements (WebP format, 512x512 pixels)
|
|
|
|
**Template Management**:
|
|
- Template review can take up to 24 hours
|
|
- Rejected templates need to be fixed and resubmitted
|
|
- Template variables use double curly braces: {{1}}, {{2}}, etc.
|
|
|
|
## Quick Reference
|
|
|
|
| Task | Tool Slug | Key Params |
|
|
|------|-----------|------------|
|
|
| Send message | WHATSAPP_SEND_MESSAGE | to, body |
|
|
| Send template | WHATSAPP_SEND_TEMPLATE_MESSAGE | template_name, to, language_code |
|
|
| Upload media | WHATSAPP_UPLOAD_MEDIA | (file params) |
|
|
| Send media by ID | WHATSAPP_SEND_MEDIA_BY_ID | media_id, to, type |
|
|
| Send media by URL | WHATSAPP_SEND_MEDIA | media_url, to, type |
|
|
| Reply to message | WHATSAPP_SEND_REPLY | message_id, to, body |
|
|
| Send contacts | WHATSAPP_SEND_CONTACTS | to, contacts |
|
|
| Get media | WHATSAPP_GET_MEDIA | media_id |
|
|
| List phone numbers | WHATSAPP_GET_PHONE_NUMBERS | (none) |
|
|
| Get phone number | WHATSAPP_GET_PHONE_NUMBER | phone_number_id |
|
|
| Get business profile | WHATSAPP_GET_BUSINESS_PROFILE | phone_number_id |
|
|
| Create template | WHATSAPP_CREATE_MESSAGE_TEMPLATE | template_name, category, language |
|
|
| List templates | WHATSAPP_GET_MESSAGE_TEMPLATES | (none) |
|
|
| Check template status | WHATSAPP_GET_TEMPLATE_STATUS | template_id |
|
|
|
|
## When to Use
|
|
This skill is applicable to execute the workflow or actions described in the overview.
|