Versionado de workflows: Change History, exportación JSON, solución alternativa de copia de seguridad en Git para la Community Edition
El historial de workflows solo muestra 24 horas sin plan Enterprise. Así puedes asegurar tú mismo tus workflows de n8n de forma permanente mediante exportación JSON y Git.
Quien construye workflows en n8n los modifica constantemente: se añade un nodo, se ajusta un filtro, se incorpora a posteriori un manejo de errores. Sin versionado, cada uno de estos cambios es una sobrescritura silenciosa, y la pregunta "¿Qué versión funcionaba de forma estable ayer?" ya no se puede responder. n8n incluye para ello un Change History integrado, pero el historial completo y la sincronización nativa con Git a través de Source Control están reservados a los planes Business y Enterprise, no a la Community Edition gratuita.
Para todos los demás, la exportación manual a JSON sigue siendo la solución alternativa: los workflows se pueden descargar en cualquier momento como archivo JSON e incorporarse a tu propio repositorio Git. Este artículo muestra qué ofrece realmente el Change History integrado, dónde están sus límites y cómo puedes construir con herramientas propias un sistema de copia de seguridad y versionado funcional, incluso sin licencia Enterprise.
¿Qué muestra el Change History de workflows integrado?
Cada workflow en n8n tiene su propio icono de historial, a través del cual abres un menú con todas las versiones guardadas, cada una con una vista previa del canvas de la versión seleccionada. Segúnla documentación de n8n sobre el Change History n8n crea automáticamente una nueva versión cuando guardas el workflow, restauras una versión anterior (la versión activa anterior se guarda primero en ese caso) o haces pull desde un repositorio Git mediante Source Control.
Para cada versión guardada tienes disponibles varias acciones:
- Restaurar versión: reemplaza el workflow actual por la versión seleccionada.
- Clonar en un nuevo workflow: crea una copia de la versión como workflow independiente.
- Abrir versión en una nueva pestaña: permite comparar directamente dos versiones una junto a otra.
- Descargar: exporta la versión seleccionada como archivo JSON.
- Nombrar versión: la protege de la limpieza automática, esta función está reservada a los usuarios Pro y Enterprise.
El alcance de este historial es importante en la práctica. Se diferencia claramente según el plan:
- Enterprise (Cloud o Self-hosted): historial completo de workflows sin límite de tiempo.
- Cloud Pro: versiones de los últimos cinco días.
- Todos los demás usuarios, incluida la Community Edition: solo versiones de las últimas 24 horas.
Esto significa en concreto: quien use la Community Edition o un plan Cloud simple pierde el acceso a estados intermedios anteriores como muy tarde después de un día. Para un historial de versiones realmente permanente, la función integrada no es suficiente en estos casos.
¿Por qué Source Control mediante Git no está disponible para todos?
Con Source Control, n8n ofrece una integración nativa con Git que permite sincronizar automáticamente los workflows con un repositorio, incluidos varios entornos mediante ramas Git separadas. Segúnla documentación de n8n sobre Source Control y entornos esta función es sin embargo "Available on Business and Enterprise plans", por lo que no forma parte de la Community Edition gratuita ni de los planes Cloud simples.
Donde Source Control está disponible, la configuración se realiza en Settings > Environments. Ahí introduces la URL del repositorio Git, ya sea por SSH con una Deploy Key o por HTTPS con un Personal Access Token, y n8n genera automáticamente una clave SSH para ello (ED25519 de forma predeterminada). Los propietarios de instancia y los administradores de instancia pueden entonces tanto hacer push como pull, los administradores de proyecto solo pueden hacer push. Quien trabaje de forma productiva con varios entornos y tenga la licencia Business o Enterprise debería usar esta vía nativa, te ahorra el mantenimiento manual de la exportación.
La solución alternativa: copia de seguridad manual en Git mediante exportación JSON
Sin licencia Business o Enterprise, la exportación JSON sigue siendo la forma más fiable de asegurar los workflows de manera permanente y versionada. Segúnla documentación de n8n sobre exportación e importación n8n almacena los workflows fundamentalmente en formato JSON, y precisamente ese formato se puede exportar, incorporar a un repositorio Git y allí confirmar (commit), etiquetar y revertir como cualquier otro cambio de código.
Exportación a través de la interfaz
Para workflows individuales, la interfaz del editor es completamente suficiente:
- Abre el workflow y haz clic en el menú de tres puntos en la parte superior derecha.
- EligeDownload para descargar el workflow actual como archivo JSON a tu ordenador.
- Alternativamente, puedes seleccionar nodos individuales, copiarlos con Ctrl+C o Cmd+C y pegarlos en un editor de texto, lo que también produce JSON de workflow válido para secciones parciales.
- A través deImport from File oImport from URL un archivo JSON se puede volver a cargar más tarde en n8n.
La documentación señala expresamente que los archivos JSON exportados contienen nombres de credenciales e ID de credenciales. Antes de compartir un archivo así o de colocarlo en un repositorio compartido, deberías eliminar o anonimizar estos datos para que ninguna credencial sensible acabe accidentalmente en el historial de versiones.
Exportación a través de la línea de comandos para instancias completas
Para una copia de seguridad completa de todos los workflows de una instancia n8n autoalojada, la CLI es más adecuada que la descarga manual individual. Segúnla documentación de n8n sobre la línea de comandos existen comandos propios de exportación e importación para ello:
- `n8n export:workflow --all --output=backups/latest/` exporta todos los workflows a un directorio.
- `n8n export:workflow --backup --output=backups/latest/` usa el modo de copia de seguridad dedicado, que internamente establece `--all --pretty --separate`: todos los workflows, formateados de forma legible, cada uno como archivo propio.
- `n8n export:workflow --id=<ID> --output=file.json` exporta específicamente un único workflow.
- `n8n import:workflow --separate --input=backups/latest/` vuelve a importar un directorio completo con archivos JSON individuales.
- `n8n import:workflow --separate --input=backups/latest/ --activeState=fromJson` también aplica al importar el estado de activación original de cada workflow.
Cómo construir a partir de esto una copia de seguridad en Git
Combina el modo de copia de seguridad de la CLI con un cron job regular y un repositorio Git, entonces obtienes como resultado un versionado propio pero sólido:
1. Crea un repositorio Git privado, separado de tu otro código de aplicación.
2. Configura en el servidor n8n un cron job diario que ejecute `n8n export:workflow --backup --output=backups/latest/`.
3. Confirma (commit) los archivos exportados en el repositorio, de forma automatizada o manual, con un mensaje de commit descriptivo.
4. Antes de cada commit, comprueba que no se incluyan referencias de credenciales sin limpiar, idealmente mediante un script sencillo que filtre o marque patrones conocidos como `credentialId`.
5. Usa `git tag` cuando sea necesario para marcar claramente estados de producción estables, así podrás encontrarlos también meses después.
Con esto logras, en esencia, lo que Source Control ofrece de forma nativa, solo que sin un mecanismo automático de push-pull y con algo más de trabajo manual al restaurar. Para equipos pequeños y freelancers individuales, esto suele ser un compromiso aceptable antes de que una licencia Business resulte rentable.
¿Cuánto tiempo conserva n8n las versiones automáticamente?
Quien use el historial de workflows integrado y quiera controlar por sí mismo el tiempo de conservación encontrará el ajuste adecuado en la configuración del servidor. Segúnla documentación de n8n sobre las variables de entorno del workflow history la variable `N8N_WORKFLOW_HISTORY_PRUNE_TIME` determina cuántas horas se conservan las versiones antiguas antes de que n8n las elimine automáticamente. El valor predeterminado es `-1`, lo que significa que técnicamente todas las versiones se conservan de forma indefinida, aunque para la visibilidad siguen aplicando los límites dependientes del plan de la sección anterior.
En instancias autoalojadas sin licencia Enterprise, vale la pena de todos modos configurar esta variable de forma consciente y establecer además la solución alternativa de exportación JSON. Así mantienes el control sobre tu historial de versiones, independientemente de lo que la interfaz muestre u oculte en cada momento.
Preguntas frecuentes
¿Necesito obligatoriamente una licencia Enterprise para el versionado de workflows?
No. El Change History integrado con historial completo y la sincronización nativa con Git mediante Source Control están efectivamente reservados a los planes Business y Enterprise, pero la exportación JSON manual funciona en cualquier versión de n8n, incluida la Community Edition gratuita. Combinado con tu propio repositorio Git y una exportación CLI regular, logras un versionado completo, aunque manual.
¿Cuánto tiempo almacena n8n las versiones de workflow sin un plan Business o Enterprise?
En la Community Edition y en los planes simples, solo se pueden ver a través de la interfaz las versiones de las últimas 24 horas, incluso si la variable de entorno `N8N_WORKFLOW_HISTORY_PRUNE_TIME` está configurada para conservación ilimitada. Para todo lo que deba remontarse más atrás, necesitas o bien un plan superior o bien tu propio sistema de copia de seguridad mediante exportación JSON.
¿Los archivos JSON exportados contienen mis credenciales?
Según la documentación de n8n, los archivos JSON de workflow exportados contienen nombres de credenciales e ID de credenciales, pero no contraseñas ni tokens en texto plano. Aun así, deberías eliminar o anonimizar estas referencias antes de compartirlas o de incorporarlas a un repositorio compartido, para que nadie pueda sacar conclusiones sobre la estructura de tus credenciales a partir de los ID.
¿Puedo hacer copia de seguridad de nodos individuales en lugar de todo el workflow?
Sí. Si seleccionas nodos individuales en el canvas y los copias con Ctrl+C o Cmd+C, obtienes igualmente JSON de workflow válido que se puede guardar en un editor de texto y pegar de nuevo más tarde. Esto es útil para versionar por separado bloques reutilizables como un manejo de errores o una configuración HTTP estándar.
¿Cuál es la diferencia entre la opción de copia de seguridad de la CLI y una exportación simple de todos los workflows?
El comando `n8n export:workflow --backup` establece automáticamente los flags `--all --pretty --separate`, exportando así todos los workflows de la instancia, formateando el JSON de forma legible y creando un archivo propio para cada workflow. Una exportación simple con `--all` sin estos flags puede, en cambio, escribir todos los workflows en un único archivo o sin formato, lo que hace que las comparaciones de diff posteriores en Git sean considerablemente menos claras. Para una copia de seguridad en Git limpia, el modo de copia de seguridad es por tanto la mejor opción.
NordFlux UG (haftungsbeschränkt)
NordFlux crea empleados digitales para las organizaciones: automatizaciones y agentes KI que asumen el trabajo repetitivo. Usted mantiene el control.
¿Preguntas concretas sobre automatización o IA?
En un análisis inicial gratuito hablamos directamente de su caso. Sin compromiso.