Videotutorial Paso a Paso para que no te pierdas ningún detalle:
En esta lección vamos a abordar un tema vital para nuestra tranquilidad: las copias de seguridad (backups).
Imagina por un momento que ocurre una catástrofe: el servidor falla, una actualización de n8n se rompe o, por error humano, borramos algo importante. Si no tenemos respaldo, perderíamos todo nuestro trabajo. Para evitar esto, hoy te enseñaré a crear una automatización que guardará todos tus workflows automáticamente en GitHub, todos los días a las 7 de la mañana.
Lo mejor de este sistema es que es inteligente: detecta si has modificado un workflow y guarda la nueva versión, o si has creado uno nuevo, lo añade a la lista.
Vamos a dividir esto en dos partes: el Workflow Principal (el jefe) y el Sub-workflow (el trabajador).
Parte 1: El Workflow Principal (El Jefe)
Este es el encargado de iniciar el proceso y decir «¡Hey, es hora de guardar todo!».
1. El despertador (Nodo Schedule)
Empezamos con un Trigger Schedule. Lo configuramos para que se dispare todos los días a una hora específica (por ejemplo, a las 7:00 AM). Esto asegura que tu copia de seguridad esté siempre al día sin que tengas que mover un dedo.
2. Conectando n8n consigo mismo (n8n API)
Aquí viene algo muy potente. Usaremos un nodo para que n8n se conecte a su propia «mente» y lea todos los workflows que tienes creados.
- Seleccionamos el nodo de n8n y la acción Get Many (seleccionar todos los workflows).
- Configurar la credencial:
- Ve a Settings > n8n API en tu panel.
- Crea una nueva API Key.
- Copia esa clave (¡ojo, solo se ve una vez!).
- En la configuración de la credencial, pega la clave y tu URL base (recuerda que la URL debe terminar justo antes de /api/v1).
Al ejecutar esto, el nodo nos devolverá una lista con todos tus workflows.
3. Procesando uno por uno (Loop)
Como puedes tener decenas de automatizaciones, no queremos enviarlas todas de golpe. Usaremos un nodo «Loop» (o Split in Batches) con un tamaño de lote (Batch size) de 1.
Esto significa que cogerá el primer workflow, lo enviará a procesar, luego el segundo, y así sucesivamente.
4. Llamar al especialista (Execute Workflow)
Finalmente, este workflow principal llama al Sub-workflow (que explicaremos ahora) y le pasa la información (el ID) de cada automatización para que proceda a guardarla.
Parte 2: El Sub-workflow (El Trabajador)
Este es el flujo que recibe los datos y se encarga de hablar con GitHub.
1. Organización por Etiquetas (Tags)
Lo primero que hace este flujo es mirar si tu workflow tiene etiquetas (tags).
- Si tiene etiqueta (ej: «Marketing»): Creará una carpeta en GitHub llamada «Marketing» y guardará el archivo ahí.
- Si no tiene etiqueta: Lo guardará en la carpeta raíz.
Esto es genial para tener tu repositorio ordenado automáticamente.
2. Preparando GitHub
Antes de continuar, necesitas un lugar donde guardar los datos:
- Ve a tu cuenta de GitHub y crea un Nuevo Repositorio.
- Ponle un nombre (ej: n8n-backup).
- Márcalo como Privado (muy importante para proteger tus datos).
- En n8n, configuraremos unas variables con tu nombre de usuario y el nombre del repositorio para usarlas en los nodos.
3. La conexión segura (Credenciales OAuth2)
Para que n8n pueda escribir en tu GitHub, usaremos el nodo de GitHub. La forma más robusta de conectarlo es mediante OAuth2:
- En GitHub, ve a Settings > Developer Settings > OAuth Apps y crea una nueva aplicación.
- Copia el Client ID y el Client Secret.
- Úsalos en n8n para conectar tu cuenta. ¡Una vez salga el verde «Connected», estás listo!
4. La Lógica Inteligente (Comparación)
Aquí es donde ocurre la magia. No queremos sobrescribir archivos si no han cambiado, ni crear duplicados. El flujo hace lo siguiente:
- Descarga el archivo actual de GitHub: Busca si ya existe una copia de ese workflow.
- Compara: Usa un nodo de código (Code Node) para comparar el archivo que acabamos de descargar de GitHub con el que tenemos vivo en n8n actualmente.
El sistema decide entre tres opciones:
- Opción 0 (Iguales): No ha habido cambios. No hace nada.
- Opción 1 (Diferente): El workflow ha cambiado. Actualiza el archivo existente en GitHub (Edit file).
- Opción 2 (Nuevo): El workflow no existe en GitHub. Crea un archivo nuevo (Create file).
5. Guardando como JSON
Finalmente, los nodos de GitHub suben la información. Un detalle importante es que usamos el ID del workflow como nombre del archivo. ¿Por qué? Porque el nombre del workflow puedes cambiarlo cuando quieras, pero el ID es único y nunca cambia. Así evitamos errores y duplicados.
Resumen
Al terminar y activar esta automatización:
- Todos los días a las 7:00 AM se despierta.
- Lee todas tus automatizaciones.
- Las revisa una por una.
- Se conecta a tu GitHub privado.
- Si hay cambios o workflows nuevos, los guarda organizados por carpetas según sus etiquetas.
Con esto, tendrás un historial completo de tu trabajo. Si algún día «rompes» algo, solo tienes que ir a tu GitHub, buscar la versión de ayer y restaurarla. ¡Es un seguro de vida para tus automatizaciones!
Espero que esta lección te sea de mucha utilidad. ¡Nos vemos en la próxima!