Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools first for current schemas.
.claude/skills/davepoon-whatsapp-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 137% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 150% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 173% | 0% |
Automate WhatsApp Business operations through Composio's WhatsApp toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/whatsapp
RUBE_MANAGE_CONNECTIONS with toolkit whatsappRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit whatsappWhen 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 contentphone_number_id: Business phone number ID to send fromPitfalls:
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 templatelanguage_code: Template language (e.g., 'en_US')to: Recipient phone numbercomponents: Template variable values and parametersPitfalls:
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 mediaPitfalls:
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 toto: Recipient phone numberbody: Reply text contentPitfalls:
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 IDtemplate_name: Name for the new templatecategory: Template category (MARKETING, UTILITY, AUTHENTICATION)language: Template language codePitfalls:
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 numbercontacts: Array of contact objects with name, phone, email detailsPitfalls:
1. Call WHATSAPP_GET_PHONE_NUMBERS
2. Extract phone_number_id for your business number
3. Use phone_number_id in all send operations1. 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 directlyPhone Number Format:
Messaging Restrictions:
Media Handling:
Template Management:
| 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
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | pass→pass | 6,839 | 6,879 | +1% | 1 | 1 | 0% | 1,209 | 3,362 | +178% | 0 | 0 | — |
case-01 | fail→fail | 12,990 | 5,308 | -59% | 1 | 1 | 0% | 1,764 | 2,408 | +37% | 0 | 0 | — |
case-02 | fail→fail | 3,856 | 5,013 | +30% | 1 | 1 | 0% | 711 | 2,368 | +233% | 0 | 0 | — |
case-03 | pass→fail | 11,608 | 11,539 | -1% | 1 | 1 | 0% | 2,098 | 4,071 | +94% | 0 | 0 | — |
case-04 | pass→fail | 7,922 | 7,207 | -9% | 1 | 1 | 0% | 1,544 | 2,727 | +77% | 0 | 0 | — |
case-06 | fail→pass | 7,470 | 5,036 | -33% | 1 | 1 | 0% | 1,335 | 3,159 | +137% | 0 | 0 | — |
case-07 | pass→pass | 11,229 | 5,204 | -54% | 1 | 1 | 0% | 2,250 | 2,976 | +32% | 0 | 0 | — |
case-08 | fail→pass | 10,004 | 6,829 | -32% | 1 | 1 | 0% | 1,985 | 3,564 | +80% | 0 | 0 | — |
case-09 | pass→pass | 4,368 | 2,849 | -35% | 1 | 1 | 0% | 840 | 2,596 | +209% | 0 | 0 | — |
case-14 | fail→pass | 6,917 | 4,608 | -33% | 1 | 1 | 0% | 1,420 | 2,941 | +107% | 0 | 0 | — |
case-10 | pass→pass | 14,274 | 5,897 | -59% | 1 | 1 | 0% | 1,171 | 3,113 | +166% | 0 | 0 | — |
case-11 | fail→pass | 6,074 | 3,389 | -44% | 1 | 1 | 0% | 1,033 | 2,583 | +150% | 0 | 0 | — |
case-12 | fail→pass | 5,155 | 1,834 | -64% | 1 | 1 | 0% | 902 | 2,460 | +173% | 0 | 0 | — |
case-13 | pass→pass | 4,627 | 3,467 | -25% | 1 | 1 | 0% | 999 | 2,764 | +177% | 0 | 0 | — |
case-15 | pass→pass | 6,523 | 6,387 | -2% | 1 | 1 | 0% | 1,153 | 2,558 | +122% | 0 | 0 | — |
case-16 | pass→pass | 6,404 | 2,727 | -57% | 1 | 1 | 0% | 916 | 2,526 | +176% | 0 | 0 | — |
case-17 | fail→fail | 8,809 | 7,968 | -10% | 1 | 1 | 0% | 1,702 | 2,545 | +50% | 0 | 0 | — |
case-18 | fail→pass | 9,074 | 3,048 | -66% | 1 | 1 | 0% | 1,522 | 2,725 | +79% | 0 | 0 | — |
case-19 | pass→pass | 5,885 | 2,686 | -54% | 1 | 1 | 0% | 1,138 | 2,603 | +129% | 0 | 0 | — |
case-20 | pass→pass | 6,675 | 5,168 | -23% | 1 | 1 | 0% | 859 | 2,930 | +241% | 0 | 0 | — |
case-21 | pass→pass | 6,705 | 4,419 | -34% | 1 | 1 | 0% | 1,141 | 2,930 | +157% | 0 | 0 | — |
case-22 | fail→pass | 3,719 | 5,387 | +45% | 1 | 1 | 0% | 669 | 2,658 | +297% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +23 percentage points is the difference between those two pass rates over the 18 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.