PluginBench
Skill
Review
Audit score 70

observe-whatsapp

gokapso/agent-skills

Search logs, debug message delivery, and triage WhatsApp issues in Kapso.

What is observe-whatsapp?

Operational diagnostics skill for WhatsApp in Kapso. Search logs across API, Meta webhook, workflow, and webhook-delivery events; investigate message delivery failures; inspect webhook retries; triage API errors; and run health checks. Use when troubleshooting production issues, message failures, workflow behavior, or webhook delivery problems.

  • Search logs across API, Meta webhook, workflow, and webhook-delivery sources
  • Debug message delivery and inspect message details
  • Investigate webhook delivery attempts and retries
  • Triage API errors and run health checks on phone numbers
  • Correlate workflow execution events with message and API logs

How to install observe-whatsapp

npx skills add https://github.com/gokapso/agent-skills --skill observe-whatsapp
Prerequisites
  • Kapso CLI installed and authenticated (kapso login)
  • Access to a Kapso project with WhatsApp numbers configured
  • Alternatively: KAPSO_API_BASE_URL and KAPSO_API_KEY environment variables
Claude Code
Cursor
Windsurf
Cline

How to use observe-whatsapp

  1. 1.Run `kapso status` to confirm project access and available WhatsApp numbers
  2. 2.Use `kapso logs search --query "<id-or-text>" --period 24h --source all --limit 20 --output json` to search logs by message ID, workflow execution ID, webhook delivery ID, or error text
  3. 3.Run `kapso whatsapp numbers health --phone-number "<display-number>" --output human` to check phone number health
  4. 4.Use `kapso whatsapp messages list --phone-number "<display-number>" --limit 50 --output json` to list recent messages and inspect delivery status
  5. 5.Inspect webhook deliveries with `kapso logs search --source webhook_delivery --filter webhook_id=<webhook-id> --period 24h --output json` to debug delivery issues

Use cases

Good for
  • Investigate why a WhatsApp message failed to deliver to a customer
  • Debug a workflow that stopped processing webhook events from Meta
  • Triage API errors when sending bulk messages
  • Inspect webhook delivery retries to understand delivery failures
  • Correlate a customer complaint with logs across messages, workflows, and API calls
Who it's for
  • WhatsApp platform operators
  • Production support engineers
  • Workflow and automation developers
  • DevOps and SRE teams troubleshooting Kapso deployments

observe-whatsapp FAQ

When should I use this skill vs. integrate-whatsapp or automate-whatsapp?

Use observe-whatsapp for operational diagnostics and troubleshooting. Use integrate-whatsapp for webhook setup, messaging, and templates. Use automate-whatsapp for workflow and automation configuration.

What log sources can I search?

Four sources: external_api_log (API calls), whatsapp_webhook_event (Meta webhook events), flow_event (workflow execution events), and webhook_delivery (webhook delivery attempts).

How do I find a message if I only have a customer phone number?

Use `kapso logs search --query "<phone-number>" --period 7d` to find related logs, then `kapso whatsapp numbers resolve --phone-number "<display-number>"` to get the phone_number_id, then `kapso whatsapp messages list --phone-number "<display-number>"` to list messages.

What should I do if a logs search returns no results?

Retry with a longer period (e.g., `--period 7d` instead of `24h`). Use `--problems-only` for broad error scans. Check that the phone_number_id is correct with `kapso status`.

Can I use this skill without the Kapso CLI?

Yes, use the fallback path with Node.js scripts (e.g., `node scripts/log-search.js`) and set KAPSO_API_BASE_URL and KAPSO_API_KEY environment variables.

Full instructions (SKILL.md)

Source of truth, from gokapso/agent-skills.


name: observe-whatsapp description: "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."

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 status to 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:

  1. Search the current project: kapso logs search --query "<id-or-text>" --period 24h --source all --limit 20 --output json
  2. If the exact search is empty, retry with --period 7d before concluding there are no logs.
  3. Add --problems-only for broad error scans; leave it off when reconstructing an exact timeline.
  4. 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

Fallback path:

  1. Search via Platform API: node scripts/log-search.js --query "<id-or-text>" --period 24h --source all --limit 20
  2. Use filters with repeated flags: node scripts/log-search.js --source flow_event --filter flow_execution_id=<execution-id> --period 7d
  3. 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:

  1. Search the WAMID or customer phone first: kapso logs search --query "<wamid-or-phone>" --period 7d --source all --limit 20 --output json
  2. Resolve the number: kapso whatsapp numbers resolve --phone-number "<display-number>" --output json
  3. List recent messages: kapso whatsapp messages list --phone-number "<display-number>" --limit 50 --output json
  4. Inspect a specific message: kapso whatsapp messages get <message-id> --phone-number-id <id> --output json
  5. Inspect the conversation: kapso whatsapp conversations list --phone-number "<display-number>" --output json

Fallback path:

  1. List messages: node scripts/messages.js --phone-number-id <id>
  2. Inspect message: node scripts/message-details.js --message-id <id>
  3. Find conversation: node scripts/lookup-conversation.js --phone-number <e164>

Triage errors

Preferred path:

  1. Confirm project and number state: kapso status
  2. Run number health: kapso whatsapp numbers health --phone-number "<display-number>" --output human
  3. Search recent problem logs: kapso logs search --problems-only --period 24h --source all --limit 20 --output json
  4. Inspect related templates when relevant: kapso whatsapp templates list --phone-number "<display-number>" --output json

Fallback path:

  1. Logs search: node scripts/log-search.js --problems-only true --period 24h --limit 20
  2. Message errors: node scripts/errors.js
  3. API logs: node scripts/api-logs.js
  4. Webhook deliveries: node scripts/webhook-deliveries.js

Run health checks

Preferred path:

  1. Project overview: kapso status
  2. Phone number health: kapso whatsapp numbers health --phone-number "<display-number>" --output human

Fallback path:

  1. Project overview: node scripts/overview.js
  2. Phone number health: node scripts/whatsapp-health.js --phone-number-id <id>

Scripts

Messages

ScriptPurpose
messages.jsList messages
message-details.jsGet message details
lookup-conversation.jsFind conversation by phone or ID

Errors and logs

ScriptPurpose
log-search.jsSearch Logs across API, Meta webhook, workflow, and webhook-delivery sources
errors.jsList message errors
api-logs.jsList external API logs
webhook-deliveries.jsList webhook delivery attempts

Health

ScriptPurpose
overview.jsProject overview
whatsapp-health.jsPhone number health check

OpenAPI

ScriptPurpose
openapi-explore.mjsExplore 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_event graph changes, use automate-whatsapp.
  • Prefer resolving a display phone number to the canonical phone_number_id before 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

Related skills

  • integrate-whatsapp - Onboarding, webhooks, messaging, templates, flows
  • automate-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 -->