MCPInstall

whatsapp-messaging

Send and read WhatsApp messages via Kapso Meta proxy, manage templates (CRUD/send), and upload media. Use when sending messages, creating templates, or reading inbox history.

Installs
97
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/gokapso/agent-skills --skill whatsapp-messaging
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads whatsapp-messaging automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

WhatsApp Messaging

When to use

Use this skill when working with WhatsApp messaging via Kapso: sending messages, creating/managing templates, uploading media, or reading inbox history.

Setup

Env vars:

  • KAPSO_API_BASE_URL (host only, no /platform/v1)
  • KAPSO_API_KEY
  • META_GRAPH_VERSION (optional, default v24.0)

Discover IDs first

Two Meta IDs are needed for different operations:

IDUsed forHow to discover
business_account_id (WABA)Template CRUDnode scripts/list-platform-phone-numbers.mjs
phone_number_idSending messages, media uploadnode scripts/list-platform-phone-numbers.mjs

SDK setup

Install:

npm install @kapso/whatsapp-cloud-api

Create client:

import { WhatsAppClient } from "@kapso/whatsapp-cloud-api";

const client = new WhatsAppClient({
  baseUrl: "https://api.kapso.ai/meta/whatsapp",
  kapsoApiKey: process.env.KAPSO_API_KEY!
});

How to

Send a text message

Via SDK:

await client.messages.sendText({
  phoneNumberId: "<PHONE_NUMBER_ID>",
  to: "+15551234567",
  body: "Hello from Kapso"
});

Send a template message

  1. Discover IDs: node scripts/list-platform-phone-numbers.mjs
  2. Draft template payload from assets/template-utility-order-status-update.json
  3. Create: node scripts/create-template.mjs --business-account-id <WABA_ID> --file <payload.json>
  4. Check status: node scripts/template-status.mjs --business-account-id <WABA_ID> --name <name>
  5. Send: node scripts/send-template.mjs --phone-number-id <ID> --file <send-payload.json>

Send an interactive message

Interactive messages require an active 24-hour session window. For outbound notifications outside the window, use templates.

  1. Discover phone_number_id
  2. Pick payload from assets/send-interactive-*.json
  3. Send: node scripts/send-interactive.mjs --phone-number-id <ID> --file <payload.json>

Read inbox data

Use Meta proxy or SDK:

  • Proxy: GET /{phone_number_id}/messages, GET /{phone_number_id}/conversations
  • SDK: client.messages.query(), client.conversations.list()

Template rules

Creation:

  • Use parameter_format: "NAMED" with {{param_name}} (preferred over positional)
  • Include examples when using variables in HEADER/BODY
  • Use language (not language_code)
  • Don't interleave QUICK_REPLY with URL/PHONE_NUMBER buttons
  • URL button variables must be at the end of the URL and use positional {{1}}

Send-time:

  • For NAMED templates, include parameter_name in header/body params
  • URL buttons need a button component with sub_type: "url" and index
  • Media headers use either id or link (never both)

Scripts

ScriptPurposeRequired ID
list-platform-phone-numbers.mjsDiscover business_account_id + phone_number_id—
list-connected-numbers.mjsList WABA phone numbersbusiness_account_id
list-templates.mjsList templates (with filters)business_account_id
template-status.mjsCheck single template statusbusiness_account_id
create-template.mjsCreate a templatebusiness_account_id
update-template.mjsUpdate existing templatebusiness_account_id
send-template.mjsSend template messagephone_number_id
send-interactive.mjsSend interactive messagephone_number_id
upload-media.mjsUpload media for send-time headersphone_number_id

Assets

FileDescription
template-utility-order-status-update.jsonUTILITY template with named params + URL button
send-template-order-status-update.jsonSend-time payload for order_status_update
template-utility-named.jsonUTILITY template showing button ordering rules
template-marketing-media-header.jsonMARKETING template with IMAGE header
template-authentication-otp.jsonAUTHENTICATION OTP template (COPY_CODE)
send-interactive-buttons.jsonInteractive button message
send-interactive-list.jsonInteractive list message
send-interactive-cta-url.jsonInteractive CTA URL message
send-interactive-location-request.jsonLocation request message
send-interactive-catalog-message.jsonCatalog message

References

  • references/templates-reference.md - Template creation rules, components cheat sheet, send-time components
  • references/whatsapp-api-reference.md - Meta proxy payloads for messages and conversations
  • references/whatsapp-cloud-api-js.md - SDK usage for sending and reading messages

Related skills

  • kapso-automation - Workflow automation
  • whatsapp-flows - WhatsApp Flows
  • kapso-api - Platform API and customers

FAQ

What does the whatsapp-messaging skill do?

Send and read WhatsApp messages via Kapso Meta proxy, manage templates (CRUD/send), and upload media. Use when sending messages, creating templates, or reading inbox history.

How do I install whatsapp-messaging?

Run npx skills add https://github.com/gokapso/agent-skills --skill whatsapp-messaging in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/whatsapp-messaging/ (personal) or .claude/skills/whatsapp-messaging/ (project).

Which AI agents can use whatsapp-messaging?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is whatsapp-messaging safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains whatsapp-messaging?

It is published by gokapso in gokapso/agent-skills. It has 97 recorded installs.

More from gokapso/agent-skills

View all →

integrate-whatsapp

gokapso/agent-skills

Connect WhatsApp to your product with Kapso: onboard customers with setup links, detect connections, receive events via webhooks, and send messages/templates/media. Also manage WhatsApp Flows (create/update/publish, data endpoints, encryption). Use when integrating WhatsApp end-to-end.

AI & Agents4.7K installs

automate-whatsapp

gokapso/agent-skills

Build and debug Kapso WhatsApp workflows, triggers, functions, and executions.

observe-whatsapp

gokapso/agent-skills

Observe and troubleshoot WhatsApp in Kapso: search Logs across API, Meta webhook, workflow, and webhook-delivery events; debug message delivery; inspect webhook retries; triage API errors; and run health checks. Use when investigating production issues, message failures, workflow behavior, or webhook delivery problems.

Backend & APIs3.7K installs

integrate-whatsapp-calling

gokapso/agent-skills

Connect voice agents to WhatsApp Calling through Kapso. Use for Calling setup, signed call webhooks, inbound answering, outbound permission and dialing, native recordings and transcripts, or debugging signaling and media with Pipecat, Pipecat Cloud, ElevenLabs Agents, or another provider.

AI & Agents458 installs

kapso-api

gokapso/agent-skills

Kapso Platform API for customer onboarding, setup links, phone number provisioning, and connection detection. Use when working with multi-tenant WhatsApp integrations, embedded signup, or customer management.

Backend & APIs94 installs

whatsapp-flows

gokapso/agent-skills

Manage WhatsApp Flows via Kapso Platform API. List, create, update, publish flows, manage versions, attach data endpoints, and check encryption. Use when working with WhatsApp Flows, flow JSON, or data endpoints.

Backend & APIs92 installs

Popular ai & agents skills

View category →

google-agents-cli-publish

google/agents-cli

This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).

AI & Agents513.9K installs

google-agents-cli-eval

google/agents-cli

This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).

AI & Agents513.5K installs

skill-creator

anthropics/skills

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

OfficialAI & Agents416.4K installs

codex-pet

prime-skills/runcomfy-agent-skills

Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.

AI & Agents402.1K installs

full-output-enforcement

leonxlnx/taste-skill

Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.

AI & Agents401K installs

executing-plans

obra/superpowers

Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available

AI & Agents245.7K installs