Быстрый старт в n8n: создание первого воркфлоу

В этом конспекте руководства вы познакомитесь с концептуальными основами, которые необходимо знать для создания мощных рабочих процессов n8n с нуля.

Меня зовут Тимур и здесь я изучаю и конспектирую разные материалы, которые меня интересуют и я делюсь своими конспектами со всеми. В этом материале я конспектирую видеоурок с названием в оригинале «n8n Quick Start Tutorial: Build Your First Workflow [2025]«. В описании к этому уроку сказано, что автор видео по имени Макс расскажет о следующем:

✅ Как работают триггеры и действия в n8n
✅ Понимание потока данных между этапами рабочего процесса
✅ Динамическое отображение и преобразование данных
✅ Построение условной маршрутизации с помощью бизнес-логики
✅ Подключение к приложениям, таким как Slack , для реальной автоматизации
✅ Активация рабочего процесса и доступ к производственным процессам

Настройка триггера формы

Давайте начнем с нуля (start from scratch).

Тут мы перешли в рабочий процесс (workflow) на холсте (canvas). Давайте добавим первый шаг (add first step).

Сбоку справа появится окно со списком триггеров (triggers) рабочего процесса (workflow). В данном уроке мы создаем автоматизацию, связанную с отправкой форм, мы выберем триггер на отправку формы (on form submission).

Нажмите слева вверху назад в холст (back to canvas), чтобы посмотреть как этот узел выглядит на холсте.

Так мы добавили на холст рабочего процесса первый узел (node), который является триггером. Значок молнии обозначает, что данный узел является триггером.

Если навести на молнию курсор, то отобразится кнопка с текстом выполнения рабочего процесса (execute workflow).

Кликните дважды на узел, чтобы настроить его. Нужно заполнить обязательные поля.

Сначала заполним заголовок (form title) и описание формы (form description). Назовем форму «Request an installation» (запрос установки), в описание добавим текст «Fill out this form to request an installation. We’ll reach out via email to finalize your appointment» (Заполните эту форму, чтобы запросить установку. Мы свяжемся с вами по электронной почте, чтобы согласовать время встречи).

Теперь добавим поля в форму для пользователя, они называются элементами формы (form elements). Добавим первый элемент формы — поле ввода email адреса и укажим имя поля (field name) «Email Address». Выберем тип элемента (element type) в выпадающем списке — «Email». Сделаем это поле обязательным (required field), включив переключатель. Следующий элемент формы — дата установки и укажем имя поля (field name) «Preferred install date». Выберем тип этого элемента (element type) — «Date».

В самой нижней части настроек есть возможность настроить, когда триггер сработает в ответ на событие (respond when). По умолчанию выбрано фиксированное событие «Form is Submitted. As soon as this node receives the form submission» (Форма отправлена. Как только этот узел получит данные из формы). Есть также пункт «Workflow Finishes. When the last node of the workflow is executed) (Завершение рабочего процесса. Когда последний узел рабочего процесса выполнен). Есть также возможность ввода выражения (expression) для более гибкой настройки. В данном уроке мы будем использовать значение по умолчанию.

Теперь нужно проверить выполняется ли данный шаг, нажав на кнопку «Execute step«. Откроется в новой вкладке страница с тестовой формой, это то, что увидит пользователь, когда мы активируем рабочий процесс (workflow).

Если мы перейдем обратно на вкладку с настройкой узла, то увидим выполнение процесса «прослушивания» отправки формы, то есть это ожидание отправки данных тестовой формы.

Давайте заполним поля формы. Я укажу name@email.com и выберу дату установки через 2 дня. Отправит данные тестовой формы (submit).

Вывод данных и n8n элементов

Вернемся на вкладку с настройкой узла с формой и увидим справа внизу сообщение об успешном выполнении узла (node executed successfully). Об успешном выполнении также свидетельствует наличие зеленой галочки рядом с заголовком окна вывода Output. В самом окне вывода есть некоторые выходные данные, по умолчанию эти данные представлены в JSON формате, но есть также Schema и Table.

Теперь обратим внимание на такое понятие, как элемент данных (item). В выводе видно, что в выходных данных есть только один элемент.

Если мы вернемся к холсту, то увидим, что узел успешно выполнен (отмечен зеленой галочкой) и из него выходит только один элемент данных.

Что такое элемент данных (item)? По сути каждый узел в n8n выводит массив элементов и каждый узел передает этот массив другим узлам, так происходит взаимодействие узлов. В нашем случае в массиве только один элемент, так как в массиве верхнего уровня есть только один элемент.

Закрепление выходных данных

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

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

В рабочем процессе на холсте вы также увидите значок Pin.

Добавление условной логики

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

Для реализации условной маршрутизации нужно добавить узел If. Нажимаем на кнопку плюса на холсте и либо переходим в категорию Flow, либо вводим в строку поиска if.

Мы можем задать в параметрах один или несколько условий (conditions).

А результат будет отправлен в соответствующую ветку (true / false). Также обратите внимание, что на холсте видно, что форма передает следующему узлу только один элемент (item).

Отображение и преобразование данных

Теперь давайте настроим параметры узла If. Мы можем перетягивать блоки из области Input в поля настроек и они превратятся в выражение (expression).

Теперь выберем тип условия. Так как мы работаем с таким типом данных, как дата, то выберем в выпадающем списке категорию даты и времени — Date & Time. А дальше выберем «is before or equal to«, что значит «до или равно». В нашем случае условие должно быть «до 7 дней или равно 7 дням», чтобы была выполнена установка.

