En este artículo te voy a enseñar a utilizar los nodos de transformación de datos dentro de n8n. Sé que puede parecer un poco complejo, un poco raro, pero no te preocupes porque es muy sencillo y de verdad te digo que los vas a utilizar mucho en tus flows.

Yo no soy especialista en código, pero aún así utilizo el nodo ‘Code’ un montón. ¿Por qué? Porque con la ayuda de ChatGPT o de Claude puedes crear códigos que te van a ser muy funcionales y muy buenos. Y el nodo ‘Edit Fields’ es, sin duda, uno de los que más vas a utilizar. Vamos a ver exactamente cómo funcionan y para qué los vas a necesitar.

¿Por qué son tan importantes los nodos de transformación en n8n?

Imagina que estás construyendo un mueble de Ikea. Los paneles de madera, los tornillos y los accesorios que te llegan en la caja son los datos crudos. Podrías intentar encajarlos a lo bruto, a martillazos, y seguramente acabarías con un armario cojo. O podrías usar las herramientas adecuadas –una llave Allen, un destornillador– para darles la forma exacta que necesitan antes de montarlos. Eso es lo que hacen los nodos de transformación: son tus herramientas para dar forma a la información antes de usarla.

El problema de los datos crudos

Cuando conectas n8n a una API, a una hoja de cálculo o a un formulario web, los datos que llegan rara vez están listos para usarse tal cual. Vienen con campos que no necesitas, con nombres de columnas en inglés cuando tu siguiente nodo espera español, o con un formato de fecha que es un lío. Si intentas pasar eso directamente a otro nodo, muchas veces va a fallar. Es como intentar meter un tornillo M8 en un agujero para un M6: no entra, y si fuerzas, rompes algo.

La solución: dar forma a la información

Aquí es donde entra la magia. Los nodos de transformación cogen esos datos desordenados y los remodelan. Los limpias, les cambias el nombre, eliminas lo que sobra, añades lo que falta y los dejas perfectos para el siguiente paso de tu automatización. Y lo más importante: en n8n, los datos se representan casi siempre en formato JSON. Cada nodo recibe y devuelve datos en este formato. No es programación, es simplemente información ordenada en pares de campo y valor. Los nodos de transformación trabajan con ese JSON para que todo fluya sin problemas.

Sin ellos, tus workflows serían un caos de errores y adaptaciones manuales. Con ellos, tienes un flujo limpio, eficiente y profesional.

El nodo estrella: ‘Edit Fields’ (o ‘Set’)

Si tuviera que elegir un solo nodo de transformación para salvar mi vida en n8n, sería este. Te lo digo ahora: lo vas a usar en la gran mayoría de tus workflows que tengan algo de complejidad. ¿Por qué? Porque es el equivalente a tener un taller de chapa y pintura para tus datos.

Para qué lo vas a usar (y mucho)

El nodo ‘Edit Fields’ (a veces llamado ‘Set’) tiene un superpoder muy concreto: no cambia el número de items, solo cambia la forma de los datos, permitiendo seleccionar, renombrar o eliminar campos. Esto significa que puedes coger lo que te llega y transformarlo sin alterar cuántos elementos hay en el flujo.

Pongamos que tu trigger te llega con un dato llamado user_email. Pero tu nodo de Google Sheets espera un campo que se llame correo. Con ‘Edit Fields’, simplemente arrastras user_email desde el panel izquierdo, lo pones en el nuevo campo y le cambias el nombre a correo. Fin del problema. También puedes usarlo para añadir un campo constante, eliminar campos ruidosos o dar formato rápido, como juntar nombre y apellidos.

Un ejemplo práctico: limpiando datos de una API

Vamos a simular un caso real. Tienes un webhook que recibe un formulario de contacto con estos datos:

{
  "first_name": "María",
  "last_name": "García",
  "email_address": "maria@ejemplo.com",
  "phone_number": "+34123456789",
  "newsletter_opt_in": true,
  "timestamp": "2023-10-05T14:30:00Z"
}

Y tú necesitas mandar un email de bienvenida con un servicio que espera estos campos: nombre_completo, email, telefono.

Así configurarías el nodo ‘Edit Fields’: 1. Añadir ‘nombre_completo’: En “Add Field”, seleccionas “String”. Le das el nombre nombre_completo. En el valor, usas una expresión para juntar: {{$json.first_name}} {{$json.last_name}}. 2. Renombrar ’email_address’: Arrastras el campo email_address desde el panel izquierdo a un nuevo campo y lo renombras directamente a email. 3. Renombrar ‘phone_number’: Lo mismo, lo arrastras y lo renombras a telefono. 4. Eliminar lo sobrante: En las opciones, activas “Remove Other Fields”. Así, newsletter_opt_in y timestamp desaparecen y no saturan el flujo.

