Skip to main content

Channels

Channels let people reach your workspace from the messaging apps they already use. Each channel is a separate instance you connect once and then manage from Settings → Channels (admin only).

The framework is generic and multi-instance: you can connect several channels of the same type — for example a "Sales" Telegram bot and a "Support" Telegram bot, or two WhatsApp numbers — and bind each one to a different department. Telegram, WhatsApp, Messenger and Instagram are all available today.

Connecting a Telegram bot​

  1. In Telegram, open a chat with @BotFather and create a bot (/newbot). BotFather gives you a bot token that looks like 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
  2. In the admin panel go to Settings → Channels and click Add channel.
  3. Choose Telegram, give the channel a name (e.g. "Sales Bot"), paste the bot token, and optionally pick a department.
  4. Click Save. We validate the token with Telegram, store the bot's @username, and register the inbound webhook automatically.

The bot token is encrypted at rest and is never shown again — the list shows only the last 4 characters. To change the token, delete the channel and re-create it.

Multiple bots, multiple departments​

There is no limit of one bot per workspace. Connect as many as you need and give each its own name. The department you bind to a channel is inherited by every new conversation that arrives through it, so you can route, for instance, your "Sales" bot to the Sales department and your "Support" bot to Support.

The webhook and the public-URL requirement​

Telegram delivers incoming messages by calling a webhook URL on your server. The channel row shows that URL with a copy button.

Telegram only accepts a public HTTPS URL. In production this is registered automatically when you connect the channel. In local / development the URL points at localhost, which Telegram cannot reach — so the webhook shows as failed until the app is deployed to a public address. This is expected: the channel is still created and the bot token is valid. Once the app is reachable on a public URL, click Retry webhook on the channel to register it.

The webhook is protected by a per-channel secret: we only accept inbound calls that carry the matching secret, so nobody else can post messages to your workspace through that URL.

What happens on an incoming message​

When someone messages your bot:

  • the person is matched to a contact (a new one becomes a lead), keyed by their Telegram identity;
  • a conversation is opened on the bot's channel, inheriting the channel's department;
  • the message lands in your inbox exactly like a web-chat message — your AI assistant can answer it, agents are notified, and replies your team (or the bot) send are delivered straight back to the person on Telegram.

Blocked contacts are handled the same way as everywhere else: their messages are stored silently and never receive an automated reply.

Bot settings: the menu, the descriptions and the button​

Settings → Channels → your Telegram bot → Bot settings edits what Telegram itself shows people. Everything on this screen is sent to Telegram and read by your customers — it is not internal configuration.

Command menu. Each row is one /command and the label beside it. The label is what a customer reads in the list Telegram pops up when they type / — it is a description for them, not a note for you. Names may use lowercase letters, digits and underscores only.

Each command also has an answer. When a customer runs the command, the bot sends that answer — in their own language, if you filled in more than one. A command with no answer behaves like ordinary text and goes to your assistant.

Three commands are worth setting on every bot, because Telegram expects them and its apps give them shortcuts:

CommandWhat people expect
/startSent automatically the first time someone opens the chat, before they have typed anything
/helpWhat the bot can do. With no answer set, we read back your own command menu
/settingsAnything the customer can change

Description is the text on the empty-chat screen, read before the first message. About is the shorter line on the bot's profile, and it travels with the bot when somebody shares it. Menu button is what sits beside the text box: the command list, or a web app.

Asking for a phone number or a location​

Telegram can hand you a phone number the customer taps once to share — one that Telegram has verified, not one they typed. That number is usually the only thing that connects a Telegram customer to the same person in your CRM, because the id Telegram gives us matches nothing else.

Agents send it from the composer's share menu; the assistant can ask for it too. The customer sees a single button instead of their keyboard, and what comes back lands on the contact card. An existing number is never overwritten.

The same works for a location. Email is not on this list: Telegram has no one-tap email button, so ask for it in words and the customer types it.

Groups​

A Telegram bot can be added to groups, and by default Telegram only shows it messages that are clearly meant for it — a command aimed at it, or a reply to something it said. Added as a group admin, it sees everything.

Two things to know before you put a bot in a group:

  • A group conversation arrives in your inbox as one thread for the room, not one per participant, and who spoke is shown on each message.
  • The assistant stays quiet in groups unless you turn it on for that channel. This is deliberate: a bot that answers every line in a room is noise, and it costs a model call each time.