Однако мы будем видеть ошибку (поля выделены красным), так как не заполнено второе значение. Итак, второе значение должно вычисляться динамически, то есть к текущей дате пользователя нужно прибавлять 7 дней и проверять прошло ли больше или меньше 7 дней. Но мы не можем всегда знать текущую дату пользователя. Для этого мы можем использовать выражения (expressions). Наведите курсор на поле и внизу отобразятся переключители — Fixed и Expression. Выберем Expression.

Вводим двойные фигурные скобки и появится автозаполнение.

В n8n есть вспомогательная функция $now для отображения текущего времени. Давайте выберем ее и увидим в Result отображение нашего текущего времени.

Но нам нужно добавить 7 дней к текущей дате. Если мы введем точку сразу после $now, то увидим в автозаполнении разные методы и это в основе методы JavaScript, а также есть дополнительные методы, созданные специально в n8n.

Нам нужно добавить метод plus(). Мы увидим краткую документацию по его использованию, увидим пример синтаксиса. В нашем случае должно быть plus(7, ‘days’), где число 7 это то, насколько нужно увеличить текущее значение, а days это единица измерения. И мы можем наблюдать за результатом в Result.

Если мы запустим этот узел Execute step, то увидим успешное выполнение в Output.

Теперь обратим внимание, что первое значение условия является строковым типом данных (string), которое сранивается с типом данных date.

Чтобы сделать работу более надежной лучше преобразовать строковые данные в тип date. Для этого добавим точку в выражении и в автозаполнении выберем метод toDateTime()

Вот теперь мы сравниваем дату с датой.

Теперь проверим логику и изменим значение с 7 на 0 и выполним шаг. Все верно, все работает правильно, выполнение перешло на ложную ветку (False Branch).

Вернем обратно значение на 7 и выполним шаг. Затем перейдем на холст и видим, что в ветке true имеется 1 элемент (item).

Но перед добавлением узла Slack давайте переименуем название узла If во что-то более понятное, например, «is within 7 days?» — «в течение 7 дней?».

А теперь добавим в ветку false узел «без операций» — No Operation, do nothing, данный узел ничего не делает. Переименуем его в todo. Нам он нужен просто как заполнитель.

Настройка узла Slack

Нажимаем на кнопку плюс в ветке true и добавляем узел Slack, который можно найти либо в категории Action in an app, либо через поиск.

Дальше будет большой список действий Actions. Нам нужно действие отправки сообщения — Send a message.

Далее нужно настроить этот узел. Сначала нужно настроить учетные данные в поле «Credential to connect with» — «Учетные данные для подключения к». Выбираем «Create new credential«.

Теперь нужно предварительно авторизовать в Slack. Есть два варианта подключения: используя OAuth2 или Access Token. Лучше использовать OAuth2, потому что это современный более безопасный и надежный способ подключения. Нажимаем на кнопку Connect my account для подключения к аккаунту Slack.

Откроется в новой вкладке страница с запросом на принятие предоставления доступа к Slack для n8n. Нажимаем на кнопку Allow.

Slack аккаунт успешно подключен, о чем говорит зеленое сообщение — Account connected.

Теперь выберем кому мы будем отправлять сообщение. Я выбираю Channel.

Дальше предлагается либо выбрать из списка From list, либо выбрать By ID, By Name, By URL.

Я выбираю из списка From list и в выпадающем списке выбираю нужный свой канал — all-me.

Теперь настроим поле сообщения. Message Type означает тип сообщения и есть варианты отправить просто текстовое сообщение Simple Text Message, либо использовать блоки Blocks для создания различных кнопок в чате, либо Attachments для отправки прикрепленных файлов.

Для текста сообщения выберим вместо Fixed выражение — Expression. А затем развернем его, чтобы видеть его в большем размере.

Вставляем статический текст:

New install request (within 7 days).
Contact email:
Preferred install date:

И можно объединять вместе статический и динамический тексты. Из левой области можно перетягивать блоки с динамическим текстом в поле записи выражений Expression.

Тестирование рабочего процесса

Теперь закрываем развернутое окно и нажимаем на кнопку выполнения шага — Execute step.

Процесс успешно выполнен, тестовые данные отправлены в канал Slack.

Сохраните рабочий процесс.

Активация рабочего процесса + просмотр выполнения программы

Активируем рабочий процесс, нажав переключатель Inactive и он изменится на значение Active.

Во вкладке Executions видны ранее запущенные процессы. Значок песочных часов обозначает, что это тестовые выполнения.

Дважды кликните на самый первый узел рабочего процесса, перейдите во вкладке. Production URL, нажмите на ссылку и она будет скопирована.

Вставьте ссылку в новой вкладке браузера и перейдите по ней. Откроется форма, но уже не в тестовом, а в рабочем режиме. Заполните форму и отправьте данные.

Заново перейдите во вкладку Executions и увидите в списке появившееся выполнение без песочных часов. Значит рабочее выполнение сработало успешно.

🔗 Ссылки и ресурсы

https://n8n.io чтобы зарегистрироваться в n8n cloud
https://docs.n8n.io для получения документации (включая автономный хостинг n8n)
https://community.n8n.io/ для получения помощи при сборке
Подписывайтесь на Макса в LinkedIn: /maxtkacz

Видеоруководство записано на n8n версии 1.97.1 в n8n cloud, я же работал в версии 1.121.3.