Channels

Connecting Telegram, WhatsApp and the rest

Registering a channel surface makes it visible, not live — and WhatsApp, Messenger and Instagram share one Meta adapter with one reply-window rule between them.

By The Kav team Published 3 min read

Every channel surface your capabilities can answer on — WhatsApp, Messenger, Instagram, Telegram, SMS, voice, the web widget — is a row your organization registers, not something wired into code per city. The Studio's Channels screen is where that row gets created and turned on.

The surfaces

  • Website widget — the only surface with no registration step: it is live the moment the embed line is on your page.
  • Telegram — its own adapter, and live today.
  • WhatsApp — built on the Meta adapter, and goes live once Meta approves your business account.
  • Messenger — the same Meta adapter as WhatsApp, with the same reply-window rule.
  • Instagram — the same Meta adapter again, registered as its own surface.
  • SMS — its own adapter, registered like any other surface.
  • Voice — its own adapter, registered like any other surface.

Meta is one adapter, three surfaces

WhatsApp, Messenger and Instagram all sit behind a single Meta Business account, one webhook shape, and — critically — one reply-window model. The Channels screen groups them under one adapter card for exactly that reason: treating them as three unrelated peers of Telegram would teach the wrong mental model, and it's the model that leads to the reply-window logic getting implemented three times and getting it right twice.

1. Register a surface

Pick the surface and, if you already have one, the asset it corresponds to (a phone number, a page). This step does not connect anything — it creates a row marked not-yet-connected, and the panel says so before you click submit. Registering is what makes a surface reachable at all; a surface with no row here can't be enabled no matter what happens on Meta's side.

There is deliberately no way to remove a registered surface, only disable it. Disabling is the removal: the row is the only record of when a resident last reached your organization there, and a delete-then-re-register cycle would be a way to erase that history rather than a way to fix a mistake.

2. Wait for connection, then enable

A surface can't be enabled until its provider connection state says Connected — that state is a mirror of what the provider reports, and the Studio can't write into it, so it can't be ticked into truth ahead of time. Once it's connected, the enable/disable control is a kill switch: turning a channel off is never blocked for any reason, because an incident is exactly the moment a city needs to reach it.

3. Know the reply-window rule before your first campaign

Outside a limited window after a resident's last message, only a pre-approved template may be sent — not a live reply. The human-agent tag extends that window on Messenger and Instagram; it does nothing at all on WhatsApp. That distinction is invisible until a campaign quietly fails partway through, so it's worth reading the window rule panel once before you rely on it.

Templates themselves move through a real lifecycle — Draft → Submitted → Approved or Rejected, and Paused if the quality rating drops later. A paused template is a live incident on your outbound traffic, not a dormant draft, and it's shown that way.

Check the Templates panel for your organization's approved wording before writing a new campaign — a template that already exists and is approved is faster to reuse than a new one working through review.