Skip to content

Рассылки

Рассылки по базе создаются из кабинета и отправляются фоновым воркером — веб-интерфейс не блокируется, а прогресс виден вживую. История хранит последние 30 рассылок со счётчиками отправленных и ошибок.

Нужен воркер

Отправкой занимается воркер (taskiq). Если воркер не запущен, рассылка останется в статусе pending и никуда не уйдёт.

Создание рассылки

  1. Выберите аудиторию — рядом с каждым сегментом кабинет показывает живой счётчик получателей.
  2. Напишите текст (до 4096 символов, поддерживается HTML-разметка Telegram).
  3. При желании прикрепите медиа и добавьте кнопку.
  4. Отправьте — рассылка появится в истории и начнёт выполняться.

Рассылка с пустой аудиторией не создастся — кабинет вернёт ошибку audience is empty.

Аудитории

Сегмент определяется статусом текущей подписки пользователя. Во всех случаях берутся только активные пользователи бота (не заблокированные, с Telegram ID).

АудиторияКто попадает
allВсе пользователи бота
activeПодписка в статусе ACTIVE или LIMITED (исчерпан трафик)
trialПодписка в статусе TRIAL
expiredПодписка в статусе EXPIRED или DISABLED

Общее число получателей (total) фиксируется в момент создания рассылки.

Контент

Медиа — четыре типа: text, photo, video, gif (отправляется как анимация, текст становится подписью). Файл сначала загружается через кабинет: до 20 МБ, форматы .jpg / .jpeg / .png / .webp / .gif / .mp4.

Премиум-эмодзи — можно указать emoji_id кастомного эмодзи: он подставится перед текстом через <tg-emoji>; у клиентов без поддержки отобразится обычная ⭐.

Кнопка — одна inline-кнопка под сообщением (текст до 64 символов). Два режима:

РежимЧто делает
URLОткрывает внешнюю ссылку
Действие ботаОтправляет пользователя в раздел бота (act:<действие>) — те же действия, что и у кнопок меню, см. Конструктор меню

Цвет кнопки задаётся HEX-кодом, но Telegram поддерживает только три пресета — код автоматически сводится к ближайшему: преобладает зелёный канал → success, красный → danger, иначе → primary.

Живой прогресс

Статусы рассылки: pending (создана, ждёт воркера) → runningdone. Пока рассылка идёт, кабинет опрашивает её состояние и показывает прогресс-бар: воркер коммитит счётчики sent / failed в базу каждые 25 сообщений, поэтому цифры растут прямо на глазах. У завершённой рассылки видны время старта и финиша.

Скорость и лимиты Telegram

Воркер шлёт с паузой 36 мс между сообщениями — примерно 28 сообщений в секунду, с запасом под глобальный лимит Telegram в 30/с. Рассылка на 10 000 получателей занимает около 6 минут.

Если Telegram всё же вернёт flood-wait (TelegramRetryAfter), воркер подождёт указанное время и повторит отправку этому получателю ещё один раз.

Кто попадает в ошибки

Счётчик failed растёт на:

  • пользователях, заблокировавших бота (TelegramForbiddenError);
  • удалённых/деактивированных аккаунтах;
  • повторной неудаче после ожидания flood-wait;
  • любой другой ошибке отправки конкретному получателю.

Ошибка по одному получателю не останавливает рассылку — воркер идёт дальше по списку. Заметная доля failed в сегменте all — это нормально: база копит «мёртвые души» из тех, кто заблокировал бота.

Ошибки — это тоже данные

Разница total − sent показывает реальный охват базы. Если хотите оценить живую аудиторию перед платной кампанией — сравните счётчики последней рассылки по all.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов