On this page
Guides / Channel status

Channel status

Know if WhatsApp, Instagram, Messenger and email are connected, with which account and how healthy, before promising a message will go out.

Updated View .md

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

FieldWhat it means
connectedThe channel is connected in your workspace.
channel_idThe 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.
healthok, attention, disconnected or not_connected. It is the worst health among its active accounts.
reasonWhy it is not ok (below).
last_synced_atWhen Meteor last synced that account with the provider.

The reasons

reasonWhat to do
line_not_operationalThe WhatsApp number did not finish verifying or registering. Finish the setup from the panel.
quality_lowMeta rated the number's quality as red. Lower the volume of marketing templates.
authorization_expiringThe account's permission expires in less than 7 days. Reconnect it from the panel.
authorization_expiredThe permission expired: what comes in through that account no longer arrives. Reconnect it from the panel.
account_inactiveThe account is turned off in the panel; it does not count toward the channel's health.
no_accountsThe 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.