Observe whatsapp
Monitor and debug WhatsApp webhook delivery. Use when user wants to: list event logs, filter events by type/status/date/errors, inspect event payloads, check channel WABA health (quality rating, messaging tier, connection status), upload/get/delete media files. Do not use for sending messages or managing channels. Useful for troubleshooting delivery failures.From its SKILL.md
npx -y skills add zaphook/zaphook-agent-skills --skill observe-whatsappAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.5 KB, 791 tokens by cl100k_base, as published. Nobody here has run it
Observe WhatsApp
Base URL: https://api.zaphook.cloud
Auth: Authorization: Bearer zph_...
Commands
List Events
node scripts/list-events.mjs [--channel-id <uuid>] [--event-type text|image|audio|status] [--delivery-status delivered|failed|pending|logged|retrying] [--has-errors true|false] [--start-date 2024-01-01T00:00:00Z] [--end-date 2024-01-31T23:59:59Z] [--limit 50] [--offset 0]
GET /api/public/v1/events
Response:
{
"data": {
"events": [{
"id": "uuid",
"channel_id": "uuid",
"event_type": "text",
"event_id": "wamid.abc123",
"delivery_status": "delivered",
"destination_url": "https://example.com/webhook",
"response_code": 200,
"retry_count": 0,
"processing_time_ms": 150,
"created_at": "2024-01-15T10:30:00+00:00"
}],
"total": 1,
"limit": 50,
"offset": 0
}
}
Note: Events are webhook delivery logs (incoming webhooks forwarded to destinations). They track if the event was successfully delivered to configured destinations. Status callbacks (sent/delivered/read) from Meta appear as event_type "status".
Get Event Detail
node scripts/get-event.mjs --event-id <uuid>
GET /api/public/v1/events/{event_id}
Returns full payload, processed_payload, response_body, and delivery metadata.
Channel Health (WABA Status)
node scripts/channel-health.mjs --channel-id <uuid>
GET /api/public/v1/channels/{channel_id}/status
Returns: quality_rating, messaging_limit_tier, status (CONNECTED/DISCONNECTED), verified_name, platform_type, is_active, channel_type.
Upload Media
node scripts/upload-media.mjs --channel-id <uuid> --file <path> --type image|video|audio|document
POST /api/public/v1/media/upload
Get Media
node scripts/get-media.mjs --media-id <id> --channel-id <uuid>
GET /api/public/v1/media/{media_id}?channel_id=<uuid>
Delete Media
node scripts/delete-media.mjs --media-id <id> --channel-id <uuid>
DELETE /api/public/v1/media/{media_id}?channel_id=<uuid>
Debugging Workflow
- Check channel health:
node scripts/channel-health.mjs --channel-id <id> - Find failed events:
node scripts/list-events.mjs --has-errors true - Inspect specific event:
node scripts/get-event.mjs --event-id <uuid> - Filter by date range:
node scripts/list-events.mjs --start-date 2024-01-01T00:00:00Z --end-date 2024-01-02T00:00:00Z
Important Notes
- Events represent webhook delivery logs (ZapHook forwarding to your destinations)
- If events are empty but the dashboard shows activity, the channel may not have destinations configured
- Coexistence channels receive status callbacks only if Meta's webhook points to ZapHook
- Standard channels automatically receive all callbacks via their webhook_url
Related skills
zaphook-api— Channel and destination managementwhatsapp-messaging— Send messages and templates
What ships with it: 6 files
3.1 KB alongside SKILL.md, 6 of them executable
scripts/
- channel-health.mjsruns332 B
- delete-media.mjsruns520 B
- get-event.mjsruns317 B
- get-media.mjsruns427 B
- list-events.mjsruns641 B
- upload-media.mjsruns986 B