If your bot has no business being in groups, turn that off at the source: send /setjoingroups to @BotFather and disable it. That is one switch, and it is tidier than managing the consequences afterwards.

Settings that live only in @BotFather​

The panel manages the command menu, both descriptions and the menu button. Telegram keeps everything else to itself — there is no API for it, so no panel can offer it. If you are looking for one of these, it is in @BotFather and not a bug:

  • Privacy and groups — /setprivacy, /setjoingroups. A privacy change only takes effect after the bot is removed and re-added to the group.
  • Identity — /setuserpic (and profile video), the description picture or video, /setdomain for the login widget.
  • Inline mode — /setinline, /setinlinegeo, /setinlinefeedback.
  • Modes — Secretary, Bot Management, Bot-to-Bot Communication, Guest.
  • Mini apps — Main Mini App, splash screen, preview media.
  • Destructive — /token, /deletebot, ownership transfer.

Things that will break your channel​

  • Regenerating the token (/token) invalidates the one we hold. Sending stops until you reconnect the channel with the new token.
  • /deletebot cannot be undone, and the username is released.
  • Transferring ownership is permanent, and it hands over the conversations. The new owner can read what your customers have written to the bot. Treat it as giving somebody your inbox, because that is what it is.
  • Telegram Ads revenue sharing puts ads inside the chat with your bot. It is your bot and your decision — but the ads appear in a support conversation, and customers read them as coming from you.

We check every Telegram channel hourly and ask Telegram directly whether the webhook is healthy. If it is not, the channel row says so with Telegram's own reason, and it clears itself once delivery recovers.

Connecting WhatsApp, Messenger and Instagram (Meta)​

WhatsApp (Cloud API), Facebook Messenger and Instagram all run on Meta's infrastructure. You connect them with one click — there are no tokens to copy. When you choose a Meta channel under Add channel, you get two buttons:

  • Connect Facebook & Instagram — opens Meta's secure login. After you grant access, we list your Facebook Pages (and any Instagram professional account linked to a Page). Pick which ones to add.
  • Connect WhatsApp — opens Meta's WhatsApp embedded signup. After you finish, we list the phone numbers under your WhatsApp Business Account. Pick which ones to add.

For each selected item you can set a name and a department, then click Connect selected. We create one channel per item, fetch its access token server-side (it never reaches your browser, and is encrypted at rest), and best-effort subscribe it so events flow. Items you've already connected are shown as Already connected and skipped.

Operator setup required

The one-click flow uses a single platform Meta App that the operator configures once (see the developer guide). If it isn't configured, the Meta connect buttons are disabled with a notice — ask your operator to set it up.

The shared webhook​

All three Meta products share one app-level webhook (…/api/meta/webhook). The operator sets the callback URL + verify token once in the Meta App dashboard; you don't paste anything per channel. Every incoming event is signed by Meta and verified against the platform App Secret before processing, so only genuine Meta deliveries reach your workspace.

Public-URL requirement​

Real inbound messages need the app reachable on a public HTTPS URL. Connecting works from any environment, but Meta only delivers events to a public callback — so the inbound flow runs once the app is deployed publicly and the operator's callback URL is set in the Meta dashboard.

Multiple numbers, pages and accounts​

You can connect as many WhatsApp numbers, Facebook Pages and Instagram accounts as you need, each with its own name and department binding. Inbound events are routed to the right channel by the platform identifier in the payload (phone number ID / Page ID / Instagram account ID).

Reconnecting a Meta channel​

Settings → Channels → (channel) → Reconnect opens the same Meta window as a new connection, but the list that comes back is about this one channel:

  • An Instagram channel lists Instagram accounts only; a Facebook (Messenger) channel lists Pages only.
  • The account the channel already uses is selected for you. See all accounts opens the rest of the same kind.
  • A Facebook or WhatsApp channel can be moved to another Page or number this way, keeping its conversations and settings. An Instagram channel can only be refreshed: other Instagram accounts are listed but cannot be picked — add them as new channels instead.
  • If the channel's own account is not in the list, Meta did not return it, usually because it was not selected in Meta's window. The full list opens with a note; cancel and reconnect again, selecting that account.

Starting from Meta's template library​

A template you write yourself goes to Meta for review, which takes up to 24 hours — and a rejection starts that clock again from zero. Meta also publishes a library of templates it has already written and already approved, and a template created from the library is usable immediately: no review, no waiting, and no argument about its category, because Meta chose it.

