En este tercer artículo vamos a explicar todos los aspectos relacionados con la importación y exportación de los flujos de trabajo (workflows) de la herramienta n8n y cuáles son sus diferentes posibilidades.

A modo de recordatorio pongo los enlaces a los artículos que se irán relacionando :
- "Primeros pasos con n8n (Parte 1)" : Artículo de introducción a la herramienta n8n donde se explicarán más ciertos detalles técnicos de la herramienta y ciertos conceptos necesarios para explotar el máximo su uso.
- "Acelerando los desarrollos con contenedores : n8n": Artículo de soporte que ayudará a desplegar la herramienta en local mediante Docker y que servirá de base para la realización de los siguientes artículos.
- "Ejemplo de n8n: Uso del nodo code": Artículo de soporte que se utilizará para implementar un ejemplo de workflow sin integraciones externas, para explicar el nodo code y para usarlo como base de ejemplo para otros tutoriales.
- "Primeros pasos con n8n (Parte 2) : Uso de Base de Datos": Artículo de la herramienta n8n donde se explicarán las diferentes configuraciones de base de datos que se pueden tener y su integración.
- "Primeros pasos con n8n (Parte 3) : Importar/Exportar Flujos de Trabajo": Artículo de la herramienta n8n donde se explicarán las diferentes maneras de importar y exportar workflows. Este artículo 😃.
Este es el índice que se va a utilizar para estructurar este artículo
- 1. Introducción
- 2. Stack Tecnológico
- 3. Ejemplos de Uso
- 4. Conclusiones
1. Introducción
En este apartado se tratarán los siguiente puntos :
- 1.1. ¿Por qué es importante importar/exportar workflows en n8n?
- 1.2. Formato de la exportación de workflows
- 1.3. Buenas prácticas sobre workflows
1.1. ¿Por qué es importante importar/exportar workflows en n8n?
La importación y exportación de workflows es fundamental en la herramienta porque permite garantizar la portabilidad de las automatizaciones, su seguridad y su eficiencia.
Para este tipo de herramientas es muy normal que se necesite:
- Compartir: Facilita que los equipos puedan colaborar y por lo tanto reutilizar todo o parte de los workflows, sin tener que hacerlos desde cero o reconstruirlos manualmente.
- Facilita que se puedan reutilizar en diferentes proyectos
- Respaldar (copias de seguridad): Siempre puede existir errores (humanos, tecnológicos, etc.) por lo que poder disponer de una copia de seguridad ayuda a poder restaurarlos de forma sencilla en caso de problemas.
- Migrar/Desplegar: Se hace necesario mover e implantar nuestros workflows en los diferentes entornos implicados (desarrollo, pruebas, producción, etc.) o bien en diferentes plataformas con diferente comportamiento. Con la exportación se evita tener que volver a hacer o reconstruir un workflow de forma manual y desde cero en cada entorno.
Existe un apartado dentro de la documentación oficial.

