Автоматизация всегда падает: вопрос лишь в том, узнаете ли вы об этом
Любая интеграция однажды ломается: у площадки кончился лимит, сервис ответил ошибкой, сеть моргнула. Всё решает то, что происходит потом: система досылает потерянное сама или вы узнаёте о пропавшей заявке от клиента. Разбираю на своём хозяйстве, из чего это собирается.

Любая интеграция однажды ломается: у площадки кончился лимит, сервис ответил ошибкой, сеть моргнула на две секунды. Это не признак плохой работы - это нормальный режим жизни системы, которая ходит наружу. Разница между рабочей автоматизацией и красивой демкой не в том, ломается ли она, а в том, что происходит в следующую минуту.
Ломается на стыках
У меня был показательный случай: восемь площадок одновременно попросили у нейросети текст под свой формат, шлюз ответил "слишком много запросов", и все восемь публикаций встали намертво с красным статусом. Формально система отработала честно. По сути - потеряла материал на ровном месте, потому что через минуту тот же запрос прошёл бы спокойно.
У каждого свои ограничения на число обращений в минуту, свои редкие часы недоступности и своё представление о том, сколько можно думать над ответом.
Поэтому надёжность здесь - это заранее решённый вопрос, что делать с чужими ошибками. По каждому стыку я отвечаю на три: отказ временный или окончательный, можно ли повторить безопасно и кто узнает, если повторы не помогли.
Временный отказ и окончательный - разные истории
- Превышен лимит обращений, сервис не ответил вовремя, оборвалась связь, у площадки сбой на своей стороне.
- Окончательный. Неверный ключ доступа, площадка отказала по правилам, текст не проходит модерацию. Повторять бессмысленно - нужен человек.
- Неизвестный. Сервис ответил чем-то нечитаемым. Пара попыток, и если не помогло - относимся как к окончательному.
Самая частая ошибка проектирования - считать любой сбой поводом остановиться. Разделение выглядит очевидным ровно до того момента, когда его надо описать в коде. Именно на этом шаге выясняется, что "ошибка" в вашей системе - это одно слово на все случаи жизни, и любое решение по ней принимает человек вручную.
Повтор должен быть безопасным
Повторять можно только то, что не сделает работу дважды. Если запрос успел дойти, а ответ потерялся по дороге, слепой повтор превращается в два одинаковых письма клиенту или два одинаковых поста в ленте.
Поэтому система должна помнить не только итог, но и то, где именно остановилась: взяли в работу, отправили, получили подтверждение от площадки.
Проверьте себя
Возьмите любой свой автоматический сценарий и мысленно оборвите ему связь ровно в середине. Если после этого нельзя нажать "повторить" не думая - у сценария нет состояния, и однажды он сделает работу дважды.
Очередь вместо героизма
Очередь - это простая таблица: что нужно сделать, когда можно попробовать снова, сколько раз уже пробовали. Отдельный сторож раз в несколько минут забирает оттуда просроченное и запускает заново.
Это скучная конструкция, но именно она превращает хрупкую цепочку в систему, которая переживает ночной сбой провайдера без единого потерянного письма. И она же снимает с вас необходимость сидеть рядом: пока очередь разбирается сама, ваше внимание не нужно.
Кто узнает, когда всё-таки не вышло
Дальше начинается то, что обычно делают хуже всего - уведомления. Я долго жил с сообщениями вида "ошибка в процессе, подробности в логе" и на третий день перестал их открывать: такое сообщение создаёт ощущение контроля, которого нет.
- Что именно упало. В сообщении должны стоять конкретная статья и конкретная площадка. Человек должен понять контекст, не открывая систему.
- На каком шаге. Отправка, подготовка текста, загрузка картинки. Шаг сужает поиск причины.
- Что ответил сервис. Настоящий текст ошибки целиком. Именно он отвечает на вопрос "это чинится само или руками".
- Куда нажать. Ссылка прямо на карточку записи. Без неё сообщение превращается в задание "найди сам".
И обратное правило: ожидаемые отказы не должны звенеть вообще. У одной площадки тариф ограничивает число публикаций в сутки - система помечает такую отправку неуспешной и молчит, потому что делать с этим нечего. Уведомления имеют смысл ровно до тех пор, пока каждое из них требует действия.
Что это даёт вам в деньгах
Посчитайте на своих. Одно письмо с заявкой, потерянное на минутном сбое, при среднем чеке 50 000 рублей и конверсии в сделку 30 процентов - это 15 000 рублей, за которые вы уже заплатили рекламой. Очередь досылает потерянное сама, а уведомление с текстом ошибки и ссылкой сразу показывает, что чинить, - без блуждания по логам вручную.
Главный эффект - доверие. Автоматизацией, которая молча теряет работу, пользоваться нельзя: её приходится перепроверять, и она перестаёт экономить время. Как только сбои становятся видимыми и обратимыми, систему можно оставить работать одну.
Ничего сложного тут нет - всё это делается в том же инструменте, где у вас уже живёт автоматизация. Требуется другое: заранее признать, что ломаться будет, и заложить на обработку поломок отдельное время.
Похожая задача?
Если у вас есть автоматизация, которой вы не доверяете и потому перепроверяете руками - опишите задачу в оценщике. Отвечу с планом, вилкой стоимости и расчётом экономии.
Новые разборы - на почту
Разборы задач автоматизации: что автоматизировать, сколько это стоит и что даёт в цифрах. Одно письмо на статью, без рекламы чужих продуктов.