El resultado que sale del nodo es justo lo que necesitas:

{
  "nombre_completo": "María García",
  "email": "maria@ejemplo.com",
  "telefono": "+34123456789"
}

¿Ves la potencia? Has adaptado los datos sin tocar una línea de código. Y fíjate, el número de items sigue siendo uno, solo cambió la forma de ese item.

Los iconos son tu guía

Una cosa que me salvó al principio son los iconos. Cuando arrastras un campo del input, n8n le pone un iconito al lado según su tipo: un símbolo de texto (abc) para cadenas, un # para números, un check para booleanos (verdadero/falso). Esto te ayuda a identificar rápido si estás trabajando con el dato correcto y a detectar errores –si esperabas un número y ves el icono de texto, algo ha ido mal atrás.

En resumen, los nodos de transformación, como ‘Edit Fields’ y ‘Code’, sirven para agregar, modificar, eliminar campos o ejecutar código personalizado para remodelar los datos antes de enviarlos al siguiente nodo. ‘Edit Fields’ es tu herramienta de moldeo principal. Apréndetela bien.

Tu salvación si no programas: el nodo ‘Code’

Aquí viene la parte que más miedo suele dar, pero que en realidad es una de las más liberadoras. Yo te lo digo claro: yo no sé programar, ¿vale? Pero el nodo ‘Code’ es uno de los que más uso. La clave está en que hoy no necesitas ser un experto para aprovecharlo.

Por qué yo, que no soy programador, lo uso a diario

Porque hay operaciones que ‘Edit Fields’ no puede hacer. Necesitas filtrar una lista de productos por aquellos con stock mayor que cero, calcular el IVA de un precio, extraer las iniciales de un nombre, formatear una fecha de una manera muy específica… Para eso, necesitas lógica condicional y operaciones que se escriben mejor en código.

La gran noticia es que n8n te lo pone fácil. Tienes nodos de ‘Code’ para JavaScript y para Python. Yo suelo usar el de JavaScript porque es el más común y el que mejor entienden las IAs que voy a usar después.

Cómo funciona el flujo: input → código → output

El mecanismo es siempre el mismo: 1. Input: Por la izquierda le entra el JSON del nodo anterior. Dentro del nodo ‘Code’, puedes acceder a ese dato con $json. Si el item tiene un campo precio, lo referencias como $json.precio. 2. Código: Tú escribes (o pegas) un trozo de código que haga lo que necesites. El código debe tomar datos de $json, trabajar con ellos, y asignar el resultado a un nuevo objeto, normalmente llamado items. 3. Output: Lo que haya dentro de ese objeto items es lo que saldrá por la derecha del nodo hacia el siguiente paso de tu workflow.

Es un canal recto. No cambia la estructura mágicamente, tú decides exactamente qué sale.

Tu aliado secreto: ChatGPT y Claude para escribir el código

Aquí está el truco que lo cambia todo. ¿Que no sabes JavaScript? No pasa nada. Abres ChatGPT o Claude y le escribes un prompt como este:

“Necesito un código JavaScript para un nodo ‘Code’ en n8n. El nodo recibe un item con un campo productos que es una lista de objetos. Cada objeto tiene nombre, precio y stock. Quiero filtrar la lista para quedarme solo con los productos que tienen stock mayor que 0, y además añadir un nuevo campo a cada producto llamado precio_con_iva que sea el precio multiplicado por 1.21. Devuelve solo el código listo para copiar y pegar en n8n.”

En segundos, tienes un código perfecto y funcional. Te dará algo como esto:

// Filtra productos con stock y añade campo precio_con_iva
const productosFiltrados = $json.productos
  .filter(producto => producto.stock > 0)
  .map(producto => {
    return {
      ...producto,
      precio_con_iva: producto.precio * 1.21
    };
  });

// En n8n, devolvemos un array de objetos con la estructura que n8n espera
return [{
  json: {
    productos_con_stock: productosFiltrados
  }
}];

Lo copias, lo pegas en el nodo, y ya está. Has añadido una lógica compleja a tu automatización sin saber programar. Te explico el último paso: en el nodo ‘Code’ de n8n, hay un gran cuadro de texto vacío. Es ahí donde pegas este código. No tienes que tocar más opciones. Le das a “Execute Node” y verás cómo transforma los datos.

Esto es posible porque n8n tiene una cantidad enorme de nodos organizados en categorías como Trigger, Action, Logic, Transform y AI, y el ecosistema está diseñado para ser extensible. El nodo ‘Code’ es tu puerta a esa extensibilidad. No le tengas miedo. Con una IA como copiloto, se convierte en una de las herramientas más potentes que tienes.

