Обсудить задачу

DikLabГайдыn8n

Гайд · n8n · старт

Первый сценарий на n8n: для тех, кто не программист

5 минn8nстарт

n8n пугает видом, а внутри это конвейер: слева приходит порция данных, справа уходит изменённая. Собираем первый рабочий сценарий за вечер.

Поставить это мне

Содержание

В чём фокус

n8n отпугивает не сложностью, а видом: холст, узлы, стрелки — похоже на среду разработки. На деле это конвейер. Слева приходит порция данных, справа уходит изменённая, между ними — узлы, каждый из которых делает ровно одно действие. Если держать в голове только это, первый рабочий сценарий собирается за вечер.

Что понадобится

  • Аккаунт в облачном n8n на первое время. Свой сервер ставить, пока не поняли, нужен ли он, — рано
  • Задача, которую вы делаете руками каждый день. Она и станет первым сценарием
  • Доступы к тем сервисам, которые будете соединять. Их спросят по ходу
  • Никакого кода. Узел с кодом понадобится позже и далеко не всегда

Главное правило: узлы передают записи

Это единственное, что стоит понять до начала. Всё остальное — подробности.

По конвейеру идут не «данные вообще», а записи — отдельные порции. Пришло из таблицы десять строк — дальше пойдут десять записей. Каждый следующий узел получает их и отдаёт свои: столько же, больше или меньше.

После запуска над каждой стрелкой появляется подпись — сколько записей через неё прошло. Это самое полезное, что показывает n8n, и смотреть надо именно туда.

Отсюда два следствия, на которых спотыкаются все:

  • Узел выполняется на каждую запись, а не один раз. Соединили с почтой — уйдёт десять писем, а не одно
  • Узел видит только то, что пришло из предыдущего. Понадобилось значение из начала цепочки — его надо либо тащить через все узлы, либо явно попросить у нужного узла по имени

Собираем первый сценарий

  1. Создать пустой сценарий

    Кнопка создания в списке. Сразу дайте ему человеческое имя: через месяц «My workflow 7» не скажет вам ничего.

  2. Поставить триггер — то, с чего всё начинается

    Триггер отвечает на вопрос «когда запускать». Расписание, входящее сообщение, новая строка в таблице, обращение извне. Без триггера сценарий не запустится вовсе.

  3. Добавить действие

    Второй узел — то, что должно произойти. Записать строку, отправить сообщение, сходить за данными. Начните с одного действия, а не с пяти.

  4. Соединить узлы стрелкой

    Стрелка — это и есть маршрут данных. Не соединили — узел не выполнится, и это самая частая причина «у меня ничего не работает».

  5. Запустить руками и посмотреть данные

    Тестовый запуск показывает, что пришло на вход каждого узла и что он отдал. Смотреть надо именно сюда, а не на зелёные галочки.

  6. Включить сценарий

    Пока переключатель выключен, сценарий работает только когда вы нажимаете кнопку. По расписанию он пойдёт лишь после включения.

Собранный и запущенный сценарий выглядит так. Слева направо: когда запускать, что сделать, куда разойтись — больше в первом сценарии не нужно.

Три узла n8n, соединённые стрелками: расписание, сбор строки и проверка условия. Над стрелками подписи «1 item», у каждого узла зелёная галочка.
Галочки говорят, что узел отработал. Подпись «1 item» над стрелкой — сколько записей ушло дальше. Ноль здесь объясняет больше, чем любая ошибка

Как читать данные между узлами

Здесь новичок обычно застревает надолго, хотя механика простая.

Открываете любой узел — слева видно, что пришло, справа что получилось. Это и есть главный инструмент отладки: не «почему не работает», а «на каком узле данные стали не такими».

Панель данных n8n: слева список узлов прогона, справа таблица с одной записью — дата и что произошло.
Слева узлы прогона, справа то, что отдал выбранный. Обведена сама запись: именно её видит следующий узел — не «данные вообще», а вот эти два поля

Чтобы взять значение из пришедшей записи, в поле подставляется ссылка на неё. Поля с такой подстановкой отмечены отдельно — их значение вычисляется на каждую запись заново. Обычный текст в том же поле останется текстом.

Пять граблей первого вечера

Включённый сценарий и работающий — не одно и то же.

Переключатель говорит только о том, что триггер слушает. Всё остальное может быть настроено неверно и молчать.

Тестовый запуск и боевой ходят разными путями.

У сценариев, которые ждут обращения извне, тестовый и рабочий адреса разные. Проверили на тестовом, включили — и снаружи никто не достучался.

Расписание считает по времени сервера.

Не по вашему. Поставили на девять утра, а пришло в другой час — сначала проверьте часовой пояс, а не логику.

Один узел — одно действие.

Соблазн сделать «умный» узел, который делает три вещи сразу, заканчивается тем, что непонятно, какая из трёх сломалась.

Зелёный прогон не значит, что данные дошли.

Это отдельная и большая тема: часть узлов сообщает об успехе, ничего при этом не записав. Разобрана в отдельном гайде про молчаливые падения.

Что делать дальше

Первый сценарий почти всегда получается прямой линией: триггер, действие, конец. Дальше появляются три вещи, и каждая добавляется по мере надобности, а не сразу.

Условие. Узел, который разводит поток на две ветки: подходит запись под правило или нет. Отсюда начинается вся настоящая логика.

Обработка ошибок. Что делать, когда сервис не ответил. Пока сценарий один и запускается вручную, это терпит. Как только он работает по расписанию — без этого вы узнаете о поломке от клиента.

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

Частые вопросы

Нужен ли свой сервер?
На старте нет. Свой сервер нужен, когда упираетесь в лимиты облака или когда данные нельзя выпускать наружу. Оба случая вы заметите сами.
Можно ли обойтись без узла с кодом?
Первые несколько сценариев — да, почти всегда. Код нужен там, где данные надо переложить нестандартно, и это видно по тому, что готовые узлы не подходят.
Сценарий работал, а сегодня перестал. С чего начать?
С истории выполнений: там видно, запускался ли он вообще. Если запускался и «успешно» — смотрите данные каждого узла, а не статус.
Сколько сценариев держать?
Столько, сколько процессов. Один сценарий на один процесс читается и чинится, «один большой на всё» не чинится вообще.

Пишу об этом в канале

Короткие разборы и то, что не дотянуло до отдельного материала.