// модуль · рассылки

Рассылка по чатам

Аккаунты ходят по своим чатам и пишут в каждый свой текст — в своём ритме и в свои часы. Настройка живёт на пяти уровнях, и частное всегда перебивает общее: до связки «этот аккаунт → этот чат» вы спускаетесь только там, где это важно.

// что она решает

Один текст на триста чатов узнают сразу

В трёх чатах сидят одни и те же люди. А ровный интервал выдаёт флот — все ваши рабочие аккаунты — даже без чтения текста.

Свой текст на каждую пару. Общий текст кампании — только нижний слой. Поверх ложится текст аккаунта, поверх него — текст на связку «этот аккаунт → этот чат». Пустое поле не затирает то, что задано выше.
Ни одной фиксированной паузы. Пять разных пауз, и каждая задаётся вилкой «от и до»: софт выбирает внутри неё случайное значение заново каждый раз.
Отказ чата не роняет кампанию. Медленный режим, капча, бан — это свойство чата, и откладывается чат. Ограничение аккаунта — свойство аккаунта, и с круга снимается он, а чаты остаются чистыми.

// что настраивается

Пять уровней, и каждый следующий перебивает предыдущий

УровеньЧто здесь задаётся
Кабинетумолчания на всё сразу
Кампаниясвои паузы, круги, расписание, тексты
Аккаунтсвой список текстов — на отправку берётся случайный
Чатсвоё «не чаще чем» для этого чата
Связка «этот аккаунт → этот чат»свой текст именно в этот чат именно с этого аккаунта

Текст

четыре очереди

Софт берёт первое, что нашёл: текст связки, текст аккаунта, «Избранное» аккаунта, общий текст кампании. Избранное никогда не перебивает личные тексты. Поверх любого работает спинтакс {привет|здравствуйте} — вариант выбирается заново на каждую отправку.

Ритм и круги

везде вилка от–до

Между чатами 30–60 секунд, отдых между кругами 60–180, следующий аккаунт выходит через пять минут после предыдущего. Плюс «не чаще чем» на пару «аккаунт + чат» и отдельно на конкретный чат. Круг у каждого аккаунта свой: медленный не тормозит быстрых, а отметка «в этот чат в этом круге уже писали» переживает перезапуск сервера.

Расписание

свой часовой пояс

Несколько окон времени, окно через полночь, галочки по дням недели. Вне окна кампания не останавливается, а засыпает и просыпается сама: время проверяется на старте, перед каждым кругом и перед каждым следующим чатом.

Когда сообщение не ушло, софт не гадает

Ошибку читает один общий разборщик и делит все беды на три сорта: свойство чата, состояние аккаунта, обрыв связи.

  • медленный режим — чат откладывается ровно на срок, который назвал Telegram; капча и бан — на семь суток; чат исчез — на тридцать
  • мёртвый прокси помечается как связь, а не как аккаунт, и только после проверки самого прокси
  • пять ошибок подряд — софт спрашивает у @SpamBot и берёт официальный ответ, не чаще раза в трое суток на аккаунт

// честные границы

Чего рассылка не делает

Ответственность за рассылку — на вас. Мы даём инструмент, а кому и что отправлять, решаете вы. Реклама по сетям связи распространяется только с предварительного согласия получателя (ст. 18 закона «О рекламе»), правила Telegram тоже соблюдаете вы, и данные людей, которых вы собрали, — ваша зона ответственности как оператора персональных данных.
Потолка «столько-то сообщений в сутки с аккаунта» нет. Рассылка управляет частотой и часами, а не суммой за день. Норму держите вы — паузами, окнами и размером кампании.
Только группы и супергруппы, одно вложение. Каналы, личные переписки и боты исключены — личные сообщения это отдельный модуль. Из вложений фото или видео, по одному: ни альбомов, ни документов, ни кнопок под сообщением.
Состав кампании фиксируется на старте. Добавили аккаунт, сняли галочку с чата — вступит в силу со следующего запуска, а не посреди круга.

Назовите объём — назовём цену

Сколько аккаунтов, сколько чатов и какой поток сообщений — этого достаточно для расчёта.