gokapso/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.
npx skills add https://github.com/gokapso/agent-skills --skill observe-whatsapp
Use this skill for operational diagnostics: Logs search, message delivery investigation, webhook delivery debugging, error triage, workflow event correlation, and WhatsApp health checks.
Preferred path:
kapso login)kapso status to confirm project access and available WhatsApp numbersFallback path:
Env vars:
KAPSO_API_BASE_URL (host only, no /platform/v1)KAPSO_API_KEYUse 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:
kapso logs search --query "<id-or-text>" --period 24h --source all --limit 20 --output json--period 7d before concluding there are no logs.--problems-only for broad error scans; leave it off when reconstructing an exact timeline.kapso logs search --query "<execution-id>" --source flow_event --filter flow_execution_id=<execution-id> --period 7d --output jsonkapso logs search --source external_api_log --filter endpoint_contains=/messages --filter response_status=500 --period 24h --output jsonkapso logs search --query "wamid..." --source whatsapp_webhook_event --filter whatsapp_message_id=wamid... --period 7d --output jsonkapso logs search --source webhook_delivery --filter webhook_id=<webhook-id> --period 24h --output jsonFallback path:
node scripts/log-search.js --query "<id-or-text>" --period 24h --source all --limit 20node scripts/log-search.js --source flow_event --filter flow_execution_id=<execution-id> --period 7dnode scripts/log-search.js --catalog trueLogs 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.
Preferred path:
kapso logs search --query "<wamid-or-phone>" --period 7d --source all --limit 20 --output jsonkapso whatsapp numbers resolve --phone-number "<display-number>" --output jsonkapso whatsapp messages list --phone-number "<display-number>" --limit 50 --output jsonkapso whatsapp messages get <message-id> --phone-number-id <id> --output jsonkapso whatsapp conversations list --phone-number "<display-number>" --output jsonFallback path:
node scripts/messages.js --phone-number-id <id>node scripts/message-details.js --message-id <id>node scripts/lookup-conversation.js --phone-number <e164>Preferred path:
kapso statuskapso whatsapp numbers health --phone-number "<display-number>" --output humankapso logs search --problems-only --period 24h --source all --limit 20 --output jsonkapso whatsapp templates list --phone-number "<display-number>" --output jsonFallback path:
node scripts/log-search.js --problems-only true --period 24h --limit 20node scripts/errors.jsnode scripts/api-logs.jsnode scripts/webhook-deliveries.jsPreferred path:
kapso statuskapso whatsapp numbers health --phone-number "<display-number>" --output humanFallback path:
node scripts/overview.jsnode scripts/whatsapp-health.js --phone-number-id <id>| Script | Purpose |
|--------|---------|
| messages.js | List messages |
| message-details.js | Get message details |
| lookup-conversation.js | Find conversation by phone or ID |
| 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 |
| Script | Purpose |
|--------|---------|
| overview.js | Project overview |
| whatsapp-health.js | Phone number health check |
| 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
integrate-whatsapp.emit_event graph changes, use automate-whatsapp.phone_number_id before deep debugging.integrate-whatsapp - Onboarding, webhooks, messaging, templates, flowsautomate-whatsapp - Workflows, agents, and automations<!-- FILEMAP:BEGIN -->
[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}
<!-- FILEMAP:END -->
Take gokapso/observe-whatsapp from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.