1.2. Formato de la exportación de workflows
El tipo de fichero generado en la exportación de n8n para workflows es del tipo JSON.
Se trata de un fichero JSON simple que contiene los nodos de un workflow.
Cada workflow se puede exportar en un fichero independiente o bien se puede unificar todos en uno.
Ejemplo de fichero JSON de workflow:
{
"name": "Conversor Temperatura",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
0,
0
],
"id": "594a4ade-a8b8-48dd-9a0d-82b5d0c2e901",
"name": "When clicking ‘Test workflow’"
},
...
1.3. Buenas prácticas sobre workflows
Existen una serie de buenas prácticas que se puede tener en cuenta
- Control de versiones
- La herramienta no tiene una gestión de versiones básica dentro de la propia herramienta.
- Los ficheros JSON pueden ser almacenados en un repositorio de código (Por ejemplo: Git) de forma que se pueden gestionar cambios de los workflows.
- Se puede revertir los cambios ante errores y así volver a disponer de una versión adecuada.
- Automatización
- Se aconseja utilizar la API para sincronizar workflows entre distintos entornos de n8n.
- Seguridad
- Esta parte se gestiona desde las credenciales. (Se hablará en el siguiente tutorial)
2. Stack Tecnológico
Este es el stack tecnológico elegido para implementar la funcionalidad "n8n":
- Docker - Tecnología de Contenedores/Containers
- Docker Hub - Repositorio de Docker Público donde se ubican las imágenes oficiales
- n8n - Herramienta de automatización de procesos + Agentes IA
- curl - Herramienta de línea de comandos para trabajar con APIs
3. Ejemplos de Uso
Para enseñar a utilizar n8n y así practicar se ha habilitado un repositorio, este repositorio se reutilizará para otros artículos de la serie "Primeros pasos con n8n".
Para este tutorial se hará uso de dos elementos:
1) La instalación de n8n a utilizar vía Docker
La instalación utilizada para la parte práctica será la realizada sobre Docker en el artículo "Acelerando los desarrollos con contenedores : n8n"
2) Un workflow de ejemplo
El workflow que usaremos para practicar con la importación y la exportación será el definido en el artículo "Ejemplo de n8n: Uso del nodo code"
Esta sección se divide en diferentes casos prácticos:
- 3.1. Ejemplos de exportación de Workflows
- Exportación desde la interfaz web
- Exportación desde la API
- Exportación desde el CLI
- 3.2. Ejemplos de importación de Workflows
- Importación desde la interfaz web
- Desde un fichero
- Desde una URL
- Importación desde el API
- Importación desde el CLI
- Importación desde la interfaz web
3.1. Ejemplos de exportación de Workflows
Existen 3 posibilidades:
- Exportación desde la interfaz web
- Exportación desde el API
- Exportación desde el CLI
Exportación desde la interfaz web
La interfaz de la herramienta permite realizar esta acción de forma muy sencilla.
Pasos a seguir:
- Abrir el workflow que se quiera exportar
- Pulsar sobre menú de opciones (botón de tres puntos arriba a la derecha)
- Seleccionar la opción de "Download"