Open Library in the template manager, pick a language, and choose one. If a button needs your phone number or a tracking link, the screen asks for it. If Meta has nothing in your language yet, the list says so rather than showing you English templates you cannot send.

This is the fastest way to make a newly-connected number useful: outside the 24-hour service window WhatsApp only delivers approved templates, so a number with no templates cannot start a conversation at all.

Choosing the right category​

The category is not a label — it decides what each message costs and which rules apply to it. Utility requires two things at once: nothing promotional, and content specific to what that person did or asked for. A message that mixes an order update with an offer is marketing. So is anything vague: a body that is just {{1}}, or "Congratulations!", has nothing in it that belongs to the person receiving it.

Since April 2025 Meta no longer rejects a template whose category it disagrees with — it approves it under its own category. Nothing stops, and that is the problem: you quietly start paying marketing prices and owing marketing opt-out on a template you filed as utility. When that happens the panel says so on the template, and you have 60 days to appeal.

The editor warns you before you submit — about promotional wording in a utility template, about a body that says nothing specific, about asking for a full card or ID number (the last four digits are fine), and about the format mistakes Meta rejects outright: unmatched {{ }}, variables numbered with a gap, a template that starts or ends with a variable, or a body and footer that repeat a template you already have.

Editing and deleting​

Meta's constraints are enforced in the panel rather than reported afterwards:

  • A template can only be edited once its review is finished — approved, rejected or paused. A locked template cannot be edited at all.
  • An approved template keeps its category. To change it, create a new one.
  • Approved templates get 10 edits per 30 days and one per 24 hours. The editor shows what is left.
  • Deleting is by name, so every language version goes at once — and Meta will not let you reuse that name for 30 days. If you meant to fix a template, edit it instead. A template Meta has disabled cannot be deleted.

Warnings you get before something breaks​

  • Category change coming. Meta sometimes decides a template is really something else and moves it on the 1st of the month. The template keeps working as what it is today, and the panel shows what it becomes and when — that notice is roughly 24 hours, and it is the only chance to edit or appeal.
  • Quality falling. A template's quality score is shown with its history, so "fell from green two days ago" is visible rather than a colour you have to remember. Meta pauses templates that keep sliding.
  • Content changed elsewhere. If someone edits a template in WhatsApp Manager while a campaign is running on it, the campaign is halted instead of failing message by message.

When WhatsApp pauses a template​

Meta reviews templates continuously, not just once. Three things can happen to a template that was working, and they look similar in the panel while meaning very different things:

  • Paused. Meta stopped accepting it for now. Any campaign built on it is halted rather than cancelled — the recipients who have not been messaged are still waiting, and a Resume button appears on the campaign once you are ready. Resuming is deliberately your decision: a template is usually paused because of what it says, and the queued messages say exactly that.
  • Flagged or locked. The template still sends. Flagged means Meta marked the content; locked means you cannot edit it. Both appear as a badge beside the status rather than removing the template from the send picker.
  • Held for quality assessment. Not a template state at all — an individual message Meta accepted but has not sent yet. It shows an amber clock instead of the usual tick and is normally delivered within the hour. Sending a campaign more slowly makes it happen less.

There are two kinds of pause and only one clears itself. A quality pause lifts on its own timer (three hours, then six, then the template is disabled for good). A pacing pause — Meta throttling a new template while it watches the first responses — never lifts on its own; use Lift pause on the template.

How your templates are performing​

Meta can report, per template, how many messages were sent, delivered, read and clicked. Switching that reporting on is a bigger decision than it looks, so ConnectWiz asks for it on its own screen rather than as a toggle.

Turning it on means Meta will:

  • add analytics to your WhatsApp Business Account,
  • add click tracking to the links in your templates,
  • collect and anonymise data from your customer conversations,

and it cannot be switched off again. That last part is Meta's, not ours. The screen asks you to confirm the collection and the irreversibility as two separate confirmations, because one tick is how the important sentence gets skipped.

The one piece that can be reversed is per template: a single template can be excluded from URL click tracking. The screen names it rather than pretending the whole thing is reversible.

EU and Japan

Meta does not return template analytics for recipients in the EU or Japan. If that is most of your audience, an irreversible "yes" buys you nothing. The screen warns you before the confirmation — but it does not block you, because a country list can be wrong and it should not be the thing that decides for you.

