Привет, Хабр!

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

Что такое n8n и зачем его использовать

n8n - это платформа для автоматизации рабочих процессов с открытым исходным кодом, которая позволяет создавать и связывать различные сервисы и приложения "без необходимости" программирования. Она предоставляет визуальный интерфейс, где вы можете перетаскивать компоненты (узлы) и настраивать цепочки действий (workflow) для автоматического выполнения рутинных задач, таких как сбор данных, отправка уведомлений или интеграция с CRM и другими системами. Сама платформа появилась в 2019 году, но наибольшую популярность приобрела в 23-24 годах, благодаря интеграциями с различными ИИ сервисами.

Долгое время меня обходила стороной сама идея no-code и low-code, так как я привык все делать сам и писать приложения с нуля, но любопытство взяло верх и я приступил к попыткам автоматизировать свои задачи. Два первых процесса из повседневной жизни, которые мне удалось автоматизировать:

  • Чтение почты и перенос спама в корзину

  • Отбор топа новостей за неделю и отправку дайджеста в телеграмм

С помощью них я смог освободить пару часов в неделю. Если вы хотите освободить немного своего времени, то прочитайте эту и последующие статьи.

Установка

Мне было удобнее устанавливать через командную строку, а не через Docker, поэтому покажу этот вариант. Все шаги выполнены под Windows.

Устанавливаем NodeJs:

  1. Перейдите на сайт NodeJs и скачайте последнюю LTS версию: https://nodejs.org/

  2. После установки перейдите в терминал или Power shell и проверьте версию:

node -v
npm -v

Глобальная установка n8n. Введите команду:

npm install n8n -g

флаг -g устанавливает n8n глобально. Это позволит запускать его из любой директории.

1. Запуск n8n:

n8n

Если все установлено правильно, то вы увидите сообщение о запуске на установленном порту:

Initializing n8n process...
n8n ready on 0.0.0.0, port 5678
Version:

Интерфейс

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

  • Ваши рабочие процессы

  • Сохраненные логины/пароли

  • Лог выполнения запусков

  • Data Tables - внутреннее хранилище n8n (появилось в последних версиях)

В первую очередь нас интересует кнопка "create workflow". При создании нового проекта вы попадаете на пустой холст, где мы можем нажать на '+' правой панели.

Ключевые концепции

  • Workflow - последовательность узлов, видимая на холсте. Каждый workflow - независимая логика.

  • Node - модуль с конфигурацией: триггер, action, трансформер, код и т.д.

  • Item - единица данных, которая «плывёт» между узлами; workflow оперирует массивом items.

  • Credentials - способ безопасно хранить ключи/логины для внешних сервисов (шифруются, см. ниже).

  • Execution - результат запуска workflow (логи, вход/выход, ошибки). По умолчанию n8n сохраняет истории выполнений; важно настроить retention в проде.

  • Expressions - внутри параметров нода вы можете писать выражения вида {{ $json["email"] }}, {{ $node["HTTP Request"].json["data"] }} и т.д.

Виды узлов в n8n

  • Триггеры - узлы, которые запускают рабочий процесс в ответ на определенное событие или условие. Триггеры могут быть основаны на вебхуках (слушают событие), периодическом опросе и других механизмах. Наверное, самые часто используемые триггеры:

    • chat trigger - отправка сообщений в интерфейсе n8n

    • telegram trigger - отправка сообщений в тг ботов

    • shedule - запускает процесс по расписанию

    • on app event - для определенных событий в интегрированных приложениях, например, новое письмо в gmail

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

    • API - интеграции:

      • Google

      • Notion

      • Tavily

    • File / Binary - загрузка/запись и передача бинарных данных (файлы, изображения).

  • Узлы обработки и трансформации данных - основа для соединения выводов узлов и преобразования данных. Наиболее важные:

    • Code - позволяет вручную написать код для обработки данных или собственной интеграции. Код можно писать на JS и Python

    • Merge - объединяет выводы нескольких узлов

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

Каждый узел имеет собственные поля для настройки. Это могут поля для ввода учетных данных, ключей и т.п или выбор режима работы, например, тип объединения данных. Подробное описание каждого узла вы можете найти в документации n8n

Перемещение данных между узлами

Когда вы поместите по поле необходимые узлы и настроите их, вы сможете их соединить. Тогда при запуске проекта данные будут 'перетекать' от одного узла к другому. Здесь нет ничего сложного, но я хочу сказать про несколько моментов, с которыми у меня возникли проблемы в первый раз:

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

  • Чтобы получить входные данные в узле Code можно использовать:

const inputs = $input.all();
  • Получать выходные данные можно не только из предыдущего узла, но и из любого выполненного узла, например:

const allData = $node['HTTP Request'].item;

Важные переменные окружения и конфигурация

Ключевые настройки управления поведением n8n и безопасностью задаются через env-переменные. Несколько, на которые нужно обратить внимание сразу:

  • N8N_ENCRYPTION_KEY — ключ шифрования credentials (обязателен для безопасного хранения секретов).

  • N8N_HOST, N8N_PORT, N8N_PROTOCOL, N8N_PATH — базовые сетевые настройки.

  • EXECUTIONS_MODE — режим выполнения (обычно main или queue); в режиме queue n8n использует Redis как брокер очередей: основной инстанс принимает webhook/таймеры и кладёт задачy в Redis; worker-процессы их подхватывают и выполняют.

  • DB_TYPE

Ещё полезный трюк: многие переменные можно передать через файл, используя суффикс _FILE — удобно для секретов в Docker Secret

Что дальше

Во второй статье я покажу конкретный workflow: автоматизация сбора новостей - от парсинга RSS и API новостных агрегаторов, через фильтрацию и ранжирование, до отправки дайджеста в Telegram и сохранения в базе.

Подписывайтесь на мой телеграмм канал, чтобы не пропустить статью. Также там я выкладываю другие материалы, связанные с AI и LLM.

Полезные ссылки

Комментарии (1)


  1. akod67
    10.11.2025 17:27

    С NodeRed имеет смысл пересаживаться?