Home · Blog · Why a bot broadcast does not reach everyone: “errors” and “no channel” explained

Why a bot broadcast does not reach everyone: “errors” and “no channel” explained

· Command CHBT · Broadcasts, Telegram

You sent a broadcast to 1,200 contacts and got “delivered 940, errors 180, no channel 80”. Where did the rest go — and is it a problem with the bot or is that how it should be? Almost always the latter: each messenger has its own rules about whom a bot may write to, and some contacts are simply unreachable. We look at what stands behind each number in CHBT and what can really be improved.

Three numbers after a broadcast

In the “Broadcasts” section each broadcast has three counters after sending:

  • Delivered — the messenger confirmed it accepted the message. This is not “read”: the bot does not see reads.
  • Errors — the messenger refused to deliver: the person blocked the bot, deleted the account or disallowed messages.
  • No channel — CHBT did not even try to send: there is no way to reach the contact (more below).

“No channel” is counted neither as recipients nor as errors — it is a separate group, so that real messenger refusals do not get lost among technical skips.

Where the “errors” come from

The main reason is that the person blocked or stopped the bot. In Telegram the bot gets the response “bot was blocked by the user” for such a send, and the message is not delivered. Other reasons: the account was deleted, or in VK the person disallowed messages from the community.

A small share of errors is normal for any contact base older than a few months. If there are sharply more errors than last time, it is a signal: the previous broadcast irritated people, and they blocked the bot en masse. Look at what it contained: frequency, text, whether it matched what the person signed up for.

What “no channel” means

A broadcast goes through the bot the contact last wrote to. If CHBT cannot find that bot, the contact goes into “no channel”. This happens in two cases:

  • The bot is disconnected. The person wrote to a bot that is no longer in “Channels”. You cannot reach them through another bot — they never wrote to it. If you simply changed the token of the same Telegram bot, CHBT recognizes the bot and sends through the new channel.
  • There are several bots. The project has two Telegram bots, and the contact (for example, uploaded from a file) wrote to neither. Choosing at random almost guarantees a messenger refusal, so CHBT does not send.

Hence the rule: do not delete an old channel while your contact base lives on it — change the token via “Change key”.

Why a broadcast does not go to the website chat

CHBT does not send broadcasts to website chat visitors. You can only write to them while the chat is open in the browser — and a message to a closed chat would be lost. So such contacts are not selected for a broadcast and are not counted. To be able to reach a website visitor later, move them to a messenger: an “Opens link” button to the Telegram or MAX bot right in the widget.

Whom a bot can write to at all

These are the rules of the messengers themselves, and no service can get around them:

  • Telegram — only those who started the bot themselves. The bot will not write by phone number or to a purchased contact list.
  • MAX — only those who opened the bot themselves and pressed “Start” or wrote.
  • VK — those who wrote to the community or allowed messages from it.

So a contact base from 1C or a CRM uploaded to “Contacts” does not turn into broadcast recipients by itself: these people have no conversation with the bot. More in the breakdown of the “bot cannot write first” error.

The broadcast went to “the wrong people” or “not to everyone”: check the tags

The “To” field takes comma-separated tags, and a contact who has at least one of them gets into the broadcast. “booking, lead” means “booking OR lead”, not both at once. An empty field means all project contacts in Telegram, MAX and VK.

Before launching, open “Check contact tags”: this shows how many people are really in the segment and whether people who do not need the message got in — for example, those who already bought. A broadcast cannot exclude tags, so it is better to build the segment with an “inclusion” tag rather than hope for exclusion.

Empty variables — “Hello, !”

You can insert {{name}}, {{phone}} and {{email}} into the text — they are filled in from the contact card. If the card has no such field, the spot stays empty. The most common awkwardness is “Hello, !” for people who did not put a name in their profile. Write so that the sentence reads without the name too: “Hello! {{name}}, a reminder…” is worse than “Good afternoon! A reminder…”.

Speed and limits

CHBT sends messages one by one with a short pause — noticeably slower than Telegram's limit for bulk sending (about 30 messages per second). So a large base does not go out instantly: watch the “Sending progress”. You can stop a broadcast at any moment with the “Stop” button — messages already sent stay with people, the rest will not go out.

A worked example: 1,200 contacts

Back to the numbers from the start: 1,200 contacts in the segment, 940 delivered, 180 errors, 80 no channel.

  • 80 “no channel” — people who wrote to an old Telegram bot removed from “Channels” half a year ago. They can no longer be reached: they never wrote to the new bot. The lesson — do not delete a channel your base lives on.
  • 180 errors out of 1,120 attempts — 16%. For a base collected over a year this is expected: some people stopped the bot, some deleted their accounts. If the previous broadcast had 6% and now it is 16%, check whether the previous broadcast was too frequent or “off-topic”.
  • 940 delivered is not “read” and not “interested”. What matters next is the replies: how many people sent the keyword or left a request.

How often you can send broadcasts

There is no hard rule, but there is a pattern: every broadcast the person did not expect increases the chance that they stop the bot. Guidelines:

  • write when there is a reason for this particular person: a new booking slot, a promotion matching their interest, an answer to their question;
  • do not repeat the same message “just in case” — CHBT broadcasts do not exclude those who already replied;
  • track the share of errors from broadcast to broadcast — it is the most honest indicator of base fatigue.

For behavior-based chains — “did not reach the booking”, “did not open the link” — flows with a pause fit better than broadcasts: see trigger chains.

How to raise delivery next time

  1. Write to those who are waiting. A broadcast by an interest tag gets blocked less often than one sent “to everyone”. How to collect such tags — in the article on tags and segments.
  2. Ask for consent to broadcasts in the flow itself — the “Broadcast consent” template.
  3. Do not delete old bots your base lives on.
  4. Move website visitors to a messenger if you want to write to them later.
  5. Compare errors between broadcasts: growth is a reason to reconsider frequency and texts.

Broadcasts are available on the Basic and Business plans. How the whole section works — on the chatbot broadcasts page.

More on the blog