WhatsApp Business Automation via Rube MCP
Automate WhatsApp Business operations through Composio's WhatsApp toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/whatsapp
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.
-
Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
-
Call RUBE_MANAGE_CONNECTIONS with toolkit whatsapp
-
If connection is not ACTIVE, follow the returned auth link to complete WhatsApp Business setup
-
Confirm connection status shows ACTIVE before running any workflows
Core Workflows
- Send a Text Message
When to use: User wants to send a text message to a WhatsApp contact
Tool sequence:
-
WHATSAPP_GET_PHONE_NUMBERS
-
List available business phone numbers [Prerequisite]
-
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
- Send Template Messages
When to use: User wants to send pre-approved template messages for outbound communication
Tool sequence:
-
WHATSAPP_GET_MESSAGE_TEMPLATES
-
List available templates [Prerequisite]
-
WHATSAPP_GET_TEMPLATE_STATUS
-
Check template approval status [Optional]
-
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
- Send Media Messages
When to use: User wants to send images, documents, or other media
Tool sequence:
-
WHATSAPP_UPLOAD_MEDIA
-
Upload media to WhatsApp servers [Required]
-
WHATSAPP_SEND_MEDIA_BY_ID
-
Send media using the uploaded media ID [Required] OR
-
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
- Reply to Messages
When to use: User wants to reply to an incoming WhatsApp message
Tool sequence:
- 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
- Manage Business Profile and Templates
When to use: User wants to view or manage their WhatsApp Business profile
Tool sequence:
-
WHATSAPP_GET_BUSINESS_PROFILE
-
Get business profile details [Optional]
-
WHATSAPP_GET_PHONE_NUMBERS
-
List registered phone numbers [Optional]
-
WHATSAPP_GET_PHONE_NUMBER
-
Get details for a specific number [Optional]
-
WHATSAPP_CREATE_MESSAGE_TEMPLATE
-
Create a new template [Optional]
-
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
- Share Contacts
When to use: User wants to send contact information via WhatsApp
Tool sequence:
- 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
- Call WHATSAPP_GET_PHONE_NUMBERS
- Extract phone_number_id for your business number
- Use phone_number_id in all send operations
Media Upload Flow
- Call WHATSAPP_UPLOAD_MEDIA with the file
- Extract media_id from response
- Call WHATSAPP_SEND_MEDIA_BY_ID with media_id
- 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
Powered by Composio