Home · Blog · Checking a channel subscription with a bot: giveaways, flows and a re-check at the draw
Checking a channel subscription with a bot: giveaways, flows and a re-check at the draw
To make a CHBT bot check a channel subscription, make it a channel administrator — no rights need to be granted — add the channel in Channels for subscription checks with the Add and check button and turn the check on: in a giveaway — Condition: subscription to channels, in an ordinary flow — a Condition with the Subscription field. The bot asks the platform directly and gets one of three answers: subscribed, not subscribed or could not check; a platform failure never counts as “not subscribed”. It works in Telegram, MAX and VK, but only within one platform.
How the bot learns about a subscription
The bot cannot see what a person is subscribed to. It asks the platform: “Is user so-and-so a member of this channel?” — and gets one of three answers:
- subscribed — the platform confirmed it;
- not subscribed — the platform confirmed they are not;
- could not check — the bot has no rights, the platform did not answer within 5 seconds, limited the number of requests or returned an error.
CHBT’s main rule: a failure never turns into “not subscribed”. If Telegram temporarily did not answer, a subscriber will not be thrown out of the giveaway — the answer goes to the “could not check” branch.
A special case is a person who has never been in the channel. Telegram answers such a question with a “user not found” error, and CHBT correctly treats it as “not subscribed” rather than a failure.
What you need in Telegram, MAX and VK
| Platform | Requirement |
|---|---|
| Telegram | the bot must be a channel administrator — you do not have to grant rights, but without administrator status Telegram does not show the bot the subscribers |
| VK | the check uses the key of the community connected in Channels |
| MAX | the bot must be a channel administrator; the channel is specified by its chat_id |
The check works within one platform: a Telegram user’s subscription can be checked only against a Telegram channel, a VK user — only against a VK community. If a person writes to the bot in MAX and the channel is in Telegram, the answer will be “could not check”.
How to add a channel for checking
- Connect the bot of the platform you need in Channels.
- Open Channels for subscription checks.
- Add from the Studio — if the bot already publishes to this channel. Or Add manually: in Channel or community enter
@channel,-100…, a VK community ID or a MAX chat_id. - In Bot used for the check choose the bot of that platform.
- Fill in the “Subscribe” link — a person who is not subscribed yet will get it.
- Click Add and check.
The channel gets a status: Check works — all set, Need setup — most often the bot is not an administrator yet, Not verified — the check has not been run yet. Sponsor channels are added the same way, marked Sponsor channel.
How many channels you can check
| Plan | Channels for checks |
|---|---|
| Free | 1 |
| Basic | 5 |
| Business | 20 |
One channel is enough to check subscription to your own channel. A channel in the list can be used in several giveaways and flows at once — the limit counts channels, not checks. For giveaways with sponsors, where people have to subscribe to several channels, you will need Basic or Business.
Subscription check in a giveaway
In the giveaway settings — Condition: subscription to channels: choose the channels people have to subscribe to. When a person joins the giveaway, the Giveaway block in the flow checks each channel:
- subscribed to all — gets a participant number, the Joined output;
- not subscribed to at least one — gets “Subscribe” buttons for the missing channels and Check again, the Conditions not met output;
- the check failed — the same buttons, the Couldn’t check output.
The person subscribes, taps Check again and, if everything is fine, gets a number right away. The giveaway report shows how many people subscribed precisely through the giveaway — those the bot first saw as not subscribed. How to run a giveaway from start to finish — in the article on a giveaway in Telegram.
Re-check at the draw
A common trick of participants is to subscribe, get a number and unsubscribe right away. So before choosing winners, CHBT checks the subscription once more. The Subscription re-check at the draw setting has two modes:
- For all participants — the fairest, but on large giveaways in Telegram it takes time: Telegram checks one person at a time;
- Only for winners and reserve — faster: only those drawn are checked.
Anyone not subscribed at the time of the draw does not get the prize — the report will show the reason “not subscribed to … at the time of the draw”. Those whose subscription could not be checked at the draw are not silently excluded by CHBT but marked “subscription could not be checked” — the decision is yours.
The re-check is worth combining with a rule in the giveaway terms: “the subscription must be kept until the results are announced”. Then excluding those who unsubscribed does not look like nitpicking — participants knew the condition in advance. How to write such rules is covered in the article on giveaway rules.
Subscription check in an ordinary flow
The check works not only in giveaways. The Condition block has a Subscription field: choose a channel in Check subscription to a channel and a Subscription status — subscribed, not subscribed or could not check.
The quickest way is the Subscription branches: subscribed / not subscribed button: it replaces the condition’s branches with two ready-made ones. Otherwise fires when the subscription could not be checked: the bot is not a channel administrator or the platform did not respond.
A lead magnet for subscribing: an honest setup
A lead magnet setup with a real check instead of an “I have subscribed” button:
- A channel post or an ad leads into the bot by a labelled link, so the source is visible.
- The bot briefly says what the person will get and sends a “Subscribe” button for the channel.
- A Condition with subscription branches: Subscribed — the material and the
channel-subscribertag, Not subscribed — the channel link again and a Check again button that leads back to the same Condition. - Otherwise — the material anyway and the
subscription-uncheckedtag: there is no point punishing a person for a platform failure.
A month later the tags show how many people came into the channel through the bot. And a series of messages after the material is delivered turns a subscriber into a customer. A ready-made flow template — on the page about a lead magnet for subscribing.
An old Subscription rule without a channel
Bots built before the check appeared may contain a Subscription rule without a chosen channel. It checks nothing and always gives “yes” — that is how it used to work, and CHBT kept this behaviour so as not to change the branches of working bots.
The editor highlights such a rule: “This Subscription rule checks nothing and always gives ‘yes’. Choose a channel and what to check — then the bot will ask the platform”. Open the condition, pick a channel from the list — and the check will work for real.
Where the check does not work
- Someone else’s channel without your bot as administrator. Telegram does not show a channel’s subscribers to anyone who is not an administrator. Ask sponsors to add your bot as an administrator — no rights need to be granted.
- Different platforms. A Telegram user’s subscription to a VK community cannot be checked.
- The editor’s test chat. It works like the website chat, so Subscription in it is always “could not check”, and the Giveaway block skips the check. Test from a real messenger.
- A deleted or renamed channel. If the channel was deleted or the bot was removed from administrators, answers will become “could not check”. Click Check next to the channel in the list — the status will show whether the check works right now.
How to make sure everything works
- In Channels for subscription checks the channel has the Check works status.
- From a phone that is not subscribed to the channel, write to the bot and go through the flow — the not subscribed branch with a subscribe button should arrive.
- Subscribe and tap Check again — the subscribed branch should fire.
- Unsubscribe and go through the check again — the bot should notice.
- If “could not check” arrives everywhere, check that the bot is a channel administrator and that you are writing from the same platform as the channel.
Common mistakes
- The bot is not an administrator. The most common reason for “could not check” in Telegram and MAX.
- An empty Otherwise branch. On a platform failure the person is left without a reply. Lead Otherwise to a clear message or an operator.
- Checking only on entry. Without a re-check at the draw, participants who unsubscribed may win.
- A sponsor channel without the bot. Subscription to it cannot be checked — agree with the sponsor in advance.
- Testing only in the test chat. The check does not run there — test from a messenger.
How to run a giveaway in TelegramGiveaway rulesLead magnet for subscribingHow to choose a winner