Descarga la presentación en PDF:
Hoy vamos a hacer algo que parece de hackers, pero te prometo que es más fácil de lo que suena: vamos a darle superpoderes a n8n añadiendo nuestro propio código.
¿Qué significa esto? Que si alguna vez te has encontrado con algo que n8n no puede hacer de forma nativa, con un poquito de código podrás construirlo tú mismo. Las posibilidades se vuelven infinitas.
«Pero, Jero, ¡yo no sé programar!»
¡Tranquilo! Ese es el miedo número uno, y vamos a derribarlo ahora mismo. No necesitas ser un experto en programación. ¿Nuestro truco? Le vamos a pedir ayuda a la Inteligencia Artificial. Usaremos herramientas como ChatGPT para que nos escriba esos pequeños fragmentos de código (llamados snippets) que necesitamos. Nosotros solo tendremos que copiar, pegar y entender un poquito lo que hacen. ¡Vamos a ello!
El Gran Poder de n8n Autoalojado
Una de las ventajas brutales de tener n8n en tu propio ordenador o servidor (a diferencia de otras plataformas como Make o Zapier) es que tienes libertad total para ejecutar código personalizado de JavaScript y Python.
Esto es un superpoder, pero como diría el tío Ben, «un gran poder conlleva una gran responsabilidad». Si ejecutas un código malicioso o con errores, podrías afectar a tu servidor. Pero no te asustes, en la práctica es muy raro que pase algo malo si sigues los pasos con cuidado.
- JavaScript: ¡Es la estrella! Puedes instalar prácticamente cualquier biblioteca o paquete externo que exista.
- Python: Aquí hay una pequeña limitación. No puedes instalar paquetes externos libremente, pero n8n ya viene con una lista enorme de bibliotecas de Python preinstaladas y listas para usar (como las famosas BeautifulSoup4 o Jinja2).
Las 3 Formas de Añadir Código en n8n
Hay tres caminos para convertirte en un mago del código dentro de n8n. Vamos a verlos del más sencillo al más avanzado.
- Nodos de la Comunidad: La forma más fácil. Son nodos que otras personas ya han programado y compartido. Tú solo los instalas y los usas como cualquier otro nodo.
- El Nodo «Code»: El nodo oficial de n8n para meter tu propio código JavaScript o Python directamente en un workflow.
- Instalando Paquetes Externos: El nivel pro. Instalaremos una herramienta de código externa directamente en nuestro n8n para poder usarla en el nodo «Code».
¿Listo? ¡Manos a la obra!
Método 1: Nodos de la Comunidad (La Forma Más Sencilla)
Empecemos por lo fácil. Los nodos de la comunidad son como «apps» que la gente crea para n8n y que añaden funciones nuevas.
Ejemplo práctico: Transcribir un vídeo de YouTube a texto.
Imagina que quieres sacar todo el texto de un vídeo de YouTube. n8n no tiene un nodo para eso, pero la comunidad sí. ¡Vamos a instalarlo!
- En tu n8n, ve a los tres puntitos en la esquina superior derecha y haz clic en Settings.
- En el menú de la izquierda, busca Community Nodes.
- Haz clic en Install. Te aparecerá un buscador.
- ¡TRUCO IMPORTANTE! Para que n8n encuentre los nodos correctos, tu búsqueda debe empezar siempre por n8n-nodes-. Si buscas solo «youtube», te saldrán muchas cosas que no funcionan.
- Busca el nodo: n8n-nodes-youtube-transcript.
- Selecciónalo, acepta el riesgo (es un aviso estándar) y dale a Install.
¡Y ya está! Si ahora creas un nuevo workflow y buscas «YouTube», verás que aparece el nuevo nodo con un iconito que indica que es de la comunidad.
Para probarlo, solo tienes que pegar el ID de un vídeo de YouTube (el código que va después del v= en la URL) y ejecutarlo. Verás cómo te devuelve toda la transcripción dividida en pequeños fragmentos de texto. ¡Magia!
Método 2: El Nodo «Code» y Nuestro Primer Workflow Completo
Ahora vamos a ensuciarnos un poco más las manos con el nodo «Code». Este nodo es una caja en blanco donde podemos escribir nuestro código.
Las 2 Reglas de Oro del Nodo «Code» (JavaScript):
- Los datos de entrada siempre llegan a través de items. Imagina que items es una caja que contiene toda la información que le llega del nodo anterior.
- SIEMPRE debes devolver un resultado usando return. El nodo necesita que le devuelvas un objeto JSON. Si no lo haces, fallará. Incluso devolver un objeto vacío como return {} es válido.
Continuando el ejemplo: Vamos a ordenar la transcripción de YouTube.
El nodo de la comunidad nos dio el texto, pero todo desordenado en cientos de fragmentos. Vamos a usar el nodo «Code» para unirlo todo en un solo texto legible.
Este será nuestro workflow:
- Nodo YouTube Transcript: Lo usamos para obtener la transcripción (como vimos antes).
- Nodo Split Out In Batches: Este nodo es genial. Coge la lista larga de fragmentos que nos dio el primer nodo y la convierte en cientos de ítems separados, uno por cada frase.
- Nodo Set: Filtramos la información. De cada ítem, solo nos interesa el campo text. Creamos una nueva variable que contenga únicamente el texto de cada frase.
- Nodo Code: ¡Aquí viene la magia! Añadimos un nodo de código para unir todos esos cientos de textos en uno solo.
Dentro del nodo Code, pegamos el siguiente código de JavaScript (que podríamos haberle pedido a una IA):codeJavaScript
// Creamos una variable 'allItems' que contiene todos los datos de entrada.
const allItems = items.map(item => item.json.text);
// Unimos todos los textos en uno solo, separados por un espacio.
const fullText = allItems.join(' ');
// Devolvemos el resultado en un objeto JSON.
return {
fullTranscript: fullText
};
Al ejecutar este nodo, ¡tachán! Tendrás un único ítem de salida con el texto completo y ordenado del vídeo.
Para terminar, puedes añadir un nodo Move Binary Data para convertir ese texto en un archivo .txt y descargarlo.
Método 3: Instalando Paquetes Externos (Nivel Avanzado)
¿Quieres ir un paso más allá? Puedes instalar paquetes de código de JavaScript directamente en tu n8n local para usarlos.
Ejemplo práctico: Instalar un paquete que genera chistes.
- Busca la carpeta de n8n: Primero, necesitas encontrar dónde está instalado n8n en tu ordenador. Suele estar en una ruta como usr/local/lib/node_modules/n8n.
- Abre la terminal: Navega hasta esa carpeta desde la terminal de tu sistema.
- Instala el paquete: Vamos a instalar un paquete llamado get-a-joke. Escribe el siguiente comando y pulsa Enter:
npm install get-a-joke - El Paso Clave (¡No te lo saltes!): Ahora tienes que decirle a n8n que le das permiso para usar este paquete externo. Escribe esto en la terminal:
export NODE_FUNCTION_ALLOW_EXTERNAL=get-a-joke - Reinicia n8n: Cierra n8n si lo tenías abierto y vuelve a iniciarlo.
Ahora, en un nodo «Code», puedes «llamar» a ese paquete y usarlo. De nuevo, le preguntamos a la IA cómo hacerlo y nos daría un código como este:codeJavaScript
// Importamos el paquete que acabamos de instalar.
const joke = require('get-a-joke');
// Obtenemos un chiste.
const randomJoke = await joke.getRandomJoke();
// Devolvemos el chiste en el formato que n8n entiende.
return {
myJoke: randomJoke
};
¡Ejecútalo y verás cómo en cada ejecución te devuelve un chiste diferente!
Resumen de la Lección
¡Lo has conseguido! Ya sabes cómo romper los límites de n8n:
- Nodos de la Comunidad: La forma más rápida de añadir nuevas funciones.
- Nodo «Code»: Tu navaja suiza para manipular datos como un profesional, con la ayuda de la IA.
- Paquetes Externos: Para integrar herramientas externas y llevar tus automatizaciones a otro nivel.
No tengas miedo de experimentar. Empieza por lo sencillo, modifica pequeños códigos y pregúntale todas tus dudas a la IA. Verás cómo en poco tiempo estarás creando automatizaciones que nunca pensaste que fueran posibles.
¡Nos vemos en la siguiente lección!