Экспорт, импорт и версионирование

Сценарий в n8n — это JSON. Каждый рабочий процесс можно выгрузить в файл, перенести на другой инстанс, положить в Git, восстановить из бэкапа. Это даёт целый набор рабочих практик, без которых в продакшене жить тяжело.

Примечание. Возможности версионирования и встроенной интеграции с Git у разных версий n8n разные (в Cloud / self-hosted / Enterprise). Принцип «сценарий — это JSON-файл» работает везде.

Экспорт сценария

В интерфейсе сценария обычно есть пункт меню в духе Download или Export — он сохраняет сценарий целиком в JSON-файл. В файле:

  • список узлов и их настройки;
  • связи между узлами;
  • ссылки на credentials (по ID);
  • сами учётные данные в файл не попадают.

Это важно: экспорт безопасно показывать коллегам или хранить в Git — секретов в нём нет. Но и при импорте на другой инстанс credentials придётся пересоздавать (или импортировать отдельно, если ваша версия это поддерживает).

Импорт

Создайте новый сценарий и импортируйте JSON. Все узлы появятся как были; в полях credentials будет «выбрать credentials» — нужно подключить существующие на этом инстансе.

Это базовый способ перенести сценарий между dev и prod, или поделиться с коллегой.

Хранение в Git

Если у вас несколько сценариев и команда из больше, чем одного человека, храните сценарии в Git. Это даёт:

  • историю изменений: кто, когда и что поправил;
  • code review: новый сценарий или существенное изменение проходит через PR;
  • возможность откатить плохое изменение;
  • единую правду о том, как должен выглядеть сценарий в проде.

Простой подход: создаёте репозиторий с папкой workflows/, в ней — JSON-файлы по одному на сценарий. После каждого изменения экспортируете из n8n и коммитите. Это ручной процесс, но он работает.

В Enterprise-версии и в некоторых конфигурациях n8n есть встроенная интеграция с Git, которая автоматизирует этот цикл. Если у вас она доступна — используйте её.

Версии в названиях

Простой практический приём: называть сценарии по шаблону Имя v1, Имя v2. Когда вы делаете большое изменение — копируете сценарий, увеличиваете версию, тестируете, потом переключаете webhook'и/клиентов на новую версию и отключаете старую. Старую держите на инстансе ещё какое-то время — как «откат» на случай, если в новой найдётся проблема.

Тестирование изменений перед выкаткой

Перед заменой боевого сценария обновлённым:

  1. Импортируйте новую версию на staging-инстанс (или хотя бы как отдельный сценарий с тестовыми credentials на том же инстансе).
  2. Прогоните типичные сценарии работы.
  3. Прогоните «нештатные» — пустые данные, неправильные форматы, недоступные внешние сервисы.
  4. Только потом переключайте.

Бэкап всего инстанса

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

  • сценарии,
  • credentials,
  • история executions,
  • настройки,
  • пользователи и права.

Если инстанс упадёт без бэкапа — вы потеряете всё. Бэкап должен лежать не на том же сервере, что инстанс, иначе при пропадании сервера пропадёт и бэкап. Облачные хранилища, S3, Backblaze, отдельные машины — что угодно, но снаружи.

Документация сценариев

Любой сценарий, который дольше пары узлов и используется не только вами, нуждается в коротком описании:

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

Это можно держать в README рядом с экспортом в Git, или в описании самого сценария (если ваша версия n8n поддерживает поле описания).

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