Содержание ↓
Я руковожу интернет-маркетингом hh.ru и с 2025 года пишу для своей команды AI-инструменты. Часть автоматизаций крутится на n8n, в Docker на своём сервере, рядом с кодом Marketing OS. Самая неприятная поломка случилась уже в эксплуатации, и её долго никто не замечал.
Поэтому n8n для маркетинга я оцениваю по двум вещам: сколько ручной работы снимает сценарий и как быстро я узнаю, что он сломался. Ниже шесть сценариев с разбором по узлам и чек-лист, который я прохожу перед запуском. Цены, лицензию и ссылки я сверял 26.09.2026. Инструкции по установке здесь нет, её пишут хостеры.
Что такое n8n простыми словами и сколько он стоит
n8n собирает процесс из блоков на холсте. Каждый блок, в n8n он называется узлом, делает одно действие: забирает строки из таблицы, отправляет сообщение, задаёт вопрос модели, проверяет условие. Узлы соединяют стрелками. Получается сценарий (workflow), и запускать его можно по расписанию, по событию или руками. Имя расшифровывается как «nodemation», читается «эн-эйт-эн», интеграций в README проекта заявлено 1500+.
В маркетинге n8n работает клеем между сервисами, которые друг с другом не разговаривают: форма на лендинге не знает про CRM, рекламный кабинет не пишет в Telegram. Автоматизация маркетинга на n8n закрывает такие стыки без разработчика на каждый. Если вы прикидываете, с чего начинать внедрение ИИ в отдел маркетинга, начинайте со стыков. Их легко проверить, и поломка в них видна сразу.
Облако или свой сервер
Облако n8n берёт деньги за запуски (executions), и по странице тарифов запуск один на весь прогон сценария, сколько бы в нём ни было узлов. Сводка раз в день даёт 30–31 запуск в месяц, проверка раз в 5 минут — около 8 600–8 900, в три с лишним раза больше лимита Starter.
| Вариант | Цена на 26.09.2026 | Лимиты | Кто следит за сервером | Где данные |
|---|---|---|---|---|
| Community Edition | 0 $ за n8n, сервер и API моделей отдельно | нет совместного доступа, Git, окружений, внешних хранилищ секретов | вы | ваш сервер |
| Cloud Starter | $20 в месяц, если платить за год | лимит 2 500 запусков, до 5 одновременно, история 7 дней | n8n | ЕС, Франкфурт |
| Cloud Pro | $50 в месяц, если платить за год | лимит 10 000 запусков, до 20 одновременно, история 30 дней | n8n | ЕС, Франкфурт |
| Business | $800 в месяц, если платить за год | лимит 40 000 запусков, SSO, Git, только свой сервер | вы | ваш сервер |
Цены взяты со страницы тарифов n8n, годовая оплата там дешевле помесячной на 17%. Помесячную цену и валюту сверяйте в день покупки. К подписке добавьте API моделей и часы человека на поддержку, полную стоимость я разбирал в заметке сколько стоит внедрить ИИ.
Community Edition бесплатна и, по формулировке документации, содержит «почти полный набор функций» (что в неё входит). Команде больнее всего без совместного доступа: сценарии и доступы видят только владелец экземпляра и их создатель. Бесплатная регистрация по почте открывает папки и Debug in editor. Её разумно сделать в первый же день.
Для проб n8n ставят локально на ноутбук, для работы поднимают n8n self hosted в Docker. Облако держит данные во Франкфурте. Пойдут через сценарий телефоны и почты клиентов российской компании — сначала покажите схему юристам. На своём сервере этого вопроса нет, зато обновления, бэкапы, ключ шифрования и присмотр за тем, срабатывают ли расписания, становятся вашей заботой.
Лицензия и почему n8n не называет себя open source
Русскоязычные обзоры почти хором называют n8n open source, сам проект так не говорит. Он выпускается как fair-code под Sustainable Use License и в разделе о лицензии объясняет почему: по определению OSI открытая лицензия не может ограничивать использование. Sustainable Use License его ограничивает. До 17 марта 2022 года проект жил на Apache 2.0 с Commons Clause.
Компании, которая автоматизирует свой маркетинг, это почти не мешает: для внутренних задач n8n бесплатен. У агентств картина другая. По FAQ к лицензии можно собирать сценарии клиентам на своём экземпляре, если клиенты их не создают и не правят, и брать деньги за настройку, поддержку, обучение и консалтинг. Открыть клиентам свой n8n как сервис для сборки процессов нельзя, перепродавать под своим брендом тоже.
Когда n8n, а когда код
В стеке Marketing OS n8n стоит рядом с Next.js, Supabase и моделями OpenAI и отвечает за автоматизации. Задачи между ним и кодом я делю по свойствам процесса, сложность тут на втором месте: простой расчёт, от которого зависит бюджет, я всё равно пишу кодом.
| Свойство процесса | Куда отношу |
|---|---|
| Связать 2–5 сервисов по схеме «событие → действие» | n8n |
| Сценарий должен понимать маркетолог, который его не собирал | n8n |
| Пропуск одного запуска неприятен, но терпим | n8n |
| По числу решают, куда пойдут деньги или какую кампанию остановить | код или SQL |
| Тысячи строк и постраничная выборка | код |
| Логику нужно покрывать тестами | код |
| Запуск критичен по времени | системный cron на сервере |
Метрики для решений я пишу кодом через Claude Code: там их проверяют тесты и встречный счёт.
Автоматизация n8n на примерах
Все компании в сценариях ниже выдуманные, результатов я им не приписываю. ИИ-узел есть в каждом из шести, но цифры ни в одном модели не доверены.
1. Упоминания в СМИ → сводка в Telegram
Сеть клиник хочет по утрам видеть в Telegram, где её упомянули СМИ и городские порталы, без одноимённых клиник из других городов. Когда понадобится отчёт для руководства, это уже задача уровня радара рынка.
| Шаг | Что внутри |
|---|---|
| Вход | RSS-ленты СМИ и отраслевых сайтов, поисковая выдача через API |
| Узлы | Schedule Trigger или RSS Feed Read Trigger → HTTP Request → Remove Duplicates → Text Classifier → Aggregate → Telegram |
| Где модель | решает, про эту ли клинику материал, и пересказывает его в две строки |
| Где правило | белый список источников, стоп-слова, отсев повторов, счёт упоминаний за день |
| Что проверить | режим Remove Duplicates, ветку Other у Text Classifier, пробу промта на 3–5 записях |
Remove Duplicates переключите в режим, который помнит записи из прошлых запусков (по умолчанию 10 000 значений, описание узла), иначе статья будет приходить в сводку каждое утро, пока висит в ленте. Вторая ловушка тише. Если модель не нашла подходящей категории, Text Classifier по умолчанию выбрасывает запись (Discard Item, документация). Спорные упоминания, обычно самые интересные, пропадают без следа, поэтому включите ветку Other и отправляйте её человеку.
Перед тем как разметить новым промтом несколько сотен публикаций, мы прогнали его на четырёх живых постах и прочитали ответы глазами. Дефектов нашлось два. Модель вопреки прямому запрету притянула нужную тему к посту про аренду квартир. А у половины источников в базе не было текста, только анонс на 130–300 знаков. Массовый прогон заполнил бы поле догадками по заголовкам, и в сводке это смотрелось бы вполне прилично.
2. Заявки с форм → CRM с разбором модели
B2B-сервис для бухгалтеров получает заявки с лендингов. В поле «Комментарий» пишут что угодно: «у нас два юрлица, отчётность горит, перезвоните после обеда». Разложить такую фразу на размер клиента, задачу и срочность может модель, если заранее описать ей поля.
| Шаг | Что внутри |
|---|---|
| Вход | Webhook формы на сайте с авторизацией по заголовку |
| Узлы | Webhook → Edit Fields (телефон к одному формату, UTM по полям) → IF (обязательные поля) → поиск дубля в CRM → Information Extractor → HTTP Request в CRM → Telegram менеджеру |
| Где модель | Information Extractor достаёт из комментария эти три поля |
| Где правило | источник и UTM, формат телефона, дубли, маршрут: «срочно» плюс крупный клиент уходит старшему менеджеру |
| Что проверить | адрес вебхука (тестовый или боевой) и куда уходят персональные данные |
Если спросить модель до проверки формы, платный вызов уйдёт на пустую строку, а менеджер получит аккуратный пересказ пустоты. Так что порядок узлов тут важнее выбора модели: IF отсекает заявки без телефона ещё до Information Extractor, а дубль ищется до создания сделки.
Для Битрикс24 и amoCRM встроенных узлов в документации n8n нет, только HTTP Request, и кто-то в команде должен читать их документацию API. У Webhook два адреса, тестовый и боевой: после проверки переключите форму на боевой.
3. Ежедневный отчёт по рекламе
Интернет-магазин электроники хочет к 9 утра видеть в Telegram расход, CPA и кампании, ушедшие от своего среднего за 7 дней. Яндекс Директ, VK Реклама и Яндекс Метрика подключаются через HTTP Request: встроенных узлов для них нет, зато он умеет постраничную выборку (Pagination).
| Шаг | Что внутри |
|---|---|
| Вход | API рекламных кабинетов и отчётов Яндекс Метрики |
| Узлы | Schedule Trigger → HTTP Request с Pagination → Code → Basic LLM Chain → Telegram или почта |
| Где модель | три предложения о том, что изменилось, строго по уже посчитанным числам |
| Где правило | формулы в Code или SQL: расход, CPA, отклонение от среднего за 7 дней |
| Что проверить | часовой пояс, полноту выборки, число строк на границе лимита, совпадение итогов с кабинетом |
Правило «числа считает код» выросло из моей ошибки. Была у нас метрика, которую «оценивала» модель. Смотрелась она красиво, только от прогона к прогону плыла, всё время завышалась и в итоге оказалась фейком. С тех пор цифру, по которой кто-то примет решение, считает формула, а модель получает готовую таблицу и объясняет её словами. Подробнее о таком разделении труда в заметке про нейросети в аналитике.
С полнотой выборки мы тоже попались. База через API отдавала нам не больше 1000 строк на запрос, даже когда мы просили 10 000, и дашборды упирались в подозрительно круглые 1000 публикаций. Ошибок не было. Хвост данных просто не доезжал. Лечится постраничной выборкой и счётом на стороне базы, а число строк ровно на границе лимита должно поднимать флаг.
Сверке с интерфейсом я тоже больше не верю на слово. Числа в одном нашем отчёте сошлись встречным счётом, а источником был агрегат поставщика данных, который сам расходился со вторым представлением тех же данных в 17 раз. Теперь по каждому источнику я спрашиваю, что подтверждает сверка и полны ли данные. Цели до автоматизации тоже стоит проверить, для этого есть аудит целей Яндекс Метрики.
ИИ-агенты и автоматизация с n8n для текстов, метрик и отзывов
Следующие три сценария ближе к тому, что называют ИИ-агентом для маркетинга: модели в них достаётся больше работы с текстом. Кроме AI Agent, в n8n для этого есть Basic LLM Chain, Text Classifier, Sentiment Analysis и Guardrails. Последний ставят перед моделью, чтобы проверить входящий текст, или после неё, чтобы проверить ответ.
4. Черновики постов и писем из брифа с проверкой человеком
Сеть клиник из первого сценария выпускает посты и письма под акции, например про чекап или открытие филиала. У медицинской рекламы запретов много, и ошибка стоит дороже, чем у магазина техники, поэтому каждый текст до отправки читает человек.
| Шаг | Что внутри |
|---|---|
| Вход | бриф в форме или строке таблицы: продукт, аудитория, оффер, канал, запреты |
| Узлы | Form Trigger → AI Agent или Basic LLM Chain → Guardrails → Code → Telegram (Send and Wait for Response) → рассылка или возврат автору |
| Где модель | два-три варианта черновика под канал |
| Где правило | лимит символов канала, стоп-слова и запрещённые обещания, ссылка с UTM, одобрение человеком до отправки |
| Что проверить | нет ли у агента инструмента «отправить» без одобрения, как письмо выглядит в почтовом клиенте |
AI Agent получает чат-модель и хотя бы один инструмент и сам выбирает, какой вызвать. Для одного черновика по шаблону хватит Basic LLM Chain. Если у агента есть инструмент отправки, включите на нём одобрение человеком: сценарий встанет на паузу и пришлёт запрос в Slack, Telegram или чат n8n. В простой схеме хватает операции Send and Wait for Response у узла Telegram, там есть кнопки «одобрить» и «отклонить».
У меня однажды тысячи тестов проходили, а выгруженный отчёт открывался пустой страницей и повторял абзацы. С письмами то же самое: пока вы не открыли письмо в почтовом клиенте, зелёный статус сценария ничего не говорит о вёрстке. Конвейер целиком описан в кейсе про контент-завод.
5. Алерты об аномалиях в Яндекс Метрике
Магазин электроники из третьего сценария хочет узнавать о провале трафика или заказов в тот же день: понедельничный отчёт для этого опаздывает. Решение «аномалия или нет» принимает код, модель пишет только текст алерта.
Цепочка тут короткая: Schedule Trigger раз в час или раз в день → HTTP Request к API отчётов Яндекс Метрики → Code → IF → Basic LLM Chain → Telegram. Code сверяет значение с таким же днём недели на четырёх предыдущих неделях и держит порог отклонения. Если IF пропустил отклонение дальше, модель дописывает к алерту список гипотез: сломался счётчик, остановилась кампания, праздник, сбой выгрузки. До запуска проверьте часовой пояс сценария и алерт на пустой ответ.
Рано или поздно API ничего не вернёт, Code насчитает ноль отклонений, и в чат уйдёт «всё спокойно». Поэтому «данных нет» у меня отдельный алерт, а за источником следит сторож свежести. Порог первые две недели не трогайте, сначала посчитайте, сколько раз сценарий сработал зря.
6. Разметка отзывов по темам
Раз в неделю тот же магазин хочет видеть, на что жалуются покупатели: доставка, гарантия, упаковка, консультации в чате. Модели тут достаётся тема отзыва из фиксированного списка и его тон. Сам список составляют и меняют люди, иначе рубрики поплывут от прогона к прогону и сравнивать недели станет не с чем, а доли и изменение за неделю считает код.
| Шаг | Что внутри |
|---|---|
| Вход | выгрузка отзывов: API площадки, Google Sheets или CSV |
| Узлы | Schedule Trigger → HTTP Request или Google Sheets → Loop Over Items пачками → Text Classifier с веткой Other → Sentiment Analysis → запись в таблицу → Code или SQL → сводка |
| Что проверить | пробу на 3–5 отзывах, долю Other, повторяемость разметки на одном наборе |
Растущая доля Other значит, что у покупателей появилась тема, которой нет в списке. Повторяемость проверяется просто: раз в месяц прогоните один набор отзывов дважды и сравните разметку. Разошлись темы заметно — уточняйте промт или список категорий, прежде чем строить выводы на долях.
Шесть сценариев в одной таблице
| Сценарий | Частота | Модель | Правило или код | Главный риск |
|---|---|---|---|---|
| Упоминания в СМИ | раз в день или по RSS | про нас или нет, пересказ | повторы, белый список, счёт упоминаний | пропажа спорных записей |
| Заявки с форм | на каждую заявку | поля из комментария | телефон, UTM, дубли, маршрут | дубль сделки |
| Отчёт по рекламе | раз в день | комментарий к числам | расход, CPA, отклонения | неполная выборка |
| Черновики текстов | по брифу | два-три черновика | лимит канала, запреты, UTM, одобрение | текст ушёл без человека |
| Аномалии в Метрике | раз в час или в день | гипотезы причин | порог, сравнение с четырьмя неделями | пустой ответ принят за норму |
| Разметка отзывов | раз в неделю | тема и тон | список тем, доли, динамика | дрейф тем между прогонами |
Экономию я считаю грубо: запуски за месяц умножаю на минуты, которые человек тратил на то же самое руками. Для окупаемости эти минуты переводятся в часы сотрудника и ставятся против сервера и счёта за API. У n8n в настройках сценария даже есть поле Estimated time saved, туда пишут минуты на запуск (настройки сценария). Цифру туда я ставлю по замеру до запуска. Иначе экономия на бумаге выйдет такой же красивой, как та метрика от модели.
Что ломается после запуска
Расписание, которое молча перестало работать
Моя главная история с n8n обошлась без единой ошибки в логах. После перезапуска контейнера n8n снял расписания со всех сценариев и не поставил их обратно. Контейнер числился здоровым, в логах было пусто, данные просто перестали обновляться. Узнали мы через несколько дней от собственного сторожа свежести данных. Критичные запуски после этого переехали в системный cron на сервере, а в n8n остались сценарии, где пропуск не страшен.
Похожие симптомы описывают и другие. Пока я писал эту заметку, в трекере n8n висел открытым issue #36859 от 22 августа: сценарий активен, вручную запускается, автоматических запусков ноль (Docker и SQLite). В #39444 от 24 сентября наоборот: выключенный сценарий продолжает запускаться, суточное расписание сработало дважды с разницей 14 секунд. Тот ли это баг, что был у меня, по описаниям не понять. Похожие закрытые обращения в трекере тоже есть, например #30220 и #35025.
Ещё две ловушки описаны в документации. На своём сервере часовой пояс по умолчанию America/New_York, и отчёт «на 9 утра» придёт в 16:00 по Москве, а зимой в 17:00, пока вы не поменяете GENERIC_TIMEZONE или пояс в настройках сценария (Schedule Trigger). Новый интервал заработает только после повторной публикации, отсчёт пойдёт от неё, а запуск «30-го числа» в феврале не случится (частые проблемы узла).
Такие поломки ошибок не дают, ловить приходится отсутствие результата. Сторожу свежести для этого хватает двух вещей про каждый источник: когда тот последний раз успешно обновился и какая для него норма (для ежедневной выгрузки, например, 26 часов). Раз в час проверка сравнивает одно с другим и пишет в Telegram, если данные старше порога. Ставьте её вне n8n или хотя бы в отдельный сценарий, иначе сторож в том же контейнере упадёт вместе с подопечными.
Бюджет на API моделей
Вторая дыра нашлась в деньгах: разовые скрипты тратили их на платные API мимо всякого учёта. Теперь на все процессы разом стоит один жёсткий месячный лимит в рублях. Сумма под вызов резервируется заранее, на 80% и на 100% в Telegram падает алерт, а когда лимит кончился, платные вызовы просто перестают уходить. Сколько там рублей, не скажу, у каждой команды своя цифра.
В n8n такой функции нет, это моя схема: отдельный подсценарий-«касса». Перед каждым узлом с моделью основной сценарий вызывает кассу, та сверяет остаток с лимитом, резервирует оценку стоимости и отвечает «можно» или «стоп». На «стоп» сценарий падает через Stop And Error, и падение ловит общий Error Workflow.
Ретраи, секреты, логи, версии
У каждого узла есть Retry On Fail и поле On Error: остановить сценарий, продолжить или увести ошибку в отдельный выход (работа с узлами). Повтор полезен при чтении и опасен при отправке: узел, который шлёт письмо или создаёт сделку, после сетевого сбоя выполнится второй раз. Перед такими шагами я ставлю проверку «уже отправляли?» по идентификатору заявки или сделки. Двойной запуск из #39444 бьёт туда же.
Общий Error Workflow с узлом Error Trigger запускается, когда падает любой привязанный к нему сценарий (обработка ошибок). Кнопкой его не проверить, он срабатывает только на автоматических запусках, поэтому я роняю по расписанию тестовый сценарий с узлом Stop And Error.
Ключи API живут только в Credentials. Доступы n8n шифрует ключом, который создаёт при первом запуске в папке ~/.n8n. На своём сервере задайте его явно через N8N_ENCRYPTION_KEY, в режиме очереди всем воркерам (настройка ключа), и храните копию отдельно от бэкапа базы. Потеряете ключ при переезде — все сохранённые доступы придётся заводить заново. Внешние хранилища секретов есть только в Business и Enterprise.
По умолчанию n8n удаляет запуски старше 336 часов (14 дней) или сверх 10 000, а на SQLite место на диске само не освобождается (хранение запусков). В облачном Starter история живёт 7 дней. Если через месяц придётся отвечать, кому и что отправил сценарий, ведите свой журнал в таблице или базе.
Релизы выходят почти каждый день: 2.40.6 появился 24.09.2026, 2.40.7 на следующий день, параллельно обновляется ветка 1.x (релизы). В Docker я указываю конкретную версию образа вместо latest и обновляюсь после бэкапа и чтения заметок к релизу. Привычка скучная, зато сценарии ломаются в день, который я выбрал сам.
Каждую такую граблю мы записываем в проектную память Claude Code правилом в три строки: симптом, причина, что делать. Агент читает их в начале работы.
Чек-лист перед запуском
- В сценарии с Schedule Trigger выставлен ваш часовой пояс.
- Сценарий опубликован, первый автоматический запуск прошёл и виден в истории.
- Критичное расписание продублировано в системном cron, сторож свежести знает этот источник.
- Узлы с моделью стоят за «кассой» бюджета.
- У Text Classifier включена ветка Other.
- Назначен Error Workflow, и алерт из него вы хотя бы раз получили.
- Шаги, которые шлют письма или создают сделки, защищены от повтора.
- Ключи лежат в Credentials, ключ шифрования сохранён отдельно от базы.
- Версия n8n зафиксирована в образе.
- Промт прогнан на 3–5 живых записях, ответы прочитаны глазами.
- Итоговое письмо, сводку или отчёт вы видели глазами.
Из шести сценариев возьмите тот, что повторяется у вас каждый день, соберите его по этому списку и две недели записывайте, сколько раз он отработал сам и сколько раз пришлось лезть в него руками. Карту процессов целиком, с ответом, где n8n для маркетинга хватит и где нужен код, можно разобрать со мной на консультации.
