Экспорт, импорт и версионирование
Сценарий в 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'и/клиентов на новую версию и отключаете старую. Старую держите на инстансе ещё какое-то время — как «откат» на случай, если в новой найдётся проблема.
Тестирование изменений перед выкаткой
Перед заменой боевого сценария обновлённым:
- Импортируйте новую версию на staging-инстанс (или хотя бы как отдельный сценарий с тестовыми credentials на том же инстансе).
- Прогоните типичные сценарии работы.
- Прогоните «нештатные» — пустые данные, неправильные форматы, недоступные внешние сервисы.
- Только потом переключайте.
Бэкап всего инстанса
Помимо отдельных сценариев, регулярно бэкапьте всю базу n8n. В ней лежат:
- сценарии,
- credentials,
- история executions,
- настройки,
- пользователи и права.
Если инстанс упадёт без бэкапа — вы потеряете всё. Бэкап должен лежать не на том же сервере, что инстанс, иначе при пропадании сервера пропадёт и бэкап. Облачные хранилища, S3, Backblaze, отдельные машины — что угодно, но снаружи.
Документация сценариев
Любой сценарий, который дольше пары узлов и используется не только вами, нуждается в коротком описании:
- что он делает в одном предложении;
- какие у него триггеры;
- какие внешние сервисы используются;
- что произойдёт, если он сломается.
Это можно держать в README рядом с экспортом в Git, или в описании самого сценария (если ваша версия n8n поддерживает поле описания).
Через полгода вы сами не вспомните, зачем именно этот сценарий вытаскивает данные из именно этой таблицы.