Tres nodos de transformación más que uso y para qué

Además de los dos grandes, hay otros tres nodos en la categoría ‘Transform’ que están muy bien y solucionan problemas específicos. No los usarás tanto, pero cuando los necesites, te salvarán la vida. Te voy a hacer un recorrido rápido, contándote para qué los he usado yo.

Filtrar datos como un profesional

El nodo ‘Filter’ es como un portero de discoteca para tus datos. Le dices unas condiciones y solo deja pasar a los items que las cumplen. Imagina que recibes leads de un formulario y solo quieres procesar aquellos que han marcado la casilla de “presupuesto urgente”. O que quieres filtrar pedidos con un valor superior a 100€. Aquí pones la condición (ej. $json["urgente"] es igual a true) y listo. Un detalle clave: a diferencia de filtrar con código, aquí lo haces de forma visual, con menús desplegables. Es más rápido para condiciones sencillas.

‘Split Out’ para dividir y conquistar

Este es muy útil. El nodo ‘Split Out’ coge un campo de tu item que sea una lista (un array) y lo divide en múltiples items independientes. Recibes un pedido con múltiples artículos en un campo llamado lineas_pedido. ‘Split Out’ toma esa lista y convierte cada línea en un item independiente. Así, luego puedes procesar cada artículo por separado (generar una factura por cada uno, enviar un aviso a un almacén distinto…). Esto es distinto a crear ramas paralelas del workflow; aquí divides un solo item con una lista en muchos items individuales. En el vídeo aclaré que esto sirve muy bien para hacer una ramificación y ampliar los flujos.

‘Limit’ para no sobrecargar tu workflow

El nodo ‘Limit’ es tu válvula de seguridad. Le dices “deja pasar como máximo X items”. Sobre todo en desarrollo y pruebas. Si estoy probando un flujo que va a recibir miles de datos, pongo un límite de 5 o 10 items para asegurarme de que todo funciona sin saturar los servicios conectados o sin gastar créditos de API innecesarios. Es un consejo de experiencia: si no, tu flow puede estar horas procesando datos en bucle durante una prueba. Esto lo limita y te da control.

Hay muchos otros nodos en la categoría, y es normal. n8n es tan grande que te permite hacer tantísimas cosas que cada uno, para su sector y para su nicho, va a encontrar el nodo que le sirva. Mi recomendación es que conozcas la existencia de ‘Filter’, ‘Split Out’ y ‘Limit’. Los demás, búscalos cuando te surja un problema que no sepas resolver con los nodos básicos. Seguro que hay alguno que te encaja.

Errores comunes y cómo debuggear cuando algo falla

Una vez que empieces a usar estos nodos, es normal que algo no salga como esperabas. Te voy a contar los problemas más típicos que me he encontrado y cómo los soluciono, para que no te pierdas.

El error del campo que no existe

Es el clásico. Pones una expresión como {{$json.correo}} en ‘Edit Fields’ y el nodo falla o devuelve vacío. ¿Por qué? Porque el campo no se llama exactamente así, lleva un guión bajo o mayúscula que no has visto. La solución: Usa siempre el panel izquierdo del nodo ‘Edit Fields’ para arrastrar campos. Ahí ves el nombre exacto. Si el campo no aparece, es que el nodo anterior no lo está enviando. Vuelve atrás y revisa la salida del nodo anterior con “Execute Node”. Ahí verás el JSON real.

Cuando el ‘Code’ node no devuelve nada

Pegas el código de ChatGPT, ejecutas y no sale nada, o sale un error. La solución: El 90% de las veces es porque el código no está devolviendo la estructura que n8n espera. Recuerda: tiene que ser un array de objetos, y cada objeto debe tener una propiedad json. Fíjate en el ejemplo que te puse antes. Si tu código hace un console.log, no verás nada en n8n. Tienes que asegurarte de que la última línea es un return con esa estructura.

El flujo se ralentiza o se bloquea

A veces, sobre todo con ‘Split Out’ o si procesas muchos items, el workflow va lento o se queda colgado. La solución: Aquí es donde el nodo ‘Limit’ es tu amigo para pruebas. Pero en producción, revisa si estás haciendo operaciones muy pesadas en un nodo ‘Code’ (como bucles sobre miles de elementos) o si estás llamando a una API externa en cada item sin control. Puedes usar el nodo ‘Split Out’ con cuidado, y a veces es mejor procesar por lotes más pequeños.

La clave para debuggear es ejecutar nodo por nodo. No actives todo el workflow de golpe. Ejecuta el trigger, luego el ‘Edit Fields’, luego el ‘Code’… y en cada paso, mira la salida con el botón “Execute Node”. Así aíslas exactamente dónde se rompe.