- Se descargará un único fichero JSON que contendrá el workflow en la ubicación indicada
- Se propondrá como nombre el indicado en el workflow: Conversor Temperatura
Exportación desde el API
La herramienta proporciona una API de trabajo para habilitar ciertas operativas.
Requerimientos previos
- Tener acceso a la URL base de la instancia (Por defecto: http://localhost:5678)
- Tener acceso al API de n8n
- Utilizar una API Key válida o autenticación con credenciales
- Se accede desde la opción de "Settings" del usuario
- Establecer el nombre
- Apuntar el API Key
- Se usará con la cabecera:
X-N8N-API-KEY

- Conocer el ID del workflow que se quiere exportar
- Se accede desde la opción de "Settings" del propio workflow
- Se muestra en el título tras el símbolo "#"

Como se puede ver el ID del workflow de ejemplo es: YoZxFh4gQHIwaFwF
Pasos a seguir:
- Realizar una petición "Retrieves a workflow" del API :
GET http://localhost:5678/api/v1/workflows/{ID_WORKFLOW}
- Establecer la autenticación por cabecera: X-N8N-API-KEY
- Su valor viene dado por el valor de la API Key
Ejemplo de petición cURL
# Para un servidor propio (npm o Docker)
curl --location 'http://localhost:5678/api/v1/workflows/YoZxFh4gQHIwaFwF' \
--header 'Accept: application/json' \
--header 'X-N8N-API-KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2ZGJkZDI5NS0xMDJhLTRlNTctYjY3Zi0yNTBlMmFiM2FmMjYiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzQwOTkwMjQxfQ.961o755R0yILfVFzfwstBZAA_N3kZewL2kjXt0Vbw6Q'
Ejemplo de ejecución

Se devuelve el JSON del workflow indicado en la petición.
Exportación desde el CLI
La propia herramienta n8n proporciona un CLI que facilita ciertas operativas desde la línea de comandos.
Existen una serie de comandos y parámetros que pueden resultar interesantes y que se explican en la documentación.
# Export all your workflows to the standard output (terminal)
n8n export:workflow --all
# Export a workflow by its ID and specify the output file name
n8n export:workflow --id=<ID> --output=file.json
# Export all workflows to a specific directory in a single file
n8n export:workflow --all --output=backups/latest/file.json
# Export all the workflows to a specific directory using the --backup flag (details above)
n8n export:workflow --backup --output=backups/latest/
Para el caso de la instalación local "normal" (npm)
Pasos a seguir:
- Acceder a la ubicación del ejecutable de la herramienta
- Ejecutar el comando que se quiera realizar
Para el caso de la instalación local con Docker
Cuando se usa Docker entonces se necesita acceder al interior del contenedor
Pasos a seguir:
- Listar los contenedores activos
docker ps
- Identificar el ID del contenedor de n8n
Opción 1: Ejecutar desde el exterior del contenedor
Se ejecutan todos desde un comando Docker de ejecución "exec".
Por ejemplo:
# Template
docker exec -u node -it $ID $COMANDO_N8N
# Comando de exportación de todos los workflows en un directorio de forma independiente
docker exec -u node -it $ID n8n export:workflow --backup --output=./workflows/
Donde $ID
es el nombre del contenedor y $COMANDO_N8N
es la instrucción de n8n que se quiere ejecutar.
Ejemplo de ejecución de la exportación en un directorio como workflows independientes.

Se generará un directorio con el nombre indicado y se crearán las exportaciones de cada workflow de forma independiente. Este directorio se encuentra dentro del volumen de persistencia establecido en el contenedor.
Cada fichero de workflow tiene por nombre su identificador.
En el caso que se va a mostrar en la imagen siguiente se podrá ver que el backup ha exportado más de un workflow.

Se puede ver en el workflow marcado en azul que se tratar del workflow de ejemplo utilizado debido al nombre del fichero (y a la preview de su contenido).
Opción 2: Ejecutar desde el interior del contenedor
Se accede previamente al interior del contenedor y se ejecuta el comando que se quiere. Esta opción se realiza en 2 pasos:
- Acceso al interior del contenedor (Paso 1)
docker exec -u node -it $ID "/bin/sh"
Donde $ID
es el nombre del contenedor
- Ejecutar el comando en el interior (Paso 2)
Por ejemplo:
# Comando de exportación de todos los workflows en un directorio de forma independiente
n8n export:workflow --backup --output=./workflows/
# Comando de exportación de todos los workflows en un único fichero JSON denominado "exported-workflows.json" que se ubicará en el directorio /home/node en el interior del contenedor
n8n export:workflow --all --output=exported-workflows.json
Ejemplo de ejecución de la exportación en un directorio y como workflows independientes.

Se generará un directorio con el nombre indicado y se crearán las exportaciones de cada workflow creado de forma independiente. Este directorio se encuentra dentro del volumen de persistencia establecido en el contenedor.
Cada fichero de workflow tiene por nombre su identificador.
En el caso que se va a mostrar en la imagen siguiente se podrá ver que el backup ha exportado más de un workflow.

Se puede ver en el workflow marcado en azul que se tratar del workflow de ejemplo utilizado debido al nombre del fichero (y a la preview de su contenido).
Anexo: Operaciones de Ayuda
Una de las acciones que se hace normalmente en estos casos, es mover las exportaciones creadas en una ubicación del interior del contenedor a un directorio de la máquina del contenedor.
- Copiar la exportación de workflows fuera del contenedor
Ejemplo de ejecución
docker cp $ID:/home/node/exported-workflow.json
/home/user/directory/exported-workflow.json
Donde $ID
es el nombre del contenedor .
Existe otra manera de hacer esto, que es copiarlo directamente desde el volumen de persistencia de Docker.
Otra de las operaciones que se puede necesitar es la de enviar la configuración a un otro servidor para ellos nos ayudaremos del comando: scp
- Transferir la exportación de workflows a otro servidor/máquina
scp -P 22 /home/user/test/exported-workflow.json test2@acme.example.com:/home/user/test/
Con este comando podremos enviar un workflows desde nuestro servidor a otro servidor.
Anexo 2: Scripting
Se puede generar cualquier tipo de scripting para ayudar implementar toda esta parte. De esta forma podríamos automatizar toda esta parte.
3.2. Ejemplos de importación de Workflows
Existen 3 posibilidades:
- Importación desde la interfaz web
- Desde un fichero
- Desde una URL
- Importación desde el API
- Importación desde el CLI
Importación desde la interfaz web
La interfaz de la herramienta permite realizar esta acción de forma muy sencilla.
Desde un fichero
Pasos a seguir:
- Crear un nuevo workflow
- Pulsar sobre menú de opciones (botón de tres puntos arriba a la derecha)
- Seleccionar la opción "Import from File..."

- Seleccionar el fichero de workflow
Por ejemplo:
Se ha utilizado el ejemplo utilizado en el artículo "Ejemplo de n8n: Uso del nodo code al repositorio y se puede utilizar desde el fichero que se ubica en workflows/Conversor Temperatura del propio repositorio.

- Establecer el nombre del workflow: Conversor Temperatura
- Se guardará todo
- Sino se requiere pulsar sobre el botón de guardado
Desde una URL
Pasos a seguir:
- Crear un nuevo workflow
- Pulsar sobre menú de opciones (botón de tres puntos arriba a la derecha)
- Seleccionar la opción "Import from URL..."

Por ejemplo:
Se ha utilizado la exportación del ejemplo utilizado en el artículo "Ejemplo de n8n: Uso del nodo code al repositorio y se puede utilizar desde la URL (formato RAW) de publicación del repositorio.
https://raw.githubusercontent.com/vjmadrid/enmilocalfunciona-n8n/refs/heads/main/workflows/Conversor%20Temperatura/Conversor_Temperatura.json

- Confirmar la importación

- Establecer el nombre del workflow: Conversor Temperatura
- Se guardará todo
- Si no guarda se requiere pulsar sobre el botón de guardado
Importación desde el API
La herramienta proporciona una API de trabajo para habilitar ciertas operativas
Requerimientos previos
- Los mismos que se usan en la exportación
Pasos a seguir:
- Realizar una petición a "Create a workflow" :
POST https://docs.n8n.io/api/v1/workflows
Content-Type: application/json
{
"name": "Mi Workflow Importado",
"nodes": [...]
}
- Establecer la autenticación por cabecera: X-N8N-API-KEY
- Su valor viene dado por el valor de la API Key
Importación desde el CLI
La propia herramienta proporciona un CLI que facilita ciertas operativas desde la línea de comandos.
Existen una serie de comandos y parámetros que pueden resultar interesantes y que se explican en la documentación.
# Import workflows from a specific file
n8n import:workflow --input=file.json
# Import all the workflow files as JSON from the specified directory
n8n import:workflow --separate --input=backups/latest/
Para el caso de la instalación local "normal" (npm)
Pasos a seguir:
- Acceder a la ubicación del ejecutable de la herramienta
- Ejecutar el comando que se quiera realizar
Para el caso de la instalación local con Docker
Cuando se usa Docker entonces se necesita acceder al interior del contenedor
Pasos a seguir:
- Listar los contenedores activos
docker ps
- Identificar el ID del contenedor de n8n
Opción 1: Ejecutar desde el exterior del contenedor
Se ejecutan todos desde un comando Docker de ejecución "exec".
Por ejemplo:
# Template
docker exec -u node -it $ID $COMANDO_N8N
# Comando de importación de todos los workflows en un directorio de forma independiente
docker exec -u node -it $ID n8n import:workflow --separate --input=./workflows/
Ejemplo de ejecución de la importación en un directorio:

Se importarán todos los workflows de un directorio. Esta opción es muy útil para restablecer backups.
Después de ejecutar este comando, se aconseja esperar un poco de tiempo y refrescar la aplicación.

Se puede observar cómo se han importado todos los workflows. En mi caso, había más workflows que restaurar en el directorio.
Opción 2: Ejecutar desde el interior del contenedor
Se accede previamente al interior del contenedor y se ejecuta el comando que se quiere. Esta opción se realiza en 2 pasos:
- Acceso al interior del contenedor (Paso 1)
docker exec -u node -it $ID "/bin/sh"
Donde $ID
es el nombre del contenedor.
- Ejecutar el comando en el interior (Paso 2)
Por ejemplo:
# Comando de importación de todos los workflows en un directorio de forma independiente
n8n import:workflow --separate --input=./workflows/
Ejemplo de ejecución de la importación en un directorio y los wokflows independientes.

Se importarán todos los workflows de un directorio. Esta opción es muy útil para restablecer backups.
Después de ejecutar este comando, se aconseja esperar un poco de tiempo y refrescar la aplicación.

Anexo : Scripting
Se puede generar cualquier tipo de scripting para ayudar implementar toda esta parte. De esta forma podríamos automatizar toda esta parte.
4. Conclusiones
El artículo enseña todas las posibilidades de exportación e importación de workflows en la herramienta n8n. El dominio de estas actividades se convierte en una práctica esencial para optimizar el flujo de trabajo, mejorar la seguridad y garantizar la escalabilidad de las automatizaciones. Así que te aconsejo ponerte las pilas en esto si quieres ahorrar tiempo, reducir errores y facilitar la gestión de tus integraciones en otros entornos.
Atentos al siguiente artículo que será lo mismo, pero con credenciales 😄.