Home · Blog · How to build a broadcast list in a bot: who gets into it and how to obtain consent
How to build a broadcast list in a bot: who gets into it and how to obtain consent
A broadcast list in a bot is built not by buying a list of phone numbers but through a conversation: a person writes to the bot themselves, agrees to receive messages and can opt out at any moment. Messengers require it, and so does the law. Here is who can technically get into the list, where to bring people from, how to ask for consent so it is separate and clear, how opting out works and what to do if a person asks to delete their data. All on the example of the ready CHBT template Broadcast consent.
Whom a bot can write to at all
The first limitation is not legal but technical. In Telegram and MAX a bot can write only to those who started a conversation with it themselves. In VK a community writes to those who wrote to it or allowed messages. A bot cannot write to a person “by phone number” — it has no such address.
So the broadcast list in CHBT is Contacts: everyone who wrote to the bot in Telegram, MAX or VK appears there automatically. Website chat visitors do not get broadcasts: you can only write to them while the chat is open.
There is a CSV import, but it does not turn someone else’s list into subscribers. A contact from a file who never wrote to your bot will not get the broadcast: in the report they end up in no channel or in errors. Why this is so and how it looks in Telegram — in the breakdown of the “bot can’t write first” error.
Where to bring people into the bot from
- A bot link with a tag. In the channel header, the profile description, an email, the website. A parameter in the link lets you set the source tag right away.
- A QR code on packaging, an insert, a stand at the checkout, a café menu.
- A lead magnet. A useful material, a checklist or a discount that the bot gives after a short conversation.
- A code word in comments under posts: a person writes the word — the bot replies in private messages.
- Bookings and requests. A customer who booked through the bot or left a request is already in the conversation — it only remains to ask whether they want news.
The general rule: a person comes for a specific benefit, and the offer to subscribe comes after it. “Subscribe to our newsletter” at the entrance works worse than “Shall we send you selections like this once a week?” after the material is delivered.
Why there are two consents
The CHBT template asks for two consents separately, and it is not overcautious:
- Consent to personal data processing. Since September 1, 2025 it is drawn up separately from other documents (Part 1 of Article 9 of Federal Law 152-FZ). A name and a messenger ID are already personal data.
- Consent to advertising. Advertising over telecommunication networks requires the recipient’s own prior consent (Part 1 of Article 18 of Federal Law 38-FZ “On Advertising”).
So they are not combined into one “I agree to everything” button. Informational messages — the schedule changed, a meeting was moved, an order is ready — are usually not advertising. Promotions, discounts and offers of paid services are advertising. Ultimately it depends on the content of a specific message.
This text is not legal advice. Check the consent wording and the data processing policy with your lawyer: the data controller is your organization. More on roles and storage — in the article 152-FZ and a chatbot.
The Broadcast consent template: how it works
- Consent to data. The bot names the controller, which data is processed (name and messenger ID), the purpose, the term — until withdrawn — and how to withdraw, gives a link to the policy and asks “Do you agree?” with the buttons I agree and No. I agree sets the tag
согласие-пдн(the template’s tag names are in Russian). - Consent to advertising. A separate question from a named sender: may they send promotions, discounts, new services, with a reminder that you can opt out with the word “stop”. Buttons Yes and No.
- A tag only on Yes. Yes sets the tag
рассылка(newsletter) and answers “Done, you’re on the list”. No does not set the tag but removes it if it was there: a refusal after consent is still a refusal.
Whoever has already given data consent will not see the first question again: a Condition on the согласие-пдн tag leads straight to the second. The button tap is saved in the conversation history together with the question text and the time — your record of what exactly the person agreed to.
Before launching, enter your organization’s name in both messages, and a link to your policy in the first one. The template with a description is on the page Broadcast consent.
Opting out: the word “stop” at any moment
Opting out should be as easy as subscribing. In the template this is done with Keyword triggers that work from anywhere in the conversation, even in the middle of another flow:
- “stop” in Russian, as well as
stopand/stop— as a whole message, in exact match mode. That way “autostop” in someone’s question unsubscribes nobody. - “unsubscribe” and similar words — anywhere in the phrase.
Both options remove the рассылка tag and answer “Okay, we won’t send news. Change your mind — write “subscribe””. The word “subscribe” asks the questions again, and data consent is not requested a second time.
One trap: if you have a flow with an Any message trigger created before the consent template, it may intercept “stop”. Make a copy of that flow, turn the copy on and the original off — flows are checked in order of creation, and the copy will come after the consent one. And while the conversation is with an operator, the bot is silent: “stop” is then read by the operator, who removes the tag manually.
Withdrawing consent and deleting data
Opting out of advertising and withdrawing consent to processing are different things. The template distinguishes them:
- the phrases “withdraw consent” or “delete my data” remove both tags —
рассылкаandсогласие-пдн; - the bot answers that the request was received, the broadcasts have stopped, and the request to stop processing or delete data has been passed to the responsible employee;
- the conversation is handed to an operator with the note “Withdrawal of consent to data processing — decide what to delete”.
It is important to understand: removing a tag does not stop processing. The contact card and the correspondence remain until they are deleted. Deleting a contact in Contacts erases the card together with all conversations and messages, and this cannot be undone. What to delete and what may be kept on other legal grounds is decided by the controller — your organization.
Broadcasts only by the consent tag
A collected list is worth nothing if advertising is then sent “to everyone”. In the broadcast form an empty To field means all project contacts in Telegram, MAX and VK — including those who never agreed or unsubscribed.
The rule is simple: advertising broadcasts — only with the рассылка tag in To. If topics differ, ask about topics after consent and set tags like рассылка-скидки (newsletter-discounts) — then every topic tag already includes consent. How the logic of several tags works is covered in the article on broadcasts by segments.
Informational messages to those who expect them for a reason — an appointment reminder, a rescheduled class — can be sent by working tags like appointment-tomorrow. But do not hide advertising in them: “A reminder about your appointment. By the way, 20% off…” is already an advertising message.
What to write so people do not unsubscribe
- Promise what you will send. “Once a week — a selection of new arrivals” is better than “we will keep you posted”.
- Write from a clear sender. The company name in the first line removes the “who is this” question.
- No more often than promised. A person who subscribed to a weekly selection will unsubscribe from daily promotions.
- Remind about “stop”. A line “To unsubscribe, write “stop”” at the end of a message reduces blocks: writing a word is easier than blocking the bot. The bot cannot write anything more to someone who blocked it, not even something important.
- Give a reason to reply. A keyword at the end of a broadcast turns it into the start of a conversation.
Email and messengers: one consent
If you also run email newsletters through Unisender connected to CHBT, the рассылка tag works as a shared switch: when the tag is set, CHBT adds the contact’s e-mail to the chosen Unisender list, and when it is removed — excludes it from that list. A person who wrote “stop” to the bot drops out of the email list too — without manual reconciliation.
For this the contact must have an e-mail in the card, for example collected in a flow through Data collection. How to choose a channel for different messages and connect email with the bot — in the article on omnichannel.
A checklist for a legal list
- People come to the bot themselves — via a link, a QR code, a code word, after a request.
- Consent to data processing — a separate question, with the organization’s name, purpose, term, how to withdraw and a link to the policy.
- Consent to advertising — its own question, a tag only on Yes.
- Opting out with the word “stop” works from anywhere in the conversation and has been tested on a live account.
- A withdrawal of consent is passed to an employee who decides what to delete.
- Advertising broadcasts — only by the consent tag; an empty To is not used for advertising.
- Every advertising broadcast makes clear who it is from and how to unsubscribe.
The consent flow works on any plan, including Free: you can build up the list in advance. The Broadcasts section itself is available from the Basic plan, 650 ₽ a month per bot.
Template “Consent to mailing list”152-FZ and chatbotBroadcast by segmentsBroadcasts in CHBT