1. Архитектура n8n: триггеры, ноды и логика передачи данных
Архитектура n8n: триггеры, ноды и логика передачи данных
Понимание n8n начинается не с изучения интерфейса, а с осознания того, как система «мыслит». В отличие от многих no-code инструментов, которые скрывают технические детали за красивыми кнопками, n8n — это визуальная надстройка над программированием. Он оперирует объектами, массивами и потоками данных так же, как это делает JavaScript-скрипт, но представляет их в виде графической схемы.
Чтобы строить сложные системы, а не просто линейные цепочки, необходимо разобраться в трех фундаментальных компонентах: нодах (узлах), структуре данных и логике выполнения.
Анатомия Workflow: Ноды и Связи
Любой сценарий автоматизации в n8n называется Workflow (рабочий процесс). Он состоит из отдельных блоков — Nodes (нод), соединенных линиями.
Каждая нода — это независимая функция. Она получает данные на вход, обрабатывает их и передает результат на выход. В n8n не существует «глобального состояния» по умолчанию: нода знает только то, что ей передали, или то, что она сама запросила у предыдущих шагов.
Типы нод
Глобально все ноды делятся на две категории:
!Поток данных от триггера через действие к логической обработке
Структура данных: Всё есть JSON
Самый важный аспект архитектуры n8n, который отличает его от конкурентов — это формат передачи данных. n8n всегда работает с массивом объектов.
Даже если вы обрабатываете одну заявку, внутри системы она выглядит как массив, содержащий один объект. Стандартная структура данных, выходящая из любой ноды, выглядит так:
Обратите внимание на ключ json. Все текстовые и числовые данные (поля из CRM, текст письма, заголовки) всегда находятся внутри этого ключа. Если нода работает с файлами (картинки, PDF), добавляется второй ключевой раздел — binary.
Почему это важно?
Когда нода получает на вход массив из 10 элементов (например, 10 новых заказов), она по умолчанию выполнится 10 раз — по одному разу для каждого элемента (или обработает их пакетом, в зависимости от типа ноды). Это позволяет создавать циклы обработки без написания специальных циклов for или while.
Если представить процесс обработки данных математически, то каждая нода применяет трансформацию к входящему массиву данных :
где — массив входящих объектов, — операция ноды над конкретным объектом, а — результирующий массив, который пойдет к следующей ноде.
Логика передачи данных (Data Flow)
Связи между нодами (линии) передают данные. Однако в n8n есть нюанс: данные передаются от выхода к входу, но доступ к данным может быть получен и из любой предыдущей ноды, даже если она не соединена напрямую.
Прямой поток (Input Data)
По умолчанию нода видит только то, что ей передала предыдущая нода. Если Нода А передала данные в Ноду Б, а Нода Б передала их в Ноду В, то Нода В видит только результат работы Ноды Б. Исходные данные из А могут быть потеряны, если Б их не сохранила.Ссылочный поток (Referencing)
Чтобы использовать данные из начала цепочки в самом конце, используются выражения (Expressions). Вы можете обратиться к любой ноде по её имени. Это похоже на использование переменных, но вместо переменных вы ссылаетесь на выход конкретного шага.Ветвление и управление потоком
Линейные сценарии встречаются редко. Чаще всего требуется логика: «Если сумма сделки больше 10 000, отправить менеджеру, иначе — отправить письмо клиенту».
Для этого используются логические ноды, такие как If (или Switch). Нода If принимает данные и проверяет условие. У неё два выхода: * True (верхний выход): сюда идут данные, соответствующие условию. * False (нижний выход): сюда идут остальные данные.
Формально логику работы ноды If можно описать так:
где — это проверка условия для каждого входящего элемента . Важно понимать, что если на вход пришло 5 объектов, и 3 из них подходят под условие, а 2 — нет, то сработают оба выхода: 3 объекта пойдут по ветке True, а 2 — по ветке False.
!Разделение потока данных на основе условия
Жизненный цикл выполнения (Execution Lifecycle)
Когда срабатывает триггер, создается Execution (исполнение). Это конкретный запуск вашего сценария с конкретными данными.
Понимание того, что n8n передает данные пакетами (массивами), является ключом к профессиональной работе. Ошибка новичка — думать об одном объекте, когда система всегда готова к обработке множества.
Итоги
* Всё есть нода: Сценарий состоит из триггеров (начало) и действий (обработка).
* JSON-массивы: n8n всегда передает данные как массив объектов, обернутых в ключ json.
* Поток данных: Ноды обрабатывают входящие данные последовательно; доступ к данным из глубины истории возможен через прямые ссылки на имена нод.
* Ветвление: Логические ноды разделяют поток данных на части, позволяя обрабатывать разные элементы массива разными путями.