Стандартные боты Telegram, созданные через @BotFather, сильно ограничивают рассылки: бот может написать только тому, кто сам нажал «Старт» или написал ему первым. Рассылка силами менеджера упирается в физические возможности человека: вести переписку со многими клиентами одновременно сложно. В этой статье разберём, какие способы рассылки существуют, и покажем, как Telegram API от GREEN-API помогает обойти ограничения ботов.
Рабочих способов четыре: сервис рассылок с готовым интерфейсом, бот-планировщик внутри мессенджера, собственный код на Telegram Bot API и собственный код на API от GREEN-API. Ниже разберём каждый по шагам: как создать бота, собрать базу подписчиков и отправить сообщение.
Содержание
Кому в Telegram можно отправлять рассылку
В Telegram есть несколько ситуаций — личные сообщения, свои группы и чаты, чужие чаты и каналы, — и в каждой свои условия.
| Куда отправляем | Бот из @BotFather или библиотека на его основе | GREEN-API чат-бот или автоматизация на | Менеджер вручную |
| Личные сообщения | Только тем, кто сам нажал «Старт» или написал боту | Можно писать первым | Можно писать первым |
| Своя группа или чат | Можно писать первым | Можно писать первым | Можно писать первым |
| Чужие чаты и каналы | Нельзя | Ограничения такие же, как у обычного пользователя | Ограничения такие же, как у обычного пользователя |
Отдельно остановимся на двух запросах, которые часто ищут: «рассылка всем контактам» и «рассылка по покупной базе». Ботам из @BotFather это недоступно: боту нужен идентификатор чата человека, а он появляется только после того, как человек сам написал боту или нажал «Старт». С GREEN-API технически можно написать первым, но рассылка по купленной базе без согласия получателей почти наверняка приведёт к жалобам и блокировке аккаунта, поэтому пишите только тем, кто дал согласие, — о том, как собрать такую базу, расскажем ниже.
Как создать бота для рассылки через @BotFather
Своего бота можно создать в @BotFather — официальном боте Telegram для создания, настройки и управления ботами. После создания вы получите токен, который подставляется в сервис рассылок или в ваш код. Относитесь к токену как к паролю: он конфиденциален, его нельзя передавать другим и тем более публиковать в открытом доступе.
Разберём пошагово:
- Откройте в Telegram @BotFather и отправьте команду
/newbot. Он попросит придумать боту имя и username. - Введите имя бота — его видят пользователи в списке чатов и в профиле бота. Позже имя можно изменить командой
/setname. - Введите username длиной от 5 до 32 символов: латинские буквы, цифры и подчёркивания. Он должен заканчиваться на bot, например
easyshop_bot. Username потом изменить нельзя, поэтому подбирайте его внимательно. - Сохраните токен, который пришлёт BotFather. Это длинная строка, по которой сервис или ваш код управляет ботом.
- Настройте профиль: аватар задаётся командой
/setuserpic, описание — командой/setdescription, текст «О себе» — командой/setabouttext.
Визуальные платформы для создания рассылок и ботов в Telegram
Существуют no-code-платформы, где бота собирают в визуальном редакторе: сценарии, рассылки и автоответы настраиваются мышкой, а не кодом. Главный плюс такого подхода — скорость и доступность: рабочего бота можно запустить за вечер, не нанимая разработчика, а изменения вносить самостоятельно. Главные минусы такой платформы: её тарифы обычно заметно дороже, чем работа напрямую через API, ограничения шаблонной логики и сложность переезда на другой сервис, когда проект вырастет.
Выбирая платформу, начните с трёх ключевых критериев: умеет ли сервис делать массовые рассылки; можно ли подключить CRM, платёжные системы и аналитику; насколько хороша поддержка и есть ли документация. Учитывайте также цену, удобство интерфейса и возможность масштабирования. Идеальный сервис найти сложно, поэтому исходите из своих задач: для простых рассылок подойдёт лёгкий конструктор, а если нужны сложные сценарии и интеграции, лучше сразу брать более мощное решение.
Библиотеки для ботов, созданных через @BotFather
Для Python есть две популярные библиотеки: pyTelegramBotAPI (telebot) и aiogram. Telebot подходит для небольших проектов, а для высоконагруженных ботов лучше взять асинхронную aiogram. В обоих случаях понадобится токен бота из @BotFather. Храните его не в коде, а в переменной окружения BOT_TOKEN. Ниже — минимальные примеры эхо-ботов.
На telebot. Установка: pip install pyTelegramBotAPI
import os
import telebot
bot = telebot.TeleBot(os.environ["BOT_TOKEN"])
@bot.message_handler(commands=["start"])
def start(message):
bot.reply_to(message, "Привет! Я эхо-бот из статьи GREEN-API про Telegram-ботов.")
@bot.message_handler(func=lambda m: True)
def echo(message):
bot.send_message(message.chat.id, message.text)
bot.infinity_polling()
На aiogram 3.x. Установка: pip install aiogram
import asyncio
import os
from aiogram import Bot, Dispatcher, F
from aiogram.filters import CommandStart
from aiogram.types import Message
bot = Bot(token=os.environ["BOT_TOKEN"])
dp = Dispatcher()
@dp.message(CommandStart())
async def start(message: Message):
await message.answer("Привет! Я эхо-бот из статьи GREEN-API про Telegram-ботов.")
@dp.message(F.text)
async def echo(message: Message):
await message.answer(message.text)
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
Чтобы превратить такого бота в рассылку, понадобятся база данных для хранения chat_id подписчиков, очередь отправки с паузами — не больше 30 сообщений в секунду, иначе Telegram вернёт ошибку 429 или и вовсе заблокирует вашего бота.
Плюсы: доступны все возможности ботов — inline-кнопки, меню команд, inline-режим, платежи, мини-приложения. Код работает с Telegram напрямую, без посредника, поэтому задержки минимальны, а данные не проходят через третью сторону. Библиотеки бесплатные, вокруг них большое открытое сообщество.
Минусы: бот не может написать человеку первым — пользователь должен сам нажать «Старт». Пользователи видят, что с ними общается бот, а не живой человек. Сервер, хостинг, обработку ошибок и масштабирование нужно организовать самостоятельно, а с проблемами пользователей вы остаётесь один на один: техподдержки нет. Код подходит только для Telegram, а если вы захотите написать интеграцию для WhatsApp* или другого мессенджера всё придётся писать заново.
Как создать чат-бота для Telegram с помощью API от GREEN-API
Создайте инстанс в личном кабинете GREEN-API. Для начала подойдёт бесплатный тариф «Разработчик». Авторизуйте аккаунт Telegram по QR-коду в личном кабинете и скопируйте два параметра: idInstance — уникальный номер инстанса и apiTokenInstance — ключ доступа к нему.
Бот на библиотеке GREEN-API получается не сложнее примеров выше, но умеет больше: в примере ниже он показывает меню, отправляет ссылку, геолокацию и файл. Установка: pip install telegram-chatbot-python. Перед запуском очистите поле Webhook URL в настройках инстанса, потому что бот получает уведомления сам.
import os
from telegram_chatbot_python import GreenAPIBot, Notification
bot = GreenAPIBot(os.environ["ID_INSTANCE"], os.environ["API_TOKEN_INSTANCE"]
)@bot.router.message(command="start")def message_handler(notification: Notification) -> None:sender_data = notification.event["senderData"]sender_name = sender_data["senderName"]
notification.answer(
(
f"Здравствуйте, {sender_name}! Вот что я умею:\n\n""1. Сообщить о проблеме\n""2. Показать адрес офиса\n""3. Показать тарифы\n""4. Позвать оператора поддержки\n""Отправьте номер нужного пункта."
)
)
@bot.router.message(text_message=["1", "Сообщить о проблеме"])def report_problem_handler(notification: Notification) -> None:
notification.answer("https://github.com/green-api/issues/issues/new",link_preview=False,typing_time=2000,
)
@bot.router.message(text_message=["2", "Показать адрес офиса"])def show_office_address_handler(notification: Notification) -> None:chat = notification.chat
notification.api.sending.sendLocation(chatId=chat, latitude=55.7522200, longitude=37.6155600
)
@bot.router.message(text_message=["3", "Показать тарифы"])def show_available_rates_handler(notification: Notification) -> None:notification.answer_with_file("rates.png") # путь к картинке с тарифами
@bot.router.message(text_message=["4", "Позвать оператора поддержки"])def call_support_operator_handler(notification: Notification) -> None:notification.answer("Хорошо. Оператор поддержки скоро свяжется с вами."
)
bot.run_forever()
Подключение к Telegram держит сервер GREEN-API, поэтому вам не нужно поддерживать сессию аккаунта: ваш скрипт только принимает уведомления и отвечает на них. Бот может первым писать в личные сообщения и группы, а отметки «бот» у него нет — сообщения отправляются от обычного аккаунта. За работоспособность сервиса отвечают инженеры GREEN-API, поддержка работает 24/7. Учтите, что это обычный аккаунт Telegram: при агрессивных рассылках Telegram может его ограничить, поэтому соблюдайте рекомендации из раздела о лимитах.
Как сделать рассылку в Telegram с помощью API от GREEN-API
Текстовые сообщения отправляются методом sendMessage, длина текста — до 4096 символов. В ответ приходит idMessage, по которому затем можно отследить статус доставки. Картинки и документы отправляются методами sendFileByUrl и sendFileByUpload.
Для работы понадобятся три параметра из личного кабинета: apiUrl — адрес API-хоста, idInstance — номер инстанса и apiTokenInstance — ключ доступа. В примере ниже список получателей хранится в текстовом файле recipients.txt: по одному номеру телефона или @username на строку. Скрипт узнаёт chatId каждого получателя методом checkAccount и ставит сообщения в очередь. Интервал между отправками задаётся настройкой delaySendMessagesMilliseconds — паузы между сообщениями в очереди GREEN-API соблюдает сам.
import osimport time
import requests
API_URL = os.environ["API_URL"] # apiUrl из личного кабинетаID_INSTANCE = os.environ["ID_INSTANCE"]API_TOKEN = os.environ["API_TOKEN_INSTANCE"]
TEXT = ("Здравствуйте! Новая акция до конца недели...\n\n""Чтобы отписаться, напишите СТОП"
)
def call(method, body):url = f“{API_URL}/waInstance{ID_INSTANCE}/{method}/{API_TOKEN}"response = requests.post(url, json=body, timeout=30)response.raise_for_status()return response.json()
# Пауза между отправками внутри очереди GREEN-API — 5 секундcall("setSettings", {"delaySendMessagesMilliseconds": 5000}),
# recipients.txt: по одному телефону (79876543210) или @username на строкуwith open("recipients.txt", encoding="utf-8") as f:recipients = [line.strip() for line in f if line.strip()]
for recipient in recipients:if recipient.startswith("@"):body = {"username": recipient}else:body = {"phoneNumber": int(recipient)}
account = call("checkAccount", body)if not account.get("exist"):print(f"{recipient}: аккаунт не найден, пропускаю")continue
result = call("sendMessage", {"chatId": account["chatId"], "message": TEXT})print(f"{recipient}: в очереди, idMessage={result['idMessage']}")time.sleep(1) # не превышать лимит запросов в секунду
Отдельный сервер для очереди не нужен: сообщения хранит и отправляет GREEN-API, а все методы описаны в документации. За работоспособность сервиса отвечают инженеры GREEN-API, поддержка работает 24/7. И бонус: тот же API подходит для других мессенджеров — WhatsApp и MAX.
Какого бота или сервис выбрать: четыре способа отправить рассылку
Запрос «бот для рассылки» подразумевает четыре разных решения: конструктор рассылок с готовым интерфейсом, бот-планировщик внутри мессенджера, собственный код на Bot API с помощью библиотек и собственный код на GREEN-API. Выбор зависит от задач: нужны ли сегментация и статистика, нужна ли связка с CRM и есть ли у вас разработчик.
Если разработчика нет, а интерфейс и статистика нужны, выбирают конструктор. Если рассылки редкие и идут в ваш канал, хватит планировщика. Если отправка должна стать частью вашей системы, пишут код: на Bot API — если хватает подписчиков бота, на GREEN-API — если нужно писать клиентам первым, масштабировать свой сервис, иметь живую поддержку, обширную документацию и фиксированную оплату за месяц.
Сравним способы в таблице:
| Способ | Что нужно на старте | Время на запуск* | Когда подходит | Ограничения |
| Конструктор рассылок | Токен бота, аккаунт в сервисе | Около трёх часов | Нет разработчика, нужны интерфейс и статистика | Абонплата, чужой интерфейс, зависимость от сервиса |
| Бот-планировщик в мессенджере | Только токен бота | Около часа | Разовые и редкие рассылки в свой канал | Мало настроек, почти нет сегментации |
| Свой код на Bot API (telebot, aiogram) | Токен бота, сервер, разработчик | Несколько дней | Связка с CRM, триггерные и транзакционные сообщения | Нельзя писать первым; сервер, очередь и лимиты — на вашей стороне |
| Свой код на GREEN-API | Аккаунт в GREEN-API, разработчик | Около часа | Связка с CRM, триггерные и транзакционные сообщения, нужно писать первым | Абонплата за инстанс, лимиты Telegram для обычного аккаунта |
*Оценка редакции по опыту подключений, а не данные платформ и сервисов.
Как собрать базу подписчиков для рассылки
База рассылки в Telegram — это люди, которые нажали «Старт» в вашем боте или сами согласились получать сообщения. Их нужно активно приглашать. Основные способы:
- Ссылка на бота на сайте и в соцсетях. Ссылка выглядит как
t.me/имя_бота:человек переходит по ней, попадает в чат с ботом и нажимает «Старт». Чтобы понимать, откуда пришёл подписчик, добавьте к ссылке параметр, напримерt.me/имя_бота?start=site— так видно, что человек пришёл с сайта. - QR-код в офлайне. Его размещают на кассе, упаковке, чеке или визитке. Он ведёт на ту же ссылку, но с другим параметром, поэтому подписчиков из магазина легко отличить от подписчиков с сайта.
- Кнопка в карточке товара. Кнопка рядом с товаром или заказом даёт понятный призыв подписаться — покупатель сам решает, получать ли сообщения о покупке, товаре или услуге.
- Лид-магнит. Пользователь получает что-то ценное — скидку, чек-лист, пробный доступ — в обмен на подписку: нажатие «Старт» в боте или номер телефона с согласием на сообщения.
С самого начала придерживайтесь двух правил:
- Подписчик должен дать согласие на получение сообщений: заранее предупредите об этом и укажите, как часто будете писать.
- Кнопка или команда отписки должна работать с первого дня. Это снизит число жалоб и блокировок и поможет удержать целевую аудиторию.
Покупные базы и списки участников чужих групп подписчиков не дают: эти люди не соглашались на рассылку. Бот из @BotFather написать им не сможет, а сообщения с обычного аккаунта через GREEN-API вызовут жалобы и, скорее всего, блокировку. Не тратьте на это время — лучше используйте способы выше.
Лимиты Telegram и как снизить риск блокировки
Telegram ограничивает частоту отправки. Боты на Bot API могут отправлять примерно 30 сообщений в секунду в разные чаты и около 20 сообщений в минуту в одну группу; при превышении Telegram возвращает ошибку 429 Too Many Requests. Для обычных аккаунтов, через которые работает GREEN-API, лимиты строже, а их превышение грозит ограничением аккаунта. Поэтому рассылка на большую базу занимает время — это нормально.
Снизить риск ограничений помогут следующие правила:
- Пишите только тем, кто дал согласие: нажал «Старт» или сам оставил контакт. Согласие получателей — основа любой рассылки.
- Дайте возможность отписаться, например кнопкой или командой.
- Соблюдайте лимиты скорости, чтобы не получить ошибку 429 или блокировку.
- Присылайте сообщения не чаще, чем обещали в приветствии.
- Делите большую базу на части и отправляйте их с паузами.
- Убирайте из списка тех, кто заблокировал бота или отписался.
Для рассылок через GREEN-API действуют дополнительные рекомендации: задавайте интервал между сообщениями в несколько секунд, начинайте не более чем 50 новых диалогов в день с людьми не из ваших контактов, а большие рассылки распределяйте между несколькими аккаунтами. Подробнее — в статье GREEN-API о том, как снизить риск блокировки.
Сколько времени займёт рассылка. При лимите Bot API около 30 сообщений в секунду рассылка на 1 000 подписчиков займёт примерно 35 секунд (но в некоторых случаях время отправки существенно вырастит и составит часы), на 2 000 — около 70 секунд, на 5 000 — около 3 минут. Через GREEN-API скорость задаёт интервал delaySendMessagesMilliseconds: при паузе 5 секунд 1 000 сообщений уйдут примерно за 1 час 25 минут, поэтому большие рассылки лучше распределять между несколькими аккаунтами.
Рассылка по чатам: свои группы и каналы через @BotFather
Речь только о ваших собственных группах и каналах. Это рабочий способ для анонсов и отложенного постинга, когда аудитория уже собрана в чате или на канале. Чтобы бот мог писать в группу или канал, его нужно туда добавить и выдать права:
- Разрешите добавлять бота в группы командой /
setjoingroupsв @BotFather. - Добавьте бота в свою группу — из профиля бота или по ссылке вида
t.me/имя_бота?startgroup=start, которая предложит выбрать группу. - Для канала откройте список администраторов канала и добавьте бота по его username.
- Выдайте боту право публиковать сообщения. В Bot API оно называется
can_post_messagesи относится только к каналам. Остальные права выдавайте, только если они нужны. - Укажите, куда публиковать: для публичного канала — его @username, для остальных чатов — числовой идентификатор.
- Запланируйте публикацию: в боте-планировщике вы пишете пост, выбираете канал и время, и бот опубликует его в назначенный момент.
Что можно сделать в @BotFather бесплатно, а за что придётся заплатить
Бесплатно доступны:
- Создание бота в @BotFather
- Получение токена и подключение его к сервису или коду
- Все команды @BotFather
- Отправка до 30 сообщений в секунду через Bot API
Для более сложных сценариев придётся выйти за рамки @BotFather и заплатить за:
- Сервер для работы бота
- Сервис-надстройку — конструктор или платформу рассылок
- Сегментацию аудитории
- Статистику
- Сценарии и автоворонки
- Работу с несколькими мессенджерами
Telegram, WhatsApp и MAX: как устроена рассылка
Правило «пиши только тем, кто согласился» действует во всех мессенджерах, но техника адресации разная. Поэтому, прежде чем выбирать способ, посмотрите, как бизнес общается с аудиторией: по базе контактов или через подписчиков бота. От этого зависит, закроет ли Telegram ваши потребности.
У каждого мессенджера есть официальные и неофициальные способы отправки. В Telegram создать бота через @BotFather можно бесплатно, но у ботов много ограничений. В MAX официальный бот доступен только компаниям и ИП из России. В WhatsApp придётся подключать WhatsApp Business API, а у него свои ограничения: нужна зарегистрированная компания, для некоторых видов деятельности такая модель общения недоступна, а тарификация сложная и подходит не всем.
Платформы вроде GREEN-API дают доступ сразу к нескольким мессенджерам с единой архитектурой. Это упрощает создание и поддержку интеграций, в том числе официальных — например, с WhatsApp Business API и MAX Bot API.
Как понять, что рассылка в Telegram сработала
Встроенной статистики по рассылкам в Telegram нет, поэтому результат считают на своей стороне или в сервисе рассылок. Следите за показателями:
- Сколько сообщений отправлено
- Сколько не доставлено из-за блокировки бота
- Сколько человек нажали кнопку
- Сколько человек перешли по ссылке с меткой
GREEN-API присылает вебхуки о статусе каждого сообщения: доставлено, прочитано, произошла ошибка или у получателя нет аккаунта.
Что отправлять в рассылке и как часто
Когда отправка настроена, остаётся вопрос, что именно писать и как часто. В рассылке можно отправлять текст, картинки, файлы и кнопки. Разберём, для чего подходит каждый формат:
- Текст — одно сообщение, одна мысль, одно действие для читателя.
- Картинка — объясняет суть сообщения: показывает товар, схему или карту.
- Файл — инструкция, каталог или документ, который человек захочет сохранить.
- Кнопка — одно понятное действие под сообщением, например «Сделать заказ». Inline-кнопки доступны ботам из @BotFather.
Придерживайтесь частоты, которую обещали в приветствии. Если сказали, что будете писать не чаще раза в неделю, так и делайте, иначе люди начнут отписываться.
Частые вопросы
Как сделать рассылку в боте Telegram?
Сначала создайте бота в @BotFather и получите токен. Затем соберите подписчиков: дайте им ссылку на бота, чтобы они нажали «Старт». После этого подключите токен к сервису рассылок или к своему коду, выберите получателей, напишите сообщение и запустите отправку. Пока человек не нажал «Старт», бот ему не напишет.
Также можно быстро создать чат-бота на GREEN-API: он работает от обычного аккаунта, выглядит в чате как живой человек и может писать первым.
Что такое рассылка в Telegram через бота?
Это отправка одного сообщения многим людям от имени бота. Получатели — те, кто сам нажал «Старт» или написал боту первым. Бот запоминает идентификатор чата каждого подписчика и по этому списку рассылает сообщение. Так отправляют уведомления о заказах, новости и акции. Главное отличие от обычной переписки в том, что разговор начинает не человек, а система. Поэтому важно получить согласие на получение сообщений и дать возможность отписаться.
Можно ли отправить в рассылке голосовое сообщение или аудио?
Да. Telegram Bot API отправляет голосовые сообщения методом sendVoice, а аудиофайлы — методом sendAudio. Если вы пользуетесь сервисом рассылок, возможность отправлять аудио зависит от самого сервиса, поэтому проверьте её до запуска. Требования к формату файлов указаны в официальной документации Telegram Bot API.
Как сделать рассылку в Telegram, если бота ещё нет?
Создайте бота: откройте @BotFather, отправьте команду /newbot, задайте имя и сохраните токен. Программировать для этого не нужно — токен подключается к сервису рассылок, а если вы разработчик, используйте его в своём коде на Bot API. Другой вариант — обойтись без бота: подключить аккаунт Telegram к GREEN-API и отправлять сообщения через API.
Как быстро сделать рассылку в Telegram?
Быстрее всего — через сервис рассылок или бота-планировщика: для них нужен только токен бота. Учтите, что Telegram ограничивает скорость отправки: по умолчанию боты могут отправлять до 30 сообщений в секунду.
Какие преимущества у Telegram API от GREEN-API?
Если вам нужно писать клиентам первым, масштабировать свой сервис, обширную документацию и фиксированную оплату за месяц, то GREEN-API — это ваш выбор. Готовые SDK, примеры чат-ботов, канал на YouTube и многое другое, например живая техническая поддержка от которой не нужно неделями ждать ответа, как бывает с поддержкой Telegram BotFather.