whatsapp-automation

Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools first for current schemas.

View Source
name:whatsapp-automationdescription:"Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools first for current schemas."requires:mcp:[rube]

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.


  • 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

    1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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

    1. Call WHATSAPP_GET_PHONE_NUMBERS
  • Extract phone_number_id for your business number

  • Use phone_number_id in all send operations
  • Media Upload Flow

    1. 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

    TaskTool SlugKey Params
    Send messageWHATSAPP_SEND_MESSAGEto, body
    Send templateWHATSAPP_SEND_TEMPLATE_MESSAGEtemplate_name, to, language_code
    Upload mediaWHATSAPP_UPLOAD_MEDIA(file params)
    Send media by IDWHATSAPP_SEND_MEDIA_BY_IDmedia_id, to, type
    Send media by URLWHATSAPP_SEND_MEDIAmedia_url, to, type
    Reply to messageWHATSAPP_SEND_REPLYmessage_id, to, body
    Send contactsWHATSAPP_SEND_CONTACTSto, contacts
    Get mediaWHATSAPP_GET_MEDIAmedia_id
    List phone numbersWHATSAPP_GET_PHONE_NUMBERS(none)
    Get phone numberWHATSAPP_GET_PHONE_NUMBERphone_number_id
    Get business profileWHATSAPP_GET_BUSINESS_PROFILEphone_number_id
    Create templateWHATSAPP_CREATE_MESSAGE_TEMPLATEtemplate_name, category, language
    List templatesWHATSAPP_GET_MESSAGE_TEMPLATES(none)
    Check template statusWHATSAPP_GET_TEMPLATE_STATUStemplate_id