Разработка Telegram-бота для массовых рассылок в мобильном приложении

Почему массовая рассылка через Telegram требует очереди задач? Мы получаем много запросов на интеграцию Telegram-бота для рассылок. Open rate таких сообщений достигает 70–90% — против 20–25% у email. Но прямая отправка 50 000 сообщений за раз гарантированно приводит к бану: Telegram отвечает ошиб

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка Telegram-бота для массовых рассылок в мобильном приложении
Простой
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Почему массовая рассылка через Telegram требует очереди задач?

Мы получаем много запросов на интеграцию Telegram-бота для рассылок. Open rate таких сообщений достигает 70–90% — против 20–25% у email. Но прямая отправка 50 000 сообщений за раз гарантированно приводит к бану: Telegram отвечает ошибкой 429 Too Many Requests. Правильная реализация требует учёта rate limits и очереди задач. Мы предлагаем готовое решение под ключ, учитывающее все нюансы Telegram Bot API.

В этой статье вы узнаете, как построить отказоустойчивую систему рассылок, избежать бана и обеспечить доставку 99% сообщений. Мы поделимся архитектурными решениями, которые используем в коммерческих проектах.

Типичные проблемы клиентов: бот блокируется после первой массовой отправки, падает производительность из-за отсутствия буферизации, нет инструментов сегментации. Эти проблемы решаются с помощью очередей задач и динамической сегментации.

Многие разработчики пытаются обойти ограничения через мультиаккаунты или увеличение интервала. Это неэффективно: мультиаккаунты нарушают правила Telegram, а увеличение интервала растягивает рассылку на часы. Наш подход использует официальные возможности API и гарантирует соблюдение лимитов без риска бана.

Как Telegram ограничивает частоту сообщений?

Telegram разрешает отправлять максимум 30 сообщений в секунду для обычного бота и не более 20 сообщений в минуту в один чат. При превышении API возвращает 429 Too Many Requests с полем retry_after. Согласно документации Telegram Bot API, эти лимиты жёсткие.

50 000 получателей = минимум ~28 минут чистой отправки при правильном rate limiting. Реализация через простой цикл for с sendMessage упадёт на первой же крупной рассылке.

Правильный подход: очередь задач (Bull + Redis или RabbitMQ). Каждое сообщение — отдельная задача в очереди, воркер обрабатывает их с контролируемой скоростью (25 задач/сек с экспоненциальным backoff при 429).

Как организовать очередь задач для массовой рассылки?

Серверная часть: Node.js + Bull Queue + Redis. Администратор через мобильное приложение создаёт рассылку (текст, медиа, сегмент аудитории) → задача попадает в очередь → воркер отправляет с нужной скоростью → статус рассылки обновляется в реальном времени. Такой подход гарантирует, что бот не превысит лимиты и не будет забанен.

Мобильное приложение — панель управления: создание рассылки с rich text редактором, выбор сегментов аудитории, планирование по времени, просмотр статистики (отправлено/доставлено/ошибки).

Сегменты аудитории хранятся в PostgreSQL: теги, активность за последние N дней, язык интерфейса. SQL-запрос формирует список chat_id для конкретного сегмента прямо перед отправкой.

Как настроить очередь задач: пошаговая инструкция

  1. Установите Redis и запустите сервер.
  2. Создайте очередь в Node.js с помощью Bull: const Queue = require('bull'); const messageQueue = new Queue('notifications', { redis: { port: 6379 } });
  3. Добавьте в очередь задачу при получении команды от админа: messageQueue.add({ chatId, text });
  4. Настройте воркер с ограничением скорости: 25 задач в секунду, с повтором при ошибке 429 через 5 секунд.
  5. Запустите несколько воркеров для параллельной обработки.

Сравнение: очередь задач против цикла for

Очередь с backoff в 10 раз надёжнее прямого цикла for — при 50 000 получателей она снижает число ошибок 429 до нуля. Цикл for блокирует бота, очередь же адаптируется к лимитам.

Push-уведомления для администратора

Отметим: когда рассылка завершена или возникла ошибка (например, бот временно заблокирован), приложение должно уведомить администратора. Используем FCM push:

  • "Рассылка #42 завершена: 48 231 / 50 000 доставлено" — тип normal
  • "Ошибка: бот заблокирован пользователями (>30%)" — тип high

На клиенте (Flutter) используем flutter_local_notifications для foreground, firebase_messaging для background/terminated.

Аналитика и поддержание чистоты базы

Базовая метрика — delivery rate. Telegram не возвращает факт прочтения (нет read receipts для bot messages в личных чатах), но возвращает ошибки: 403 Forbidden — пользователь заблокировал бота, 400 Bad Request: chat not found — пользователь удалил аккаунт.

Эти ошибки автоматически помечают пользователей как неактивных и исключают из следующих рассылок — это важно для поддержания чистоты базы.

Что входит в работу

Этап Содержание Срок
Аналитика Аудит текущей архитектуры, определение сегментов, настройка метрик 3–5 дней
Проектирование Разработка схемы очередей, выбор стека, создание ТЗ 5–7 дней
Реализация Серверная часть (Node.js + Bull + Redis), мобильное приложение (Flutter), интеграция Telegram Bot API 10–15 дней
Тестирование Нагрузочное тестирование (имитация 50 000 сообщений), проверка rate limiting 3–5 дней
Деплой Настройка сервера, мониторинг, документация, обучение администратора 2–3 дня

Сравнение подходов к очередям

Решение Производительность Сложность Поддержка
Bull + Redis 50 000 сообщений за 3–5 минут Низкая Отличная
RabbitMQ 50 000 за 2–3 минуты Средняя Хорошая
Google Cloud Tasks 50 000 за 1–2 минуты Высокая Требуется GCP
Пример конфигурации очереди в Node.js
const Queue = require('bull'); const messageQueue = new Queue('notifications', { redis: { port: 6379 } }); messageQueue.process(async (job) => { try { await bot.sendMessage(job.data.chatId, job.data.text); } catch (error) { if (error.response && error.response.statusCode === 429) { const retryAfter = error.response.body.retry_after; await job.retry({ delay: retryAfter * 1000 }); } } }); 

Ориентировочные сроки

Полная система (сервер + мобильное приложение) — от 3 до 5 недель. Интеграция модуля в существующий бот и приложение — от 1 до 2 недель. Стоимость рассчитывается индивидуально после оценки объёма работ.

Свяжитесь с нами для детального обсуждения вашего проекта. Закажите консультацию — мы подберём оптимальное решение под ваши задачи.