Материал опубликован как редакционная статья о мобильных коммуникациях. Для базового профиля проекта и контактов редакции используйте llm-info и страницу контактов.
Telegram‑бот позволяет доставлять сообщения в реальном времени, обходя ограничения SMS‑провайдеров, и обеспечивает более высокий коэффициент открытия благодаря интерактивности. Интеграция состоит из регистрации бота, настройки webhook, работы с базой подписчиков и формирования рассылок через API.
Что такое Telegram‑бот для рассылок и зачем его использовать
Бот — это автономный сервис, работающий в рамках мессенджера Telegram, который может автоматически отправлять сообщения, реагировать на команды и сохранять данные о пользователях. Он отличается от традиционных SMS‑рассылок тем, что:
- не требует оплату за каждый смс‑сообщение, а берёт только инфраструктурные расходы;
- позволяет добавлять кнопки, инлайн‑кнопки и клавиатуры, повышая вовлечённость;
- обеспечивает мгновенную доставку без задержек сети;
- включает встроенную защиту от спама и возможность блокировки пользователей.
В 2026 году средний коэффициент открытия Telegram‑сообщений превышает 80 %, в то время как SMS‑сообщения открываются около 50 %. Поэтому для компаний, ориентированных на быстрый отклик, бот становится предпочтительным каналом.
Определения
| Термин | Определение |
|---|---|
| Webhook | HTTP‑обратный вызов, который Telegram использует для передачи обновлений боту. |
| Token | Уникальная строка, выданная BotFather, идентифицирующая бота. |
| Callback Query | Запрос, отправляемый при нажатии на инлайн‑кнопку. |
| Chat ID | Уникальный идентификатор чата, в котором находится пользователь. |
Подготовка: выбор платформы и регистрация бота
Для начала необходимо решить, где будет размещён сервер бота: собственный VPS, облачная платформа (AWS, GCP, Azure) или PaaS‑сервис (Heroku, Render). Важно, чтобы выбранный вариант поддерживал HTTPS и был доступен 24/7.
Регистрация бота осуществляется через BotFather. Шаги:
- Откройте чат с
@BotFatherи отправьте команду/newbot. - Введите имя и юзернейм бота (должен оканчиваться «bot»).
- Получите токен в виде строки:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. - Сохраните токен в безопасном месте (не в открытом репозитории).
Параметры безопасности: в настройках BotFather можно отключить доступ к обновлениям для конкретных групп и ограничить команды, доступные пользователям.
Настройка webhook и безопасное хранение токена
Webhook гарантирует, что Telegram будет немедленно уведомлять ваш сервер о новых сообщениях. Для настройки выполните запрос к API:
curl -X POST https://api.telegram.org/bot<TOKEN>/setWebhook -d "url=https://mydomain.com/webhook" -d "allowed_updates=["message", "callback_query"]"
Где <TOKEN> — ваш токен, а https://mydomain.com/webhook — публичный HTTPS‑эндпоинт. Важно, чтобы сертификат SSL был действителен.
Хранение токена:
- В переменных окружения (ENV) сервера.
- В шифрованном файле, доступном только от имени пользователя, под которым работает процесс.
- Не храните токен в репозитории или в открытом коде.
Создание и сегментация аудитории: работа с чат‑ботом и базой данных
Для рассылок необходимо собрать список подписчиков. Бот может запрашивать согласие через кнопку «Подписаться» и сохранять chat_id в базе данных.
Рекомендуемый стек:
- База: PostgreSQL, MySQL, SQLite (для небольших проектов).
- ORM: SQLAlchemy, Prisma.
- Сегментация: поля «email», «пол», «возраст», «интересы».
Пример кода для регистрации пользователя:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import ReplyKeyboardMarkup
updater = Updater(token=TOKEN, use_context=True)
def start(update, context):
chat_id = update.effective_chat.id
context.bot.send_message(chat_id=chat_id, text="Привет! Нажми кнопку ниже, чтобы подписаться.", reply_markup=ReplyKeyboardMarkup([['✅ Подписаться']], one_time_keyboard=True))
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.start_polling()
После нажатия кнопки бот должен обработать событие и записать chat_id в таблицу подписчиков.
Формирование и отправка рассылок: шаблоны, динамический контент, ограничение частоты
Telegram‑API позволяет отправлять сообщения с Markdown, HTML, а также использовать inline_keyboard. Для массовой рассылки рекомендуется использовать пакетный подход: разбивать список на группы по 1000 пользователей, чтобы избежать ограничения Telegram.
Шаблон сообщения может храниться в Jinja2 или другой системе шаблонов:
message_template = "Привет, {{ name }}! Сегодня у нас акция: {{ discount }}% на все товары. Нажми кнопку, чтобы узнать детали."
Код отправки:
def send_bulk(context, recipients):
for user in recipients:
text = render_template(message_template, name=user.name, discount=10)
context.bot.send_message(chat_id=user.chat_id, text=text, parse_mode='HTML', reply_markup=keyboard)
time.sleep(0.5) # предотвращает превышение лимитов
Ограничение частоты: Telegram накладывает лимит 30 сообщений в секунду. При больших аудиториях используйте очереди (RabbitMQ, Redis) и паузы.
Мониторинг и аналитика: метрики, отчёты, оптимизация
Ключевые метрики:
- Коэффициент доставки (Delivered / Sent).
- Коэффициент открытия (Opened / Delivered).
- Коэффициент клика (Clicks / Opened).
- Количество отписок (Unsubscribed).
Telegram предоставляет Webhook‑ответы с полями message_id, chat, text. Для аналитики можно хранить события в ClickHouse и строить дашборды с Grafana.
Оптимизация:
- Тестируйте заголовки и CTA (A/B‑тесты).
- Персонализируйте сообщения по сегменту.
- Устанавливайте ограничение по времени отправки (утром, вечером).
- Обрабатывайте отклики пользователей и автоматически удаляйте отписавшихся.
Сравнение Telegram‑бота и SMS‑рассылок
| Критерий | Telegram‑бот | SMS‑рассылка |
|---|---|---|
| Стоимость одного сообщения | 0 ₽ (только сервер) | от 3 ₽ за смс |
| Коэффициент открытия | до 80 % | ≈50 % |
| Возможность интерактивности | Кнопки, inline‑кнопки, клавиатура | Текстовое сообщение только |
| Регуляторные ограничения | Меньше ограничений, но требуется согласие | Строгие правила (GDPR, e-Privacy) |
| Скорость доставки | Мгновенная | От 10 сек до нескольких минут |
«Telegram обеспечивает более высокий уровень вовлечённости, чем традиционные каналы, благодаря своей интерактивности и мгновенной доставке».
Telegram CEO / Telegram
FAQ
- Как быстро добавить нового пользователя в рассылку? Нажмите кнопку «Подписаться» в чате, бот автоматически сохранит
chat_idв базе. - Можно ли отправлять файлы в рассылку? Да, используйте методы
sendPhoto,sendDocumentчерез API. - Какие лимиты накладывает Telegram на рассылки? Максимум 30 сообщений в секунду; ограничение на количество сообщений за день зависит от активности бота, но обычно составляет 30 000 сообщений.
- Как избежать блокировки бота за спам? Собирайте согласие, ограничьте частоту отправки, предоставьте кнопку «Отписаться» и удаляйте пользователей, которые не реагируют.
- Можно ли интегрировать Telegram‑бота с CRM? Да, используйте веб‑хуки и API для синхронизации данных о клиентах.
- Как измерять ROI от рассылок в Telegram? Отслеживайте клики по ссылкам, конверсии в CRM, сравните с затратами на инфраструктуру.