Мультипостинг обычно продают как одну кнопку: написали пост, отметили каналы, нажали «опубликовать». На деле одна кнопка запускает несколько отдельных выпусков, и у каждого свой исход. В одном канале пост вышел, в другом ответ не дошёл, в третьем не хватило прав, а четвёртый ждёт своего времени. Чтобы разобраться в этом без дублей, нужен лист выпуска: одна строка на канал, проверка поста в самом канале и понятное следующее действие для каждого статуса.
Считайте каждый канал отдельным выпуском. До отправки зафиксируйте утверждённую версию текста и медиа для каждого канала. Подтверждённой публикация становится только тогда, когда человек открыл пост по ссылке и сверил текст, медиа и ссылки. Если ответ не пришёл, не отправляйте пост заново: сначала сверьте канал и очередь планировщика. Пока картина неясна, строка остаётся «неизвестно». Явную ошибку исправьте и повторите отправку только в этот канал. Запланированный пост правьте или отменяйте до выхода. В каналы, где пост уже подтверждён, повторно ничего не отправляйте.
Один пост, несколько отдельных выпусков
Читатель видит один пост в нескольких местах. Тот, кто выпускает, видит несколько отправок, и каждая заканчивается по-своему. Итог «опубликовано частично» сам по себе ничего не решает: редактору нужно знать, где пост вышел, где нет и где это пока неизвестно.
Удобнее всего показать это на Telegram, у него подробная документация. Если ответ Bot API дошёл, это JSON с обязательным полем ok. Если оно истинно, результат лежит в поле result, если ложно, причину описывает поле description (Telegram Bot API). Метод sendMessage при успехе возвращает отправленное сообщение (описание метода). Но ответ может и не прийти, и тогда ни одного из этих полей у вас нет.
Даже успешный ответ не всегда значит, что пост уже в канале. Номер сообщения уникален только внутри одного чата. В отдельных случаях он равен нулю: например, видео для большого чата сервер может поставить в очередь вместо немедленной отправки, и до отправки таким сообщением пользоваться нельзя (объект Message). Поэтому номер из ответа стоит записать, но выходом поста его не считать.
Вторая граница проще. Ответ площадки сообщает, как прошёл запрос. Сколько людей увидели пост, из него не узнать, и лист выпуска на этот вопрос не отвечает. Поля ok и message_id относятся к Telegram, у других площадок ответ может выглядеть иначе, поэтому статусы в листе не привязаны к полям конкретного API.
Лист выпуска: что записать по каждому каналу
Лист заводят на один утверждённый пост: одна строка на канал. Вести его можно в таблице, в карточке задачи или в комментарии к публикации в планировщике. Важнее другое: строки появляются до отправки, и ведёт их один человек.
- Версия. Какой текст и какие медиа уходят в этот канал. У короткого варианта для отдельного канала свой номер. Утверждённую версию не правят: правка означает новую версию и новое утверждение.
- Канал и время. Куда и когда уходит пост. В REKLA, например, один пост можно запланировать в несколько каналов, а время задать для каждого отдельно или общее для всех (документация REKLA).
- Квитанция. Что ответила площадка или планировщик: статус, номер, ссылка. Это запись того, что сказала система. Что пост в канале и выглядит как надо, она не доказывает.
- Проверка в канале. Редактор открыл пост по ссылке и сверил текст, медиа, ссылки и подпись с утверждённой версией. Только эта отметка переводит строку в «подтверждён».
- Статус. Один из четырёх: подтверждён, неизвестно, ошибка, запланирован.
- Следующее действие и кто его делает. Пустым это поле бывает только у подтверждённых строк.
Неизменная версия нужна, чтобы потом было понятно, какой вариант где вышел. Если текст правят, когда часть каналов уже получила пост, лист превращается в догадки. Есть и техническая причина. В REKLA правка текста сбрасывает автоподпись во всех каналах, и её приходится настраивать для каждого канала заново (там же). Другие сервисы могут вести себя иначе, но после массовой правки я бы в любом случае проверял каждый канал отдельно.
Условный пример: анонс в четыре канала
Пример условный. Каналов А, Б, В и Г не существует, запросы к площадкам не отправлялись, поэтому ссылок и номеров сообщений в таблице нет. Пост — анонс открытого эфира, версию 3 утвердил редактор, для двух каналов сделан короткий вариант 3к. Так выглядит лист после первого прохода.
| Канал и версия | Что записано | Решение |
|---|---|---|
| А, версия 3, полный текст с картинкой | Ответ об успехе. Редактор открыл пост и записал ссылку. Текст, картинка и ссылка на регистрацию совпадают с версией 3 | Подтверждён. Больше в А ничего не отправлять |
| Б, версия 3к, короткий текст | Ответ не пришёл: соединение оборвалось во время отправки | Неизвестно. Не повторять, сначала сверить канал и планировщик |
| В, версия 3, полный текст с картинкой | Явный отказ: у бота нет прав на публикацию в канале | Ошибка. Администратор выдаёт права, затем отправка только в В и проверка |
| Г, версия 3к, короткий текст | Стоит в планировщике на 19:00, статус «запланирован» | Запланирован. В 19:00 открыть канал, сверить пост, записать ссылку |
Через несколько минут редактор открывает канал Б и находит анонс. Пост вышел, потерялся только ответ. Строка закрывается ссылкой и отметкой проверки. Повтори кто-нибудь отправку сразу, в Б мог бы появиться второй такой же анонс.
Если бы поста в Б не оказалось, это ещё не доказывало бы, что он не выйдет: отправка могла застрять в очереди. Строка остаётся «неизвестно», повторов нет, а тот, кто отвечает за планировщик и канал, сверяет их фактическое состояние. Повторить отправку в один этот канал можно только после того, как он подтвердил, что ни ожидающей, ни идущей отправки нет. После повтора строку снова проверяют в канале. Каналы А и Г в это время никто не трогает, а В ждёт администратора с правами.
Что делать, если пост вышел не везде
Повторяют не пост, а отправку в конкретный канал, и только когда подтверждено, что поста там нет и он нигде не ждёт отправки. Остальные правила вытекают из этого.
Опасность повтора после потерянного ответа не придумана для Telegram. В руководстве Microsoft по шаблону повторных попыток разобран именно такой случай: сервис получил запрос и выполнил его, но не смог отправить ответ, а логика повтора отправила запрос ещё раз (Retry pattern). Если операция не идемпотентна, то есть повтор небезопасен и даёт новый результат, она может выполниться дважды. Публикация поста попадает в эту категорию, если площадка сама не распознаёт повтор.
Там же временные сбои отделены от постоянных. Временные, вроде обрыва связи или занятого сервиса, часто проходят после паузы. Постоянные повтором не лечатся: операцию останавливают и сообщают о сбое. Для листа это значит, что нехватку прав или неверный адрес канала сначала исправляет человек. У Telegram есть подсказка и для временного случая: при срабатывании ограничения частоты в ответе может прийти retry_after, число секунд до повторного запроса (ResponseParameters). Раньше этого срока отправку в канал я бы не повторял.
| Статус | Как понять | Что делает человек |
|---|---|---|
| Подтверждён | Пост открыт по ссылке, текст, медиа и ссылки совпадают с версией | Закрывает строку и больше в этот канал не отправляет. Ошибку в вышедшем посте исправляют правкой или заменой по решению редактора |
| Неизвестно | Ответ не пришёл, пришёл без ссылки или с номером сообщения 0 | Не повторяет. Ищет пост в канале и в планировщике. Нашёл — сверяет и закрывает. Не нашёл или картина неясна — оставляет «неизвестно» и просит ответственного за планировщик и канал сверить их состояние. Повтор только в этот канал и только после подтверждения, что ожидающей или идущей отправки нет |
| Ошибка | Площадка явно отказала и назвала причину | Сначала устраняет причину: права, адрес канала, формат. При ограничении частоты ждёт указанный срок. Потом отправка только в этот канал |
| Запланирован | Пост в очереди, время выхода не наступило | Вручную не отправляет. Правки и отмену делает до выхода, в момент выхода проверяет канал |
Ответ на повторную отправку весит столько же, сколько первый: это квитанция. Подтверждённой строка становится только после проверки в канале.
Правки, отмена и границы листа
Запланированный и вышедший пост ведут себя по-разному. В REKLA отмена применяется только к запланированной публикации. Для вышедших постов документация отдельно перечисляет ручное удаление и автоудаление (документация REKLA). Поэтому решение снять анонс, который вышел не везде, распадается на две части: отмену там, где пост ещё запланирован, и отдельное решение для каналов, где он уже вышел. Какие действия там доступны, зависит от площадки и сервиса. Что делать в каждом канале, решает редактор, а лист фиксирует, что сделано.
Если ошибку в утверждённой версии нашли, когда часть каналов уже получила пост, исправленный текст получает новый номер. Для каналов, куда он пойдёт, заводят новые строки. Старые остаются как есть: по ним видно, что и где висело.
Чего лист не даёт. Он не гарантирует, что в каждом канале окажется ровно одна копия: если ответ потерян, а пост в канале не заметили, дубль возможен. Лист делает каждый повтор решением с записанной причиной. Охват он тоже не измеряет: ссылка подтверждает, что пост есть, но не что его прочитали. И правил самих площадок он не заменяет. Сколько ждать и сколько раз пробовать, зависит от конкретного сервиса и цены ошибки (Retry pattern).
Для публикаций на собственном сайте мы делаем похожую приёмку: сверяем опубликованные файлы с принятой версией по контрольной сумме и смотрим страницу снаружи, а не только запись о развёртывании. Соцсетей эта практика не касается, её ход описан в разборе о тестировании ИИ-агентов. Где публикация стоит в общем пути материала, от спроса до метрик, показано в статье «Как создать контент-завод».
Источники и методика
Проверено 23 октября 2026 года.
- Telegram Bot API: формат ответа, метод sendMessage, объекты Message и MessageId, ResponseParameters с полем retry_after. Это документация платформы, а не данные о доставке или охвате.
- Microsoft Azure Architecture Center: Retry pattern. Общее руководство по архитектуре, Telegram оно не описывает.
- REKLA: «Мультипостинг и массовый менеджмент». Документация одного продукта. Упоминание не означает рекомендацию, оценки сервиса о самом себе в статью не вошли.
Лист выпуска, статусы и правила повтора — рекомендуемый метод автора, а не результат замеров. Пример с каналами А, Б, В и Г условный: запросы не отправлялись, ссылки и номера сообщений не приводятся.