Cómo estructurar un workflow limpio: el patrón de ramificación

Una vez que dominas los nodos de transformación, hay un error de diseño muy común. Te voy a contar cuál es y cómo solucionarlo con un patrón limpio que hace que estos nodos sean aún más útiles.

El error común: la cadena lineal infinita

El instinto natural es conectar un nodo detrás de otro en una línea larguísima: Trigger → Obtener datos → Transformar datos → Enviar email → Guardar en Google Sheets → Notificar por Telegram → etc. El problema es que este flujo se vuelve frágil y difícil de mantener. Si falla el envío del email, quizá todo lo que viene después no se ejecuta. Además, no estás aprovechando la capacidad de n8n para hacer cosas en paralelo.

La solución: un trigger, múltiples ramas, una fusión

El patrón que yo uso, y que es mucho más robusto, es el de ramificación después del trigger. 1. Trigger: Un solo nodo que inicia el workflow (un Webhook, un Schedule, etc.). 2. Transformación inicial (opcional): Aquí puedes poner tu nodo ‘Edit Fields’ o ‘Code’ para preparar los datos crudos. Esto te da un conjunto de datos limpio y común para todas las ramas. 3. Ramas independientes: Aquí es donde usas un nodo como ‘Split Out’ si necesitas dividir items, o simplemente conectas varios nodos en paralelo saliendo del mismo punto. Por ejemplo: * Rama A: Enviar el email de confirmación al cliente. * Rama B: Guardar los datos en tu base de datos o Google Sheets. * Rama C: Enviar una notificación interna a tu equipo por Slack. Cada rama es independiente. Si falla el Slack, el email y el guardado se ejecutarán igual. 4. Fusión final (opcional): Si necesitas recopilar resultados de varias ramas (por ejemplo, el éxito o fracaso de cada acción), puedes usar un nodo ‘Merge’ o ‘Aggregate’ al final para juntar los logs y hacer un resumen.

Este patrón hace tus workflows más rápidos (porque se ejecutan tareas en paralelo), más resistentes a fallos y mucho más fáciles de modificar. Puedes añadir o quitar una rama sin tocar el resto del flujo. Los nodos de transformación son clave aquí, porque te aseguran que los datos que llegan a cada rama están en el formato exacto que esa rama necesita.

Mi recomendación final y próximos pasos

Si has llegado hasta aquí, ya tienes la base para limpiar y dominar cualquier flujo de datos en n8n. Ahora te toca a ti ponerlo en práctica.

Empieza por ‘Edit Fields’ y ‘Code’

No intentes aprenderte todos los nodos de una vez. Enfócate en estos dos. Abre n8n, crea un workflow de prueba con un Manual Trigger y juega. Pon un ‘Edit Fields’ y prueba a renombrar campos, a añadir uno constante, a eliminar otros. Luego, conecta un nodo ‘Code’ y pídele a ChatGPT un script sencillo (por ejemplo, que convierta un precio sin IVA a con IVA). Familiarízate con el flujo de entrada y salida.

No tengas miedo a pedir ayuda a la IA

Este es el cambio de mentalidad más importante. Ya no hace falta ser programador para automatizar tareas complejas. ChatGPT, Claude o tu IA favorita son tu equipo de desarrollo. Aprende a escribir prompts claros y concretos para que te generen el código que necesitas. Es una habilidad que vale su peso en oro.

Práctica con un caso real

La teoría está bien, pero se consolida con la práctica. Piensa en una tarea repetitiva que hagas: recopilar respuestas de un formulario y pasarlas a una hoja de cálculo, por ejemplo. Intenta automatizarla en n8n aplicando lo aprendido: 1. Usa un trigger (Webhook o Schedule). 2. Limpia y da formato con ‘Edit Fields’. 3. Si necesitas algo más específico, como calcular un campo en base a otros, usa ‘Code’ con ayuda de IA. 4. Conecta el resultado a Google Sheets o a donde lo necesites.

Si te atascas, recuerda lo del debuggeo: ejecuta nodo por nodo y revisa los datos en cada paso. Y recuerda que tienes el vídeo de donde sale este artículo, y que en el blog y el canal voy subiendo más casos concretos. La clave es no quedarse solo con la lectura: abre la herramienta y empieza a construir.

Espero que esto te haya ayudado a perder el miedo a transformar datos en n8n. Si tienes alguna duda sobre cómo aplicar esto a tu caso concreto, déjamela en los comentarios. Y si quieres seguir aprendiendo n8n de verdad, suscríbete al canal. Un saludo.

Herramientas y recursos que menciono

Algunos de estos enlaces son de afiliado: si compras a través de ellos me llevo una pequeña comisión, sin coste extra para ti.