Skip to main content

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_status had defaulted to healthy since 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
healthy is also the column default, so read it together with lastHealthCheckAt. A channel with healthStatus: "healthy" and lastHealthCheckAt: null has never been probed — it is “nothing is known”, not “verified working”. Only WhatsApp Business channels are probed today; every other channel type reads the default. Do not render a green tick from the status alone.

What each state means

Example

Errors

Notifications

A state change also emails the organization’s owners and admins once, through the whatsapp_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.