Channel Health
One org-scoped read behind the dashboard’s channel-health banner, the alert on an agent’s Channels tab, and the badge on an agent row. It answers a single question — is this agent actually replying to people right now? — from two directions that fail the same silent way:- What the provider says. For WhatsApp Business, a background sweep asks Meta every 30 minutes whether the account may send at all and whether the number is still serving, then writes the verdict to the channel row. Before this existed,
agent_channels.health_statushad defaulted tohealthysince 2026 and nothing had ever written it — a WhatsApp Business Account blocked by Meta for a lapsed payment method read as perfectly healthy for ten days. - How many conversations a human is holding. When an operator replies from the WhatsApp Business app or takes a conversation in the inbox, the AI stops answering on that thread by design. Nothing surfaced the count, so an agent could be muted on most of its live conversations with no sign of it anywhere.
All API requests require a valid JWT token in the
Authorization: Bearer <token> header. The API Gateway decodes the JWT and forwards auth context (user-id, organization-id, user-email, x-platform-role, x-org-role) as headers to downstream services.Get Channel Health
Every agent in your organization that has an active channel or at least one conversation an operator is holding.This endpoint takes no parameters. The organization is the one on your verified session, and an
organizationId query parameter is ignored rather than honoured. Requires the member org role or higher — it returns an org-wide aggregate that cannot be narrowed by per-resource grants, so a viewer receives 403.Response (200)
boolean
object
What each state means
Example
Errors
Notifications
A state change also emails the organization’s owners and admins once, through thewhatsapp_channel_health notification preference (on by default for those two roles, off for members and guests). One email when a channel enters an unhealthy state, one more when it recovers — never one per sweep.
The de-duplication marker is written only after the mail rail confirms a delivery, so a failed send is retried on the next sweep rather than silently recorded as sent.
