{"id":"21d4f106-bd9b-4614-b0ce-da3088011757","shortId":"hdqFue","kind":"skill","title":"whatsapp-automation","tagline":"Automate WhatsApp Business tasks via Rube MCP (Composio): send messages, manage templates, upload media, and handle contacts. Always search tools first for current schemas.","description":"# WhatsApp Business Automation via Rube MCP\n\nAutomate WhatsApp Business operations through Composio's WhatsApp toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active WhatsApp connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `whatsapp`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n- WhatsApp Business API account required (not regular WhatsApp)\n\n## Setup\n\n**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.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `whatsapp`\n3. If connection is not ACTIVE, follow the returned auth link to complete WhatsApp Business setup\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Send a Text Message\n\n**When to use**: User wants to send a text message to a WhatsApp contact\n\n**Tool sequence**:\n1. `WHATSAPP_GET_PHONE_NUMBERS` - List available business phone numbers [Prerequisite]\n2. `WHATSAPP_SEND_MESSAGE` - Send a text message [Required]\n\n**Key parameters**:\n- `to`: Recipient phone number in international format (e.g., '+14155551234')\n- `body`: Message text content\n- `phone_number_id`: Business phone number ID to send from\n\n**Pitfalls**:\n- Phone numbers must be in international E.164 format with country code\n- Messages outside the 24-hour window require approved templates\n- The 24-hour window starts when the customer last messaged you\n- Business-initiated conversations require template messages first\n\n### 2. Send Template Messages\n\n**When to use**: User wants to send pre-approved template messages for outbound communication\n\n**Tool sequence**:\n1. `WHATSAPP_GET_MESSAGE_TEMPLATES` - List available templates [Prerequisite]\n2. `WHATSAPP_GET_TEMPLATE_STATUS` - Check template approval status [Optional]\n3. `WHATSAPP_SEND_TEMPLATE_MESSAGE` - Send the template message [Required]\n\n**Key parameters**:\n- `template_name`: Name of the approved template\n- `language_code`: Template language (e.g., 'en_US')\n- `to`: Recipient phone number\n- `components`: Template variable values and parameters\n\n**Pitfalls**:\n- Templates must be approved by Meta before use\n- Template variables must match the expected count and format\n- Sending unapproved or rejected templates returns errors\n- Language code must match an approved translation of the template\n\n### 3. Send Media Messages\n\n**When to use**: User wants to send images, documents, or other media\n\n**Tool sequence**:\n1. `WHATSAPP_UPLOAD_MEDIA` - Upload media to WhatsApp servers [Required]\n2. `WHATSAPP_SEND_MEDIA_BY_ID` - Send media using the uploaded media ID [Required]\n   OR\n3. `WHATSAPP_SEND_MEDIA` - Send media using a public URL [Alternative]\n\n**Key parameters**:\n- `media_url`: Public URL of the media (for SEND_MEDIA)\n- `media_id`: ID from upload response (for SEND_MEDIA_BY_ID)\n- `type`: Media type ('image', 'document', 'audio', 'video', 'sticker')\n- `caption`: Optional caption for the media\n\n**Pitfalls**:\n- Uploaded media IDs are temporary and expire after a period\n- Media size limits vary by type (images: 5MB, videos: 16MB, documents: 100MB)\n- Supported formats: images (JPEG, PNG), videos (MP4, 3GPP), documents (PDF, etc.)\n- SEND_MEDIA requires a publicly accessible HTTPS URL\n\n### 4. Reply to Messages\n\n**When to use**: User wants to reply to an incoming WhatsApp message\n\n**Tool sequence**:\n1. `WHATSAPP_SEND_REPLY` - Send a reply to a specific message [Required]\n\n**Key parameters**:\n- `message_id`: ID of the message being replied to\n- `to`: Recipient phone number\n- `body`: Reply text content\n\n**Pitfalls**:\n- message_id must be from a message received within the 24-hour window\n- Replies appear as quoted messages in the conversation\n- The original message must still exist (not deleted) for the quote to display\n\n### 5. Manage Business Profile and Templates\n\n**When to use**: User wants to view or manage their WhatsApp Business profile\n\n**Tool sequence**:\n1. `WHATSAPP_GET_BUSINESS_PROFILE` - Get business profile details [Optional]\n2. `WHATSAPP_GET_PHONE_NUMBERS` - List registered phone numbers [Optional]\n3. `WHATSAPP_GET_PHONE_NUMBER` - Get details for a specific number [Optional]\n4. `WHATSAPP_CREATE_MESSAGE_TEMPLATE` - Create a new template [Optional]\n5. `WHATSAPP_GET_MESSAGE_TEMPLATES` - List all templates [Optional]\n\n**Key parameters**:\n- `phone_number_id`: Business phone number ID\n- `template_name`: Name for the new template\n- `category`: Template category (MARKETING, UTILITY, AUTHENTICATION)\n- `language`: Template language code\n\n**Pitfalls**:\n- New templates require Meta review before they can be used\n- Template names must be lowercase with underscores (no spaces)\n- Category affects pricing and approval criteria\n- Templates have specific formatting requirements for headers, body, and buttons\n\n### 6. Share Contacts\n\n**When to use**: User wants to send contact information via WhatsApp\n\n**Tool sequence**:\n1. `WHATSAPP_SEND_CONTACTS` - Send contact cards [Required]\n\n**Key parameters**:\n- `to`: Recipient phone number\n- `contacts`: Array of contact objects with name, phone, email details\n\n**Pitfalls**:\n- Contact objects must follow the WhatsApp Business API contact schema\n- At least a name field is required for each contact\n- Phone numbers in contacts should include country codes\n\n## Common Patterns\n\n### 24-Hour Messaging Window\n\n- Customers must message you first to open a conversation window\n- Within 24 hours of their last message, you can send free-form messages\n- After 24 hours, only approved template messages can be sent\n- Template messages can re-open the conversation window\n\n### Phone Number Resolution\n\n```\n1. Call WHATSAPP_GET_PHONE_NUMBERS\n2. Extract phone_number_id for your business number\n3. Use phone_number_id in all send operations\n```\n\n### Media Upload Flow\n\n```\n1. Call WHATSAPP_UPLOAD_MEDIA with the file\n2. Extract media_id from response\n3. Call WHATSAPP_SEND_MEDIA_BY_ID with media_id\n4. OR use WHATSAPP_SEND_MEDIA with a public URL directly\n```\n\n## Known Pitfalls\n\n**Phone Number Format**:\n- Always use E.164 format: +[country code][number] (e.g., '+14155551234')\n- Do not include dashes, spaces, or parentheses\n- Country code is required; local numbers without it will fail\n\n**Messaging Restrictions**:\n- Business-initiated messages require templates outside the 24-hour window\n- Template messages cost money per conversation\n- Rate limits apply per phone number and per account\n\n**Media Handling**:\n- Uploaded media expires; use promptly after upload\n- Media URLs must be publicly accessible HTTPS\n- Stickers have specific requirements (WebP format, 512x512 pixels)\n\n**Template Management**:\n- Template review can take up to 24 hours\n- Rejected templates need to be fixed and resubmitted\n- Template variables use double curly braces: {{1}}, {{2}}, etc.\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Send message | WHATSAPP_SEND_MESSAGE | to, body |\n| Send template | WHATSAPP_SEND_TEMPLATE_MESSAGE | template_name, to, language_code |\n| Upload media | WHATSAPP_UPLOAD_MEDIA | (file params) |\n| Send media by ID | WHATSAPP_SEND_MEDIA_BY_ID | media_id, to, type |\n| Send media by URL | WHATSAPP_SEND_MEDIA | media_url, to, type |\n| Reply to message | WHATSAPP_SEND_REPLY | message_id, to, body |\n| Send contacts | WHATSAPP_SEND_CONTACTS | to, contacts |\n| Get media | WHATSAPP_GET_MEDIA | media_id |\n| List phone numbers | WHATSAPP_GET_PHONE_NUMBERS | (none) |\n| Get phone number | WHATSAPP_GET_PHONE_NUMBER | phone_number_id |\n| Get business profile | WHATSAPP_GET_BUSINESS_PROFILE | phone_number_id |\n| Create template | WHATSAPP_CREATE_MESSAGE_TEMPLATE | template_name, category, language |\n| List templates | WHATSAPP_GET_MESSAGE_TEMPLATES | (none) |\n| Check template status | WHATSAPP_GET_TEMPLATE_STATUS | template_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["whatsapp","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-whatsapp-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/whatsapp-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34404 github stars · SKILL.md body (8,362 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:51:58.487Z","embedding":null,"createdAt":"2026-04-18T21:47:30.540Z","updatedAt":"2026-04-22T00:51:58.487Z","lastSeenAt":"2026-04-22T00:51:58.487Z","tsv":"'+14155551234':211,924 '/mcp':92 '1':112,160,181,287,395,528,615,744,849,876,1018 '100mb':490 '16mb':488 '2':124,192,266,296,405,625,855,884,1019 '24':241,248,570,799,814,828,952,1002 '3':132,306,377,420,635,864,890 '3gpp':498 '4':148,510,647,900 '5':594,657 '512x512':992 '5mb':486 '6':728 'access':507,984 'account':80,969 'action':1167 'activ':56,137,153 'add':89,106 'affect':713 'altern':430 'alway':21,66,916 'api':79,102,776 'appear':574 'appli':963 'applic':1161 'approv':245,279,303,323,346,372,716,831 'array':759 'ask':1205 'audio':459 'auth':141 'authent':687 'autom':3,4,30,34 'avail':55,117,187,293 'bodi':212,555,725,1034,1086 'boundari':1213 'brace':1017 'busi':6,29,36,78,146,188,219,259,596,611,618,621,671,775,862,945,1120,1124 'business-initi':258,944 'button':727 'call':67,125,850,877,891 'caption':462,464 'card':750 'categori':682,684,712,1137 'check':301,1146 'clarif':1207 'clear':1180 'client':99 'code':237,326,368,691,796,921,933,1045 'common':797 'communic':284 'complet':144 'compon':336 'composio':11,39 'configur':100 'confirm':119,149 'connect':51,58,62,128,134,150 'contact':20,178,730,738,747,749,758,761,769,777,788,792,1088,1091,1093 'content':215,558 'convers':261,580,811,844,960 'core':158 'cost':957 'count':357 'countri':236,795,920,932 'creat':649,652,1129,1132 'criteria':717,1216 'cur':1016 'current':26,74 'custom':254,803 'dash':928 'delet':588 'describ':1168,1184 'detail':623,641,767 'direct':910 'display':593 'document':389,458,489,499 'doubl':1015 'e.164':233,918 'e.g':210,329,923 'email':766 'en':330 'endpoint':108 'environ':1196 'environment-specif':1195 'error':366 'etc':501,1020 'execut':1163 'exist':586 'expect':356 'expert':1201 'expir':475,974 'extract':856,885 'fail':941 'field':783 'file':883,1051 'first':24,71,265,807 'fix':1009 'flow':875 'follow':138,772 'form':825 'format':209,234,359,492,721,915,919,991 'free':824 'free-form':823 'get':73,86,183,289,298,617,620,627,637,640,659,852,1094,1097,1105,1109,1113,1119,1123,1142,1150 'handl':19,971 'header':724 'hour':242,249,571,800,815,829,953,1003 'https':508,985 'id':218,222,410,417,444,445,453,471,543,544,561,670,674,859,868,887,896,899,1056,1061,1063,1084,1100,1118,1128,1154 'imag':388,457,485,493 'includ':794,927 'incom':523 'inform':739 'initi':260,946 'input':1210 'intern':208,232 'jpeg':494 'key':103,201,316,431,540,666,752,1026 'known':911 'languag':325,328,367,688,690,1044,1138 'last':255,818 'least':780 'limit':481,962,1172 'link':142 'list':186,292,630,662,1101,1139 'local':936 'lowercas':707 'manag':14,61,127,595,608,995 'market':685 'match':354,370,1181 'mcp':10,33,45,48,88,95,115 'media':17,379,392,398,400,408,412,416,423,425,433,439,442,443,451,455,467,470,479,503,873,880,886,894,898,905,970,973,979,1047,1050,1054,1059,1062,1067,1072,1073,1095,1098,1099 'messag':13,164,174,195,199,213,238,256,264,269,281,290,310,314,380,513,525,538,542,547,560,566,577,583,650,660,801,805,819,826,833,838,942,947,956,1029,1032,1040,1079,1083,1133,1143 'meta':348,696 'miss':1218 'money':958 'mp4':497 'must':49,229,344,353,369,562,584,705,771,804,981 'name':319,320,676,677,704,764,782,1042,1136 'need':104,1006 'new':654,680,693 'none':1108,1145 'number':185,190,206,217,221,228,335,554,629,633,639,645,669,673,757,790,847,854,858,863,867,914,922,937,966,1103,1107,1111,1115,1117,1127 'object':762,770 'open':809,842 'oper':37,872 'option':305,463,624,634,646,656,665 'origin':582 'outbound':283 'output':1190 'outsid':239,950 'overview':1171 'param':1027,1052 'paramet':202,317,341,432,541,667,753 'parenthes':931 'pattern':798 'pdf':500 'per':959,964,968 'period':478 'permiss':1211 'phone':184,189,205,216,220,227,334,553,628,632,638,668,672,756,765,789,846,853,857,866,913,965,1102,1106,1110,1114,1116,1126 'pitfal':226,342,468,559,692,768,912 'pixel':993 'png':495 'pre':278 'pre-approv':277 'prerequisit':46,191,295 'price':714 'profil':597,612,619,622,1121,1125 'prompt':976 'public':428,435,506,908,983 'quick':1021 'quot':576,591 'rate':961 're':841 're-open':840 'receiv':567 'recipi':204,333,552,755 'refer':1022 'regist':631 'regular':83 'reject':363,1004 'repli':511,520,531,534,549,556,573,1077,1082 'requir':81,200,244,262,315,404,418,504,539,695,722,751,785,935,948,989,1209 'resolut':848 'respond':123 'respons':448,889 'restrict':943 'resubmit':1011 'return':140,365 'review':697,997,1202 'rube':9,32,44,47,52,60,68,87,114,120,126 'rube.app':91 'rube.app/mcp':90 'run':155 'safeti':1212 'schema':27,76,778 'scope':1183 'search':22,53,69,121 'send':12,161,171,194,196,224,267,276,308,311,360,378,387,407,411,422,424,441,450,502,530,532,737,746,748,822,871,893,904,1028,1031,1035,1038,1053,1058,1066,1071,1081,1087,1090 'sent':836 'sequenc':180,286,394,527,614,743 'server':96,403 'setup':85,147 'share':729 'show':152 'size':480 'skill':1159,1175 'skill-whatsapp-automation' 'slug':1025 'source-sickn33' 'space':711,929 'specif':537,644,720,988,1197 'start':251 'status':151,300,304,1148,1152 'sticker':461,986 'still':585 'stop':1203 'substitut':1193 'success':1215 'support':491 'take':999 'task':7,1023,1179 'templat':15,246,263,268,280,291,294,299,302,309,313,318,324,327,337,343,351,364,376,599,651,655,661,664,675,681,683,689,694,703,718,832,837,949,955,994,996,1005,1012,1036,1039,1041,1130,1134,1135,1140,1144,1147,1151,1153 'temporari':473 'test':1199 'text':163,173,198,214,557 'tool':23,54,70,75,122,179,285,393,526,613,742,1024 'toolkit':42,64,130 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'translat':373 'treat':1188 'type':454,456,484,1065,1076 'unapprov':361 'underscor':709 'upload':16,397,399,415,447,469,874,879,972,978,1046,1049 'url':429,434,436,509,909,980,1069,1074 'us':331 'use':167,272,350,383,413,426,516,602,702,733,865,902,917,975,1014,1157,1173 'user':168,273,384,517,603,734 'util':686 'valid':1198 'valu':339 'vari':482 'variabl':338,352,1013 'verifi':113 'via':8,31,43,59,740 'video':460,487,496 'view':606 'want':169,274,385,518,604,735 'webp':990 'whatsapp':2,5,28,35,41,57,65,77,84,131,145,177,182,193,288,297,307,396,402,406,421,524,529,610,616,626,636,648,658,741,745,774,851,878,892,903,1030,1037,1048,1057,1070,1080,1089,1096,1104,1112,1122,1131,1141,1149 'whatsapp-autom':1 'window':243,250,572,802,812,845,954 'within':568,813 'without':938 'work':111 'workflow':157,159,1165","prices":[{"id":"03d5fbde-86cd-45b3-a976-ebc071b131d3","listingId":"21d4f106-bd9b-4614-b0ce-da3088011757","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:47:30.540Z"}],"sources":[{"listingId":"21d4f106-bd9b-4614-b0ce-da3088011757","source":"github","sourceId":"sickn33/antigravity-awesome-skills/whatsapp-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/whatsapp-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:47:30.540Z","lastSeenAt":"2026-04-22T00:51:58.487Z"}],"details":{"listingId":"21d4f106-bd9b-4614-b0ce-da3088011757","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"whatsapp-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34404,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-21T16:43:40Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"4b025b6e21e34b44b91105b8ca5ddd4dd6667635","skill_md_path":"skills/whatsapp-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/whatsapp-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"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."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/whatsapp-automation"},"updatedAt":"2026-04-22T00:51:58.487Z"}}