
observe-whatsapp
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.
- Installs
- 3.7K
- Last 24h
- +37
- Trending rank
- #4058
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/gokapso/agent-skills --skill observe-whatsapp- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads observe-whatsapp automatically when relevant.
- 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.
Observe WhatsApp
When to use
Use this skill for operational diagnostics: Logs search, message delivery investigation, webhook delivery debugging, error triage, workflow event correlation, and WhatsApp health checks.
Setup
Preferred path:
- Kapso CLI installed and authenticated (
kapso login) - Start with
kapso statusto confirm project access and available WhatsApp numbers
Fallback path: Env vars:
KAPSO_API_BASE_URL(host only, no/platform/v1)KAPSO_API_KEY
How to
Search logs
Use Logs search first when the user gives an identifier, endpoint, message ID, workflow execution ID, webhook delivery ID, request ID, or a vague "what happened?" debugging prompt.
Preferred path:
- Search the current project:
kapso logs search --query "<id-or-text>" --period 24h --source all --limit 20 --output json - If the exact search is empty, retry with
--period 7dbefore concluding there are no logs. - Add
--problems-onlyfor broad error scans; leave it off when reconstructing an exact timeline. - Add explicit filters only when they intentionally narrow the search:
- Workflow execution:
kapso logs search --query "<execution-id>" --source flow_event --filter flow_execution_id=<execution-id> --period 7d --output json - API endpoint/status:
kapso logs search --source external_api_log --filter endpoint_contains=/messages --filter response_status=500 --period 24h --output json - WhatsApp message ID:
kapso logs search --query "wamid..." --source whatsapp_webhook_event --filter whatsapp_message_id=wamid... --period 7d --output json - Webhook delivery:
kapso logs search --source webhook_delivery --filter webhook_id=<webhook-id> --period 24h --output json
- Workflow execution:
Fallback path:
- Search via Platform API:
node scripts/log-search.js --query "<id-or-text>" --period 24h --source all --limit 20 - Use filters with repeated flags:
node scripts/log-search.js --source flow_event --filter flow_execution_id=<execution-id> --period 7d - Discover source and filter options:
node scripts/log-search.js --catalog true
Logs sources are external_api_log, whatsapp_webhook_event, flow_event, and webhook_delivery. The Platform API fallback returns indexed Logs payloads for the API-key project and requires Logs and Elasticsearch to be enabled.
Investigate message delivery
Preferred path:
- Search the WAMID or customer phone first:
kapso logs search --query "<wamid-or-phone>" --period 7d --source all --limit 20 --output json - Resolve the number:
kapso whatsapp numbers resolve --phone-number "<display-number>" --output json - List recent messages:
kapso whatsapp messages list --phone-number "<display-number>" --limit 50 --output json - Inspect a specific message:
kapso whatsapp messages get <message-id> --phone-number-id <id> --output json - Inspect the conversation:
kapso whatsapp conversations list --phone-number "<display-number>" --output json
Fallback path:
- List messages:
node scripts/messages.js --phone-number-id <id> - Inspect message:
node scripts/message-details.js --message-id <id> - Find conversation:
node scripts/lookup-conversation.js --phone-number <e164>
Triage errors
Preferred path:
- Confirm project and number state:
kapso status - Run number health:
kapso whatsapp numbers health --phone-number "<display-number>" --output human - Search recent problem logs:
kapso logs search --problems-only --period 24h --source all --limit 20 --output json - Inspect related templates when relevant:
kapso whatsapp templates list --phone-number "<display-number>" --output json
Fallback path:
- Logs search:
node scripts/log-search.js --problems-only true --period 24h --limit 20 - Message errors:
node scripts/errors.js - API logs:
node scripts/api-logs.js - Webhook deliveries:
node scripts/webhook-deliveries.js
Run health checks
Preferred path:
- Project overview:
kapso status - Phone number health:
kapso whatsapp numbers health --phone-number "<display-number>" --output human
Fallback path:
- Project overview:
node scripts/overview.js - Phone number health:
node scripts/whatsapp-health.js --phone-number-id <id>
Scripts
Messages
| Script | Purpose |
|---|---|
messages.js | List messages |
message-details.js | Get message details |
lookup-conversation.js | Find conversation by phone or ID |
Errors and logs
| Script | Purpose |
|---|---|
log-search.js | Search Logs across API, Meta webhook, workflow, and webhook-delivery sources |
errors.js | List message errors |
api-logs.js | List external API logs |
webhook-deliveries.js | List webhook delivery attempts |
Health
| Script | Purpose |
|---|---|
overview.js | Project overview |
whatsapp-health.js | Phone number health check |
OpenAPI
| Script | Purpose |
|---|---|
openapi-explore.mjs | Explore OpenAPI (search/op/schema/where) |
Install deps (once):
npm i
Examples:
node scripts/openapi-explore.mjs --spec platform search "webhook deliveries"
node scripts/openapi-explore.mjs --spec platform op listWebhookDeliveries
node scripts/openapi-explore.mjs --spec platform schema WebhookDelivery
Notes
- For webhook setup (create/update/delete, signature verification, event types), use
integrate-whatsapp. - For Project Event definitions, event-triggered workflow setup, or
emit_eventgraph changes, useautomate-whatsapp. - Prefer resolving a display phone number to the canonical
phone_number_idbefore deep debugging. - Prefer Logs search before older single-resource log endpoints when correlating across messages, workflows, API calls, and webhook deliveries.
- Keep the scripts as the fallback path when the CLI is unavailable or when you need API-log or webhook-delivery inspection.
References
- references/message-debugging-reference.md - Message debugging guide
- references/triage-reference.md - Error triage guide
- references/health-reference.md - Health check guide
Related skills
integrate-whatsapp- Onboarding, webhooks, messaging, templates, flowsautomate-whatsapp- Workflows, agents, and automations
[observe-whatsapp file map]|root: .
|.:{package.json,SKILL.md}
|assets:{health-example.json,message-debugging-example.json,triage-example.json}
|references:{health-reference.md,message-debugging-reference.md,triage-reference.md}
|scripts:{api-logs.js,errors.js,log-search.js,lookup-conversation.js,message-details.js,messages.js,openapi-explore.mjs,overview.js,webhook-deliveries.js,whatsapp-health.js}
|scripts/lib/messages:{args.js,kapso-api.js}
|scripts/lib/status:{args.js,kapso-api.js}
|scripts/lib/triage:{args.js,kapso-api.js}
FAQ
What does the observe-whatsapp skill do?
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.
How do I install observe-whatsapp?
Run npx skills add https://github.com/gokapso/agent-skills --skill observe-whatsapp 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/observe-whatsapp/ (personal) or .claude/skills/observe-whatsapp/ (project).
Which AI agents can use observe-whatsapp?
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 observe-whatsapp 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 observe-whatsapp?
It is published by gokapso in gokapso/agent-skills. It has 3,673 recorded installs.
More from gokapso/agent-skills
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.
automate-whatsapp
gokapso/agent-skills
Build and debug Kapso WhatsApp workflows, triggers, functions, and executions.
integrate-whatsapp-calling
gokapso/agent-skills
Open the skill to read its SKILL.md instructions.
whatsapp-messaging
gokapso/agent-skills
Open the skill to read its SKILL.md instructions.
kapso-api
gokapso/agent-skills
Open the skill to read its SKILL.md instructions.
whatsapp-flows
gokapso/agent-skills
Open the skill to read its SKILL.md instructions.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.