--- name: "cp-automation" description: "Автоматизирует рутину контент-продюсера — сбор статистики, обработку заявок, выдачу материалов, уведомления, перенос данных между сервисами, подготовку отчётов — и начинает с расчёта окупаемости: процесс сначала описывается словами и считается в часах, и только потом собирается сценарий. Даёт архитектуру «триггер → условие → действие → обработка ошибок → уведомление» с обязательным блоком повторов и защиты от дублей, который в самодельных автоматизациях отсутствует чаще всего. Знает реальность инструментов в РФ: self-hosted платформа как основной путь и границы её лицензии, проблемы оплаты зарубежных облачных сервисов, российские платформы, конструкторы ботов. Отдельно разбирает автоматизацию публикации по площадкам и почему полная автоматизация публикации вредит. Сценарий диалога и тексты бота пишет cp-bot, здесь — интеграции и передача данных. Use when the user wants to automate a workflow, connect services, build a no-code scenario, schedule publishing, or collect stats automatically. Триггеры — «автоматизация», «n8n», «интеграция сервисов», «сценарий без кода», «вебхук», «автопостинг», «перенести данные между сервисами», «отчёт автоматом», «собирать статистику автоматически», «связать формы и CRM»." --- Перед применением прочитай [правила интеграции «Блог с нуля»](../../context/10-blog-runtime.md). Они задают единый запуск, текущий проект и производственные ограничения; не начинай второй независимый бриф. # cp-automation · Автоматизация процессов Автоматизация окупается не тем, что «сделано красиво», а сэкономленными часами. Поэтому скилл начинает с арифметики и половину задач закрывает ответом «не автоматизируй, делай руками». Вторая половина работы — сделать так, чтобы сценарий не разваливался молча. Самодельная автоматизация обычно работает две недели, потом падает на первой ошибке API, и никто об этом не узнаёт. ## Когда не этот скилл - Нужен **сценарий диалога, тексты узлов, прогрев, триггер-слова, deeplink** → `cp-bot`. Здесь — интеграции, вебхуки, передача данных, регламент ошибок. - Нужна **отправка писем, доставляемость, SPF и DMARC** → `cp-email`. - Нужно **собрать сайт, настроить хостинг и формы** → `cp-web`. Нужен **разбор самих чисел**, а не их сбор → `cp-analytics`, `cp-analytics-cross`. - Нужен **правовой вердикт** по обработке персональных данных → `cp-compliance`. ## Контекст Читай из `context/`: `09-tech-ru.md` §6 (что из автоматизации доступно в РФ и на каких условиях), §7 (Telegram Bot API), §2 (ограничения API Вебмастера и Метрики — они определяют расписание выгрузок), §8 (платежи); `03-legal-ru.md` §7 (персональные данные, локализация); `02-metrics.md` (что вообще выгружается по площадкам); `07-evidence.md`. Профиль бренда — `brands//`: `assets.md` (площадки, сервисы, доступы), `offer.md` (что продаётся — от этого зависит обработка заявок), `rules.md` (кто согласовывает публикации). Не нашлось — скажи одной строкой и работай по врезке ниже, факты спрашивай, не выдумывай. --- ## Врезка констант **Правило окупаемости.** Сначала процесс описывается словами и считается в часах, потом автоматизируется. Автоматизация процесса, который делается раз в месяц за 10 минут, не окупается никогда: экономия — два часа в год, сборка и поддержка съедят больше. **Обязательные части любого сценария:** триггер, условие, действие, **обработка ошибок**, **уведомление о сбое**. Первые три есть у всех, последние две — почти ни у кого. Это и есть главная дыра. **Инструменты в РФ (уровень A по лицензиям и доступности, `09-tech-ru.md` §6).** | Инструмент | Состояние | |---|---| | **Self-hosted платформа автоматизации (n8n)** | лицензия Sustainable Use: разрешено использование, копирование и создание производных **для собственных внутренних бизнес-целей**, а также личное и некоммерческое применение. Файлы с `.ee.` в имени требуют Enterprise-лицензии. **Свой инстанс под свои задачи — бесплатно и легально. Продажа доступа к своему инстансу клиентам — серая зона, читать текст лицензии перед тем, как продавать.** Основной рабочий путь | | **Облачная версия того же сервиса** | оплата российскими картами не проходит | | **Зарубежные облачные платформы автоматизации** | прямая оплата российской картой недоступна, в клиентские проекты не закладывать | | **Российские платформы автоматизации** | существуют, оплата в рублях, приоритет российских интеграций. **Конкретные цены и наборы интеграций проверять на дату** | | **Конструкторы ботов и автоворонок** | российские сервисы с визуальным конструктором, сегментацией, мини-CRM, интеграциями с российскими платёжками. Тарифы обычно по числу подписчиков. **Цифры проверять на дату** | **Цены не называются из памяти.** Ни тарифы платформ, ни стоимость серверов, ни комиссии платёжек. Нужна цифра — сверить на сайте сервиса на текущую дату. **Ограничения источников данных, от которых зависит расписание.** API Мониторинга запросов Яндекс.Вебмастера хранит **2 недели** истории и не отдаёт отдельный день внутри диапазона — историю копишь сам. Logs API Метрики отдаёт данные **за предыдущий день**. Значит, «отчёт за сегодня» технически невозможен, а выгрузка позиций реже чем раз в две недели означает дыры в истории навсегда. --- ## Вход Одним блоком. 1. Какой процесс автоматизируем — словами, по шагам, как он идёт сейчас. 2. Как часто он выполняется и сколько минут занимает каждый раз. 3. Кто его делает и что случается, если он не сделан. 4. Какие сервисы участвуют и есть ли к ним доступ по API. 5. Проходят ли через процесс персональные данные. 6. Кто будет чинить сценарий, когда он сломается. Если никто — это стоп-сигнал. 7. Где будет жить автоматизация: свой сервер, российская платформа, конструктор ботов. ## Процесс ### 1. Опиши процесс словами По шагам, с ответственным на каждом шаге и с местом, где шаг ломается. Пока процесс не описан — автоматизировать нечего: автоматизация неописанного хаоса даёт быстрый хаос. Побочный эффект: часть шагов на этом этапе отваливается как ненужная. Это лучший результат из возможных — процесс упростился и ничего не пришлось собирать. ### 2. Посчитай окупаемость ``` Часы в месяц сейчас = частота в месяц × длительность одного прохода Экономия в месяц = часы сейчас − часы после автоматизации (не ноль: остаётся контроль) Окупаемость (мес.) = часы на сборку ÷ (экономия в месяц − часы на поддержку в месяц) ``` Знаменатель ноль или меньше — **сценарий не окупается никогда**, так и скажи. Окупаемость больше года — почти всегда «нет»: за год изменятся и сервисы, и процесс. Считать честно: поддержка не равна нулю. API меняются, токены протухают, форматы данных плывут. **Что перевешивает арифметику.** Автоматизировать стоит и невыгодный по часам процесс, если: ошибка в нём дорого стоит (потерянная заявка, пропущенный дедлайн маркировки); процесс должен идти ночью и в выходные; данные исчезают, если их не забрать вовремя (см. 2 недели у Вебмастера). ### 3. Выбери уровень | Уровень | Когда | Цена вопроса | |---|---|---| | **Не автоматизировать** | редкий процесс, меняется каждый раз, творческий | ноль | | **Шаблон и чек-лист** | процесс редкий, но ошибки дорогие | час на составление | | **Готовая встроенная интеграция** между двумя сервисами | связка типовая | настройка в интерфейсе | | **Сценарий на платформе автоматизации** | 3+ сервиса, условия, расписание | сборка плюс поддержка | | **Свой код** | нестандартная логика, большие объёмы, особые требования к данным | нужен разработчик и дальше | Правило: **не поднимай уровень, пока предыдущий не уперся в потолок.** ### 4. Собери по архитектуре Блок ниже. Обработка ошибок пишется **сразу**, а не «потом, когда заработает». Потом не наступает. ### 5. Проверь на боевых данных и оставь наблюдение Тест на реальном примере, тест на пустом ответе, тест на ошибке сервиса. Дальше — журнал выполнений и уведомление о сбое в тот канал, который реально читают. --- ## Что автоматизируется в работе контент-продюсера | Процесс | Что автоматизируется | Что остаётся человеку | |---|---|---| | **Сбор статистики** | регулярная выгрузка из API площадок и счётчиков в одну таблицу или базу | интерпретация, выводы, решения | | **Публикация по расписанию** | постановка в очередь, публикация там, где есть API; напоминание там, где его нет | адаптация под площадку, первый час реакции, комплаенс | | **Обработка заявок** | приём из формы, запись в базу, уведомление ответственному, автоответ | ответ по сути, квалификация, продажа | | **Выдача материалов** | отправка файла после подтверждённого согласия, метка источника | сам материал → `cp-lead-magnet` | | **Уведомления** | новая заявка, оплата, ошибка сценария, приближение дедлайна | решение по уведомлению | | **Перенос данных между сервисами** | форма → база → CRM → рассылка, с сопоставлением полей | правила сопоставления, разбор конфликтов | | **Подготовка отчётов** | сбор чисел, расчёт, сборка таблицы, отправка по расписанию | текст выводов, объяснение аномалий → `cp-analytics-cross` | | **Рутина архива** | переименование, раскладка файлов, резервные копии, чистка мусора | что вообще хранить | **Что не автоматизируется никогда:** решение о публикации, ответ на негатив, правовой вердикт по креативу, разбор причин падения охватов, общение с клиентом по существу. --- ## Архитектура сценария ``` ТРИГГЕР → УСЛОВИЕ → ДЕЙСТВИЕ → ПРОВЕРКА РЕЗУЛЬТАТА │ успех ──────┴────── ошибка │ │ логирование ПОВТОР (N раз, с паузой) │ │ │ всё ещё ошибка │ │ └──── УВЕДОМЛЕНИЕ ───┘ ``` **Триггер.** Три вида: расписание, событие (вебхук, новая строка, новое письмо), ручной запуск. Расписание ставится под ограничения источника: смысла ходить в Logs API Метрики за данными сегодняшнего дня нет — их там не будет. **Условие.** Отсекает лишнее как можно раньше: дубли, пустые данные, тест, служебные записи. Дешевле не делать, чем делать и откатывать. **Действие.** Одно действие — один шаг. Шаг, который «отправляет письмо, пишет в базу и создаёт задачу», при падении оставляет систему в непонятном состоянии. **Проверка результата.** Не «код ответа 200» и на этом всё. Проверять, что вернулось то, что ожидалось: непустое, нужного типа, с нужными полями. Сервис может ответить успехом и не сделать ничего. **Обработка ошибок и повторов — обязательный блок.** | Механика | Как делать | |---|---| | **Повтор с паузой** | не сразу и не бесконечно: 2–3 попытки с растущим интервалом. Мгновенный повтор упирается в ту же временную ошибку и добивает лимит запросов | | **Разделение ошибок** | временные (таймаут, лимит частоты, 5xx) — повторяем; постоянные (неверный токен, 4xx, невалидные данные) — повторять бесполезно, сразу уведомление | | **Защита от дублей** | у каждой обрабатываемой записи есть ключ (идентификатор заявки, номер сообщения, дата+URL). Перед действием проверяется, не обработан ли ключ. **Без этого повтор создаёт вторую заявку и второе письмо человеку** | | **Таймаут** | у каждого внешнего вызова. Без него сценарий висит и блокирует очередь | | **Уважение лимитов API** | пауза между вызовами, разбиение на пачки. Лимиты — по документации сервиса на дату | | **Отстойник для сбоев** | необработанное складывается отдельно с текстом ошибки — чтобы вернуть в работу, а не потерять | | **Уведомление о сбое** | в канал, который читают: сообщение в мессенджер ответственному, а не запись в лог, куда никто не заходит. В тексте: какой сценарий, на каком шаге, какая запись, какая ошибка | | **Журнал выполнений** | видно, что сценарий отработал. **Отдельно ставится проверка «сценарий вообще запускался?»** — молчащая автоматизация выглядит так же, как исправная | **Правило одного сценария:** одна задача — один сценарий. Комбайн «на все случаи» невозможно ни отладить, ни починить. --- ## Безопасность | Правило | Как выглядит | |---|---| | **Ключи и токены — в хранилище учётных данных платформы или в переменных окружения** | не в теле узла текстом, не в коде, не в репозитории, не в переписке | | **Права по минимуму** | токен только на нужные методы и только на нужный объект. Токен «на всё» — потому что «так проще» — типовая причина крупных утечек | | **Отдельные учётные записи для интеграций** | не личный аккаунт владельца. Ушёл человек — интеграция не падает и доступ не утекает | | **Ротация** | токены и пароли меняются по регламенту и немедленно при подозрении. Утёкший ключ считается скомпрометированным, а не «вроде никто не видел» | | **Резервные копии сценариев** | экспорт конфигураций, хранится отдельно. Упавший сервер не должен уносить месяц работы | | **Доступ к самой платформе** | не открытый в интернет админ-интерфейс без пароля и второго фактора. Свой инстанс — своя ответственность за его защиту | | **Логи без чувствительных данных** | в журнал не пишутся пароли, токены, полные персональные данные | --- ## Правовое Информация на 04.08.2026, не юридическая консультация; применимость определяет юрист. Разбор ситуации — `cp-compliance`. **Автоматизация, через которую проходят персональные данные, — это обработка персональных данных.** Сценарий, перекладывающий заявки из формы в таблицу и в CRM, — часть системы обработки, а не «просто скрипт». Отсюда: - **уведомление в РКН до начала обработки**, политика, раздельные согласия — как и для сайта и бота; - **локализация** (ч. 5 ст. 18 152-ФЗ): запись, хранение и извлечение данных граждан РФ — в базах на территории РФ. **Зарубежный сервис в цепочке — это риск**, даже если он «только пересылает»: пересылка обычно сопровождается хранением; - **трансграничная передача** (ст. 12) — отдельное уведомление до начала передачи; - **утечка** (ч. 3.1 ст. 21) — уведомления в РКН **24 часа** и **72 часа**; отвечает оператор, даже если инцидент у подрядчика или у платформы. Практический вывод: первичная база — российская; зарубежные сервисы, если без них никак, получают обезличенные или агрегированные данные, а не контакты. Self-hosted решение на российском сервере снимает часть вопроса, потому что данные не покидают контур. **Автоматическая публикация не снимает обязанностей по рекламе.** Если сценарий публикует рекламный креатив, требования те же: слово «реклама», данные рекламодателя с ИНН, erid, полученный **до** публикации. Автопостинг, выкладывающий креатив без erid, — это состав нарушения, а не техническая накладка. --- ## Автоматизация публикации **Что реально автоматизируется — проверяется по документации площадки на дату.** Состав методов, права токенов и сами условия доступа меняются; из памяти не берутся. | Площадка | Обычно автоматизируется | Обычно руками | |---|---|---| | **Telegram** | публикация в канал ботом-администратором через Bot API, отложенная публикация нативными средствами | обсуждение под постом, реакция на комментарии | | **VK** | публикация и выгрузка статистики через API (`stats.get` для чисел; состав методов сверять по документации) | клипы и сторис — проверять доступность методов, ответы в комментариях | | **Дзен, RuTube, YouTube** | загрузка и выгрузка статистики там, где есть API — **проверять наличие и условия на дату** | обложка, заголовок под ленту, ответы | | **Instagram** (проект Meta Platforms Inc., деятельность которой запрещена на территории РФ) | публикация через Graph API с известными расхождениями с приложением (например, лимит слайдов карусели) | всё остальное; реклама на площадке запрещена | | **Сайт и рассылка** | публикация, отправка, сегментация | тексты и решение об отправке | **Почему полная автоматизация публикации часто вредит.** 1. **Правило оригинальности площадок.** Один и тот же материал, разосланный конвейером во все каналы без адаптации, площадки различают и режут. Адаптация — не украшение, это условие показа. Что менять под каждую площадку → `cp-platform-fit`. 2. **Комплаенс проходит человек.** Реклама или нет, нужен ли erid, можно ли размещать — решение принимается до публикации. Автомат его не принимает. 3. **Первый час решает.** Ответы на первые комментарии влияют на дальнейшую жизнь публикации. Робот, выложивший пост в три ночи, оставляет его без хозяина. 4. **Ошибка тиражируется мгновенно.** Опечатка в шаблоне уходит на пять площадок одновременно, и удалять придётся пять раз. 5. **Кросс-постинг с чужими водяными знаками и вертикалью не из той площадки** — самый узнаваемый признак конвейера. **Рабочая граница:** автоматизируй **подготовку и доставку** — сборка очереди, напоминания, загрузка файлов, простановка меток, сбор статистики после публикации. Оставляй человеку **решение о публикации и первую реакцию**. Это даёт большую часть экономии без цены за конвейер. --- ## Выход ``` ПРОЦЕСС: <название> как идёт сейчас: <шаги словами, кто делает, где ломается> ОКУПАЕМОСТЬ частота: × = <часы в месяц> после автоматизации остаётся: <часы> сборка: <часы> · поддержка: <часы в месяц> окупаемость: <месяцев> → ВЕРДИКТ: <автоматизируем / не окупается, делаем руками> УРОВЕНЬ РЕШЕНИЯ <не автоматизировать / чек-лист / встроенная интеграция / сценарий на платформе / код> где живёт: <свой сервер / российская платформа / конструктор> — почему СЦЕНАРИЙ триггер: <что и когда, с учётом ограничений источника> условие: <что отсекаем> действия: <шаг 1 → шаг 2 → …> проверка: <что считаем успехом, кроме кода ответа> ошибки: <повторы N с паузой; временные против постоянных; ключ защиты от дублей; отстойник> уведомление: <куда, кому, с каким текстом> журнал: <где смотреть, кто и как замечает, что сценарий не запускался> ДОСТУПЫ И СЕКРЕТЫ <что где хранится, у какого токена какие права, кто владелец> ПРАВОВОЕ ПДн в цепочке: <да / нет> → <локализация, согласия, уведомление РКН> → cp-compliance ПРОВЕРИТЬ НА ДАТУ <лимиты и методы API площадок, тарифы платформ, условия лицензии> ``` ## Чек-лист перед выдачей - Процесс описан словами до того, как предложен сценарий. - Окупаемость посчитана; если не окупается — так и написано, сценарий не собирается. - В сценарии есть все пять частей, включая обработку ошибок и уведомление. - Есть защита от дублей по ключу, есть разделение временных и постоянных ошибок. - Есть ответ на вопрос «как мы узнаем, что сценарий вообще перестал запускаться». - Секреты не в теле сценария, права токенов минимальны, названы владельцы доступов. - Названо, кто чинит сценарий при поломке. - Расписание согласовано с ограничениями источников (T-1 у Logs API, 2 недели у Вебмастера). - Правовой блок пройден: где лежат персональные данные и нет ли зарубежного сервиса в цепочке. - По автопубликации разведено: что автомат, что человек, и почему. - Ни одной цены и ни одного лимита API не названо из памяти. ## Красные линии 1. **Не автоматизировать неописанный процесс.** Сначала слова и часы, потом сценарий. 2. **Не собирать сценарий без обработки ошибок и уведомления о сбое.** Молчащая автоматизация хуже её отсутствия: на неё рассчитывают. 3. **Не хранить токены и ключи в теле сценария, в коде и в репозитории.** 4. **Не пропускать персональные данные граждан РФ через зарубежные сервисы** ради удобства интеграции. 5. **Не называть цен, тарифов и лимитов API из памяти** — только после проверки на дату. 6. **Не продавать доступ к своему self-hosted инстансу**, не прочитав текст лицензии: это серая зона, а не «все так делают». 7. **Не автоматизировать решение о публикации и комплаенс.** Erid и вердикт «реклама или нет» — человек. 8. **Не делать конвейерную рассылку одного материала во все площадки без адаптации.** Правило оригинальности площадок — не формальность. 9. **Не строить сценарий, который некому чинить.** Автоматизация без владельца — отложенная авария.