Большие бинарные данные: почему 100 PDF убивают сервер
n8n хранит бинарные данные в оперативной памяти: 100 PDF-файлов могут привести к сбою сервера. Как режим Filesystem или S3 помогает справиться со взрывным ростом потребления памяти.
Как Execute Sub-workflow Node и триггер разбивают большие воркфлоу n8n на переиспользуемые, удобные в обслуживании модули.
Воркфлоу с пятьюдесятью нодами, тремя вложенными IF-ветвями и пятью различными источниками данных на первый взгляд выглядит впечатляюще, но на практике это кошмар с точки зрения обслуживания. Каждое небольшое изменение в проверке счетов ломает весь воркфлоу заказов клиентов, а каждому новому коллеге нужен час, только чтобы понять, что этот воркфлоу вообще делает. Именно для этой проблемы в n8n существуют Sub-Workflows: один воркфлоу вызывает другой, получает обратно его результат и продолжает работу, во многом подобно функции в классическом коде.
Вместо монолита получаются небольшие, самодостаточные блоки, которые можно тестировать по отдельности, изменять по отдельности и повторно использовать в нескольких воркфлоу. Эта статья показывает, как Sub-Workflows технически работают в n8n, как разбить существующую автоматизацию на модули и на что нужно обращать внимание при потоке данных и обработке ошибок. Актуально на: июль 2026.
Согласно документации n8n о разбиении воркфлоу на части ты можешь вызвать один воркфлоу из другого воркфлоу. Это позволяет тебе строить модульные, похожие на микросервисы воркфлоу, вместо того чтобы упаковывать всё в один гигантский процесс. Sub-Workflow при этом не что иное, как совершенно обычный воркфлоу n8n, который специально построен так, чтобы запускаться другим воркфлоу и возвращать результат.
Два нода образуют основу этой связи: в вызывающем, родительском воркфлоу находится Execute Sub-workflow Node, а в вызываемом воркфлоу в самом начале стоит Execute Sub-workflow Trigger Node, также называемый "When Executed by Another Workflow". Триггер обязателен: без него Sub-Workflow нельзя запустить извне.
Преимущества ощутимы на практике, а не только теоретически:
Тот, кто в компании автоматизирует много повторяющихся процессов, например процессы коммерческих предложений или выставления счетов, особенно выигрывает от такой модуляризации. Больше о таких автоматизациях ты найдёшь в разделе цифровые сотрудники у NordFlux.
Чтобы сделать воркфлоу пригодным для использования в качестве Sub-Workflow, ты добавляешь в самом начале Execute Sub-workflow Trigger Node. Согласно документации, он должен быть первым нодом в воркфлоу. Для ожидаемых входных данных доступны три режима:
Для Sub-Workflow, используемых в продакшене, первый или второй вариант обычно является лучшим выбором, потому что чётко определённые входные данные позволяют выявить ошибки рано, а не дают им проявиться только в середине процесса.
В родительском воркфлоу ты добавляешь Execute Sub-workflow Node и указываешь, какой воркфлоу должен быть выполнен. Согласно документации n8n по ноде Execute Sub-workflow для этого доступны четыре источника:
Кроме того, ты задаёшь режим выполнения: либо передать все входящие items в Sub-Workflow за одно выполнение, либо запускать Sub-Workflow отдельно для каждого входящего item. С помощью опции Wait for Sub-Workflow Completion ты определяешь, ждёт ли родительский воркфлоу результата или продолжает работу немедленно, не дожидаясь завершения.
Данные перемещаются по чёткой двухэтапной схеме: Execute Sub-workflow Node в главном воркфлоу отправляет свои данные в Execute Sub-workflow Trigger Node в вызываемом воркфлоу. Там они проходят через остальные ноды Sub-Workflow, и последний нод в Sub-Workflow отправляет свой результат обратно в Execute Sub-workflow Node в главном воркфлоу. Ссылка "View sub-execution" позволяет проследить это выполнение в обоих направлениях, что является важным инструментом при отладке вложенных автоматизаций.
Тебе стоит знать об одном важном ограничении: если Sub-Workflow содержит ошибки, родительский воркфлоу не может успешно его запустить. Поэтому чисто работающий, протестированный Sub-Workflow является обязательным условием, а не опцией.
Тот, кто не хочет начинать с нуля, может напрямую переделать существующие части воркфлоу. Согласно документации n8n о преобразовании в Sub-Workflows ты отмечаешь нужные ноды на холсте, кликаешь правой кнопкой мыши по фону и выбираешь "Convert to sub-workflow" в контекстном меню.
Для выбора действуют фиксированные правила:
Тебе также стоит учесть несколько подводных камней: согласно документации, функция доступна на всех планах начиная с версии n8n 1.97.0, но новосозданные Sub-Workflow используют порядок выполнения v1, который может отличаться от настроек исходного воркфлоу. Для нодов ИИ поддержка ограничена, подключённые sub-ноды должны быть полностью включены в выбор, а общие ноды в некоторых случаях приходится дублировать. Также стоит внимательно проверить функции доступа, такие как first(), last() и all(), а также функцию itemMatching, которая требует фиксированных числовых индексов вместо выражений, после преобразования, прежде чем переводить новый Sub-Workflow в продакшен.
Представь воркфлоу, который проверяет входящие запросы, создаёт коммерческое предложение, форматирует его как PDF и отправляет по электронной почте. Вместо того чтобы объединять всё это в один процесс, это можно чётко разделить: Sub-Workflow "проверить данные клиента", второй "рассчитать предложение", третий "создать и отправить PDF". Главный воркфлоу вызывает эти три модуля один за другим и передаёт результаты дальше. Если позже изменится логика ценообразования, корректируется только второй Sub-Workflow, всё остальное остаётся нетронутым. Именно такую модульную, легко обслуживаемую автоматизацию NordFlux реализует для клиентов из сегмента МСП, чтобы ты сохранял контроль над своими процессами даже при растущей сложности.
Sub-Workflow оправдан, как только логика требуется более одного раза или воркфлоу становится настолько большим, что становится запутанным. Для очень маленьких, одноразовых процессов с небольшим числом нодов, напротив, дополнительные накладные расходы на вызов редко оправданы, здесь обычно достаточно одного отдельного воркфлоу.
Да, Sub-Workflow можно вкладывать друг в друга, вызываемый воркфлоу сам может содержать ещё один Execute Sub-workflow Node. На практике тебе стоит следить за глубиной вложенности, чтобы структура оставалась понятной и ошибки при отладке можно было по-прежнему отследить.
Если Sub-Workflow содержит ошибки, родительский воркфлоу, согласно документации, не может успешно его запустить. Поэтому каждый Sub-Workflow следует тестировать отдельно и снабжать чистой обработкой ошибок, прежде чем от него станут зависеть другие воркфлоу.
Согласно документации n8n, выполнения Sub-Workflow не засчитываются в месячный лимит выполнений или лимит активных воркфлоу твоего плана. Это делает модули особенно привлекательными, если у тебя много повторяющихся подпроцессов, которые иначе расходовали бы твой лимит по отдельности.
Да. С помощью функции "Convert to sub-workflow" ты отмечаешь связанные ноды ровно с одной точкой входа и одной точкой выхода и превращаешь их в самостоятельный Sub-Workflow через правый клик. После этого стоит ещё раз проверить порядок выполнения и используемые выражения в новом Sub-Workflow.
Основатель NordFlux. Семь лет опыта, от веба и SEO до автоматизации в масштабах концерна, сегодня прагматично для среднего бизнеса и с немецким суверенитетом данных.
Сертификаты
n8n хранит бинарные данные в оперативной памяти: 100 PDF-файлов могут привести к сбою сервера. Как режим Filesystem или S3 помогает справиться со взрывным ростом потребления памяти.
Error workflow, Retry On Fail и уведомления в Teams: как выстроить надёжную обработку ошибок в n8n.
Если вы потеряете ключ шифрования n8n, все сохраненные учетные данные станут непригодны для использования. Вот как правильно резервировать workflow, учетные данные и ключи.
Один гигантский workflow становится всё труднее поддерживать с каждым новым требованием и почти непонятен для новых участников команды. NordFlux структурирует ваши автоматизации n8n в переиспользуемые sub-workflow и может взять на себя их дальнейшее развитие. На первой встрече мы рассмотрим текущую структуру ваших workflow.