Affroom + ROIAds - AI SEO-конвейер для статей и обложек
Система ведет контент для Affroom и ROIAds из одной Гугл-таблицы - анализирует выдачу, пишет SEO-статью, собирает Гугл-док, делает обложку и возвращает ревью в маршрут.
- Старт статьи
- ТЗ и источники отдельно → одна строка в таблице
- Два бренда
- правила держались вручную → проект выбирает стиль и ограничения
- Ревью
- правки после замечаний руками → комментарии возвращают статью в маршрут
Affroom + ROIAds - AI SEO-конвейер для статей и обложек

- ТЗ и источники отдельно → одна строка в таблицеСтарт статьи
- правила держались вручную → проект выбирает стиль и ограниченияДва бренда
- правки после замечаний руками → комментарии возвращают статью в маршрутРевью
- отдельный ручной хвост → cover_ready без перезапуска статьиОбложка
Проблема
Affroom и ROIAds нужно было выпускать SEO-материалы с разными правилами текста, FAQ, CTA и обложек, но путь от темы до готового документа держался на ручной сборке источников, конкурентов, статусов и правок.
Задача
У SEO-команды было две площадки - Affroom и ROIAds. Для каждой статьи нужно было собрать тему, H1, интент, конкурентов, источники, FAQ, CTA, будущую обложку и требования к стилю. После этого редактор должен был получить не сырой ответ модели, а нормальный Гугл-док, где можно читать, комментировать и возвращать материал на доработку.
Главная сложность была не в том, чтобы один раз сгенерировать текст. Нужно было собрать рабочий контур, который понимает разные правила Affroom и ROIAds, не теряет строку, не забирает одну задачу дважды, не выпускает оборванный материал и показывает человеку понятный статус.
Что я собрал
Я собрал self-hosted контур на n8n, где Гугл-таблица стала пультом управления материалами. SEO-специалист выбирает проект, заполняет строку, ставит статус ready, а система сама берет задачу в ближайший цикл.
Рабочий маршрут выглядит так:
строка в Гугл-таблице
→ проверка обязательных полей и настроек проекта
→ анализ выдачи и источников
→ план статьи, ссылок, CTA и визуалов
→ генерация и редактура текста
→ локальная проверка качества
→ Гугл-док, обложка и статус в таблице
Перед платными шагами строка получает статус in_progress, поэтому соседний запуск не забирает ту же задачу повторно. Если входные данные неполные, строка не тратит Ахрефс и OpenRouter, а получает invalid с причиной в таблице.
Для Affroom контур держит ч/б editorial-стиль обложек без embedded logo, потому что логотип накладывает админка сайта. Для ROIAds работает отдельное правило - 3D-объект, чистый фон из брендовой палитры и минимум поддерживающих элементов вместо каши из интерфейсов.
Примеры рабочих сценариев
Обычная статья. В строке есть проект, тип статьи, тема, H1, язык и источники. Система проверяет вход, смотрит выдачу, собирает план, пишет материал, создает Гугл-док и обложку. Редактор получает ссылку и видит итог прямо в таблице.
Статья с источником. Если в строке есть URL или несколько источников, система забирает их до генерации. Из них вытаскиваются заголовки, ссылки, списки, таблицы и текстовый sample. Эти факты идут в план и текст как источник правды, а не как мягкая подсказка.
Материал на проверке. Если текст оборвался, потерял FAQ, стал слишком коротким или содержит неподтвержденные коммерческие утверждения, система не делает финальную обложку. Она создает review-док, пишет needs_review и объясняет, что нужно поправить.
Правки по комментариям. Редактор оставляет комментарии в Гугл-доке или пишет короткую правку в таблицу. Отдельный сценарий читает документ, собирает открытые комментарии, переписывает материал и снова прогоняет финальную проверку. Рабочая ссылка на документ остается стабильной, а старая версия сохраняется как snapshot.
Только обложка. Если текст уже принят, можно поставить статус cover_requested. Тогда система не переписывает статью заново, не гоняет ее через полный цикл и не тратит лишние шаги. Она читает текущий документ, делает обложку и возвращает cover_ready.
Разные брендовые правила. Одна и та же таблица ведет Affroom и ROIAds, но проектные настройки меняют тон, FAQ, CTA и визуальный стиль. Это важно - система не делает одну универсальную статью для всех, а держит отдельный контур правил для каждого бренда.
Где оставлен человеческий контроль
В этом проекте я не делал вид, что AI может сам отвечать за все. Система берет на себя сборку, анализ, черновик, документ, обложку и статусы, но редактор остается там, где нужен вкус и ответственность.
Если фактов не хватает, материал останавливается на проверку. Если комментарий требует новый факт, которого нет в источниках, строка возвращается в ревью. Если клиент хочет поменять постоянное правило проекта, это делается через настройки проекта в таблице, а не через правку каждого сценария руками.
Что защищает процесс от зависаний
Отдельно закрыл операционные края, которые обычно всплывают уже после запуска.
- один тик берет максимум одну основную строку, чтобы не плодить дорогие параллельные ветки
- строка получает
in_progressдо Ахрефс и OpenRouter - пустая очередь заканчивается тихо и не вызывает платные API
- ошибки входа пишутся как
invalid, а не превращаются в скрытый сбой needs_reviewне создает финальную обложку до принятия текста- ревизии по комментариям снова проходят проверку, а не заменяют текст вслепую
- после лимита чтения Гугл-таблиц все Гугл-ноды получили длинный retry, а соседние сценарии разнесены по расписанию
Результат
Получился не одиночный генератор текста, а управляемый SEO-конвейер для Affroom и ROIAds. Команда видит, где находится каждая статья, почему материал остановился, где ссылка на Гугл-док, где обложка и что делать дальше.
Для похожего бизнеса это ценно не только скоростью. Такой контур убирает ручную сборку вокруг статьи и делает процесс проверяемым - задача не теряется между таблицей, документом, источниками, обложкой и правками.
WordPress-публикация оставлена отдельным шагом, потому что для нее нужны согласованные категории, теги и правила featured image. В этом кейсе основной результат - готовый документ, обложка, понятный статус и маршрут ревью.
Похожие задачи
Affroom и ROIAds получают управляемый контентный контур - задача, анализ, текст, Гугл-док, обложка, ревью и статус видны в одном процессе.