Channel status
Know if WhatsApp, Instagram, Messenger and email are connected, with which account and how healthy, before promising a message will go out.
Before sending something over a channel, it is worth knowing whether that channel is connected and healthy. GET /workspaces/{workspaceId}/channels/status tells you for all four types —WhatsApp, Instagram, Messenger and email— in a single call.
Scope
channels:read. It does not consume Energy. It does not return credentials: no tokens, no PIN, no webhook path. Connecting, reconnecting and disconnecting a channel is done from the Meteor panel.
import { Met } from '@meteor.ia/sdk';
const met = new Met(process.env.MET_KEY!, { workspaceId: 42 });
const { data } = await met.channels.status();
for (const channel of data) {
console.log(channel.type, channel.connected, channel.health, channel.reason);
for (const account of channel.accounts) console.log(' ', account.display, account.health);
}
All four types always arrive, in the same order, connected or not.
What each field says
| Field | What it means |
|---|---|
connected | The channel is connected in your workspace. |
channel_id | The channel's id for the rest of the operations (GET /channels/{channelId}/config, WhatsApp sends). null if it was never connected. |
accounts[] | Each WhatsApp number, Instagram account, Facebook Page or email inbox, with display (what your customer sees), is_active and its own health. |
health | ok, attention, disconnected or not_connected. It is the worst health among its active accounts. |
reason | Why it is not ok (below). |
last_synced_at | When Meteor last synced that account with the provider. |
The reasons
reason | What to do |
|---|---|
line_not_operational | The WhatsApp number did not finish verifying or registering. Finish the setup from the panel. |
quality_low | Meta rated the number's quality as red. Lower the volume of marketing templates. |
authorization_expiring | The account's permission expires in less than 7 days. Reconnect it from the panel. |
authorization_expired | The permission expired: what comes in through that account no longer arrives. Reconnect it from the panel. |
account_inactive | The account is turned off in the panel; it does not count toward the channel's health. |
no_accounts | The channel is connected but has no active account. |
If one account goes down and the others stay healthy, the channel is in attention: it keeps answering through the others. It is only disconnected when all of them went down.
What it does not do
Health comes from what Meteor last synced, not from a live query to Meta: calling it in a loop does not give you fresher information. To diagnose a channel in detail —which flow handles each line, which Met answers— use GET /channels/{channelId}/config.