Once it is on, numbers are collected nightly and shown per template, with a day-by-day breakdown.

  • Reads and clicks are kept by us, not read live from Meta. Meta resets those counters after 7 days, so a screen that asked Meta on demand would report last month as "zero engagement" — which is not "unknown", it is wrong.
  • Quick-reply clicks count taps; URL clicks count unique people. They are different measurements so they are shown separately rather than added up.
  • A blank cost is "Meta did not report it", not zero. Some accounts bill through a partner credit line and Meta returns no figure at all.

Who consented, when, and which version of the text they saw is recorded — a compliance question is never "is it on", it is "who agreed to it".

Quality and limits​

Settings → Channels → (your WhatsApp number) → Quality and limits shows what Meta currently thinks of the number:

  • Quality rating — Meta's own green / amber / red grade.
  • Messaging limit — how many unique people you may start a conversation with in 24 hours.
  • Warm-up rung — the daily campaign volume ConnectWiz is currently allowing (see Broadcasts).

Where Meta has told us two different things — a live grade from the API and an event from a webhook — they are shown separately rather than merged, because a grade and an event are not the same claim. A limit Meta has never sent is shown as unknown, not guessed at.

If quality has dropped, the screen links to the channel event that recorded it, with Meta's own wording as the evidence. "Why did my limit drop?" always has an answer you can read.

Sending campaigns through Marketing Messages​

WhatsApp has a separate delivery route for marketing templates, and it is on by default. WhatsApp limits how many marketing messages one person receives from all businesses together (a failed message shows error 131049). On the ordinary route that limit ignores the message itself; on the marketing route Meta also weighs how engaged the message is, so more of your campaigns can arrive. From 13 October 2027 it is the only route marketing templates can use.

Your customers' read and click activity is not shared with Meta on this route. That is a separate choice and it stays off. You can turn the route off per number in the account screen. If the number is not enrolled with Meta yet, campaigns keep going out the ordinary way.

The limit only applies to marketing templates. An appointment reminder or an order update approved as a utility template is not counted. If Meta reclassifies such a template as marketing, it starts hitting the limit, so check the category of templates that fail with 131049.

Sending a marketing template to someone who hit the limit​

When a person's last marketing message from your number failed with 131049, sending them another marketing template too soon can make Meta stop delivering to them for a whole day. So when you send a marketing template yourself — on the web or in the app — and that person failed with 131049 on the same WhatsApp number less than 24 hours ago, the template is not sent the first time. This covers every way you send one by hand:

  • choosing a template in a conversation,
  • sending a form with a template when the 24-hour window has closed, and
  • Request call permission when the window has closed (the request then goes out as an approved template; the warning appears only if that template is a marketing one).

You see a warning instead, with the time the limit lifts:

  • Cancel sends nothing. You can pick a utility template, or wait.
  • Send anyway sends the template. The message records who chose to send it.

There is no warning when:

  • the template is a utility or authentication template,
  • 24 hours have passed since the failure,
  • the person has written to you since the failure (a message from them opens the 24-hour service window, and Meta does not count marketing sent in that window against the limit), or
  • the failure was on a different WhatsApp number of yours.

The failed message's Retry button stays unavailable for the same 24 hours, for the same reason. Messages that go out without anyone pressing send — campaigns, automations, flows, reminders and the appointment-cancellation notice — do not show this warning.

Connecting a phone line (Netgsm SIP trunk or a GSM gateway device)​

Two ways to put the telephone network in front of your team, and they are equal: connect either, both, or neither — the same way you connect WhatsApp or Instagram. Neither is a "main" line and neither is a fallback for the other.

  • Netgsm SIP trunk — your own Netgsm subscription. The number stays registered to you; we hold no Netgsm account of our own.
  • GSM gateway device — your own appliance with your own SIM cards in it. Any brand works: we speak standard SIP to it and never need to know which box it is.

Both ask for the same thing, because to us they are the same thing: the phone number the line carries, the SIP host and port, the transport, and a SIP username and password. The password is stored encrypted and never shown again — to change it, reconnect the channel.

Before you switch on SIP Trunk forwarding at Netgsm​

Read this one twice, because it is the only step in the whole product that cannot be undone from here.

The moment you turn on SIP Trunk forwarding in the Netgsm portal:

  • every call to that number comes to us, and
  • Netgsm's own answering service and forwarding rules stop applying.

Netgsm publishes no API for that setting, and no notification when it changes. So we cannot switch it back for you — not when you disconnect the channel, not when you delete it, not ever. Only you can, in the Netgsm portal.

Which means: connect the channel first, and turn the forwarding on only once the channel reports that it is carrying calls. While it is not, the panel says so on the channel itself. Turning the forwarding on before that would send your calls to a service that cannot answer them — and nothing else would ring either.

A GSM gateway device has no equivalent step. Nothing at your operator is changed; if you want it to stop, you unplug it.

What a phone line can do, and what it cannot do yet​

Once the channel reports that it is carrying calls, an incoming call behaves like any other call in this product: it opens a conversation on the caller's own thread, rings the agents your routing rules pick, respects your opening hours and your wait queue, and can be answered, put on hold, handed to a colleague and hung up from the panel or the mobile app. Agents can also dial a phone number out from a conversation. Hold music plays.

Recording and the voice menu (IVR) are available on a phone line. Both were held back until the announcement audio could be prepared in the telephone network's own narrowband format, because a recording without its spoken notice is not something this product will do. That audio now exists, so the recording notice plays on a phone call and a menu you configure is offered on this channel like any other.

Two things about a phone line are still different, and the panel says so rather than leaving you to discover them:

  • A live transcript from a phone line is less accurate. The telephone network carries far less of the sound than an internet call does, so names, spellings and long numbers are likelier to come through wrong. Captions from a phone call are labelled for this, and the advice on that label is the right one: read names and numbers back to the caller to confirm them.
  • A written reply cannot be sent from a phone call. A phone number is not a chat thread. If the same number is also connected as an SMS line, the panel offers that instead — see the SMS section.

If a control you expect is not drawn, that is the channel telling you its line cannot do that thing today, not an oversight: nothing here is half-enabled.

If your line still reports that it is not carrying calls after you connect it, that is about this server, not about your subscription — whoever runs it has not deployed the telephony gateway yet.

What is not encrypted​

The audio between us and your operator is not encrypted — Netgsm's own setup guide sets media encryption to disabled, and the industry-standard telephone trunk is plain RTP. The leg between us and your agents is encrypted as usual. If you have data-protection obligations that cover call audio in transit, this is the fact you need.

Removing a phone channel​

Deleting the channel here removes our side. If you turned on SIP Trunk forwarding at Netgsm, it stays on — switch it off in the Netgsm portal, or calls to that number will keep going to a service that is no longer listening.

Who a channel notifies​

Settings → Channels → ⋯ → Who it notifies.

Channel access decides who may work a channel. This decides whose phone it is allowed to interrupt — and on a shared number those start out as the same list of people, which is why a busy WhatsApp line ends up buzzing every phone in the building.

Everyone is notified unless you switch them off here. The stored setting is the list of exclusions, not the list of recipients, so a teammate who joins next month is reached on their first day without anybody editing this screen.

Each kind of notification is its own switch, and a channel offers only the kinds it produces: a mailbox shows E-mail; a Facebook Page shows Messages, Comments and Calls; an Instagram, TikTok or X account Messages and Comments; a review or comment-only source (Google Business, YouTube, the app stores…) Comments; WhatsApp Messages and Calls; a phone line Calls. A receptionist who should hear every call on the clinic's number does not have to accept every message to get them, and a social media manager can hear every comment without the DMs.

Mailboxes switched off before e-mail had a switch of its own keep their setting — it shows (and works) as E-mail now.

Each member can also turn kinds and routes off for themselves — see What notifies you.

Two things are worth knowing before you switch someone off:

  • A muted teammate is not notified even when a conversation is assigned to them. "Off this channel" means off this channel; the work still reaches them in the inbox, which is theirs to open.
  • On calls, the notification is the ring. A muted teammate's phone is not rung at all — silencing only the banner while the phone still rang would not be the setting you asked for.

Administrators can be switched off too. This is the one place in ConnectWiz where an admin does not automatically hold everything: an admin who does not want a channel's calls at 2am is stating a preference, not escaping a restriction.

If you switch everyone off a channel's calls, nobody is rung — the system will not quietly override you. That is almost always the wrong tool for the job: if a number should not ring anybody, turn its calling off on the channel itself.

Editing and removing a channel​

  • Edit a channel to rename it, change its department, or set it inactive (an inactive channel stops accepting inbound messages without losing its configuration).
  • Delete a channel to disconnect it; we also remove the webhook on Telegram's side. Existing conversations are kept — only future replies stop.