Módulo 1: Google Sheets

Actualizar Filas Existentes

Descripción de la cápsula

Append agrega filas nuevas. Pero gran parte del trabajo real con hojas es modificar lo que ya existe: cambiar el estado de un lead de "pendiente" a "contactado", actualizar el stock de un producto, marcar una factura como pagada.

Para eso existe la operación Update. Y Update tiene una pregunta central que Append nunca tuvo que responder: ¿cuál fila exactamente? Append siempre va al final; Update tiene que apuntar a una fila específica entre cientos. Esa puntería es lo que aprendes aquí.

También conocerás Update or Append (lo que en bases de datos se llama upsert): una sola operación que busca, y si encuentra actualiza, y si no encuentra agrega. Es la operación que resuelve el patrón "buscar antes de actuar" en un solo nodo — y la que probablemente más vas a usar en producción.


Lo que vas a aprender

Al terminar esta cápsula serás capaz de:

  • Usar la operación Update para modificar filas existentes
  • Apuntar a la fila correcta usando una columna clave
  • Actualizar solo algunas columnas sin pisar las demás
  • Usar Update or Append (upsert) para "actualizar o crear" en un nodo
  • Elegir entre Update, Append y upsert según el caso
  • Evitar el error más caro: actualizar la fila equivocada

El problema de la puntería: ¿cuál fila?

Para actualizar, n8n necesita saber qué fila modificar. Hay dos formas de apuntar:

MétodoCómo apuntaCuándo usarlo
Por número de fila"La fila 7"Casi nunca — los números cambian si insertas/borras filas
Por columna clave"La fila donde email = X"Casi siempre — estable y legible

Regla: apunta siempre por una columna clave (un valor único como email, ID, código de producto), no por número de fila. Los números de fila son frágiles: el día que alguien ordena la hoja o borra una fila, tu workflow actualiza el registro equivocado.


La operación Update con columna clave

Configuración del nodo Google Sheets:

  • Operation: Update Row
  • Document: tu hoja
  • Sheet: la pestaña
  • Column to match on: la columna clave (ej. email) — esta es la que identifica la fila
  • Columns: los valores nuevos a escribir

Cómo funciona

  1. n8n toma el valor de la columna clave del item que llega (ej. email = ana@example.com)
  2. Busca en la hoja la fila donde email sea exactamente ese valor
  3. Actualiza esa fila con los valores que mapeaste

Ejemplo concreto

Hoja Leads:

nameemailstatus
Anaana@example.compending
Betobeto@example.compending

Llega un item: { "email": "ana@example.com", "status": "contacted" }

Nodo Update:

  • Column to match on: email
  • Columns: status{{ $json.status }}

Resultado: la fila de Ana queda con status = contacted. La fila de Beto no se toca.


Actualizar solo algunas columnas

Detalle importante: en Update, solo se modifican las columnas que mapeas. Las demás quedan intactas.

En el ejemplo anterior solo mapeamos status. La columna name de Ana sigue siendo "Ana" — no se borró ni se vació, simplemente no la tocamos.

Esto es distinto de "reemplazar la fila completa". Update es quirúrgico: cambia lo que le dices, deja el resto. Si quisieras también actualizar el nombre, agregarías name al mapeo.

Cuidado con el reverso: si mapeas una columna con un valor vacío, sí la vacías. "No tocar una columna" = no incluirla en el mapeo. "Vaciar una columna" = mapearla a vacío. No es lo mismo.


Update or Append: el upsert

Aquí está la operación estrella. Update or Append combina las dos lógicas:

  • Si encuentra una fila con la columna clave → la actualiza
  • Si no encuentra ninguna → agrega una fila nueva

Es exactamente el patrón "buscar antes de actuar" de las cápsulas 03 y 04, pero en un solo nodo en vez de lookup + IF + dos ramas.

Configuración

  • Operation: Update or Append Row (a veces llamado Append or Update)
  • Column to match on: la columna clave (ej. email)
  • Columns: los valores

Por qué es tan útil

El caso clásico: "sincronizar leads". Cada vez que llega un lead:

  • Si es nuevo → lo agrega
  • Si ya existía → actualiza sus datos (quizás cambió de ciudad o de estado)

Con Update or Append, eso es un nodo. Sin él, necesitarías: Get Row(s) + IF + Append en una rama + Update en la otra. Cuatro nodos vs uno.

Trigger → Google Sheets (Update or Append, match on: email)

Y el workflow ya es idempotente: corra las veces que corra con el mismo email, hay exactamente una fila.


Cómo elegir: Append vs Update vs Update or Append

CasoOperación
Registrar algo nuevo, sé que no existe (log de eventos)Append
Modificar algo que sé que existe (cambiar estado de un lead conocido)Update
"Crear o actualizar" — no sé si existe, y da igual (sincronizar)Update or Append
Necesito lógica distinta para "existe" vs "no existe" (ej. enviar email de bienvenida solo a nuevos)Get Row(s) + IF + Append/Update

La última fila importa: si necesitas hacer algo diferente según si el registro existía o no (no solo escribir distinto en la hoja, sino enviar una notificación, llamar otra API, etc.), entonces el patrón explícito lookup → IF sigue siendo necesario. Update or Append es genial cuando lo único que cambia es el contenido de la hoja.


Trampas comunes

Trampa 1: Actualizar por número de fila

Qué pasa: Configuras Update apuntando a "fila 5". Alguien inserta una fila arriba, y ahora la "fila 5" es otro registro. Tu workflow actualiza al cliente equivocado.

Cómo evitar: Apunta siempre por columna clave, nunca por número de fila.


Trampa 2: La columna clave no es única

Qué pasa: Usas name como columna clave, pero hay dos "Ana López" en la hoja. Update modifica la primera que encuentra — quizás la equivocada.

Cómo evitar: La columna clave debe ser única: email, ID, código, teléfono. Nunca uses nombres o campos que se repiten.


Trampa 3: Update no encuentra la fila y "no hace nada"

Qué pasa: Haces Update con email = new@example.com pero ese email no está en la hoja. Update no agrega la fila — simplemente no actualiza nada, y muchas veces sin error visible.

Cómo evitar: Si no estás seguro de que la fila existe, usa Update or Append en lugar de Update. Así, si no existe, al menos se crea.


Trampa 4: Vaciar columnas sin querer

Qué pasa: En modo de mapeo automático, n8n incluye todas las columnas. Si el item que llega no tiene la columna phone, esa columna puede quedar vacía en la hoja después del Update.

Cómo evitar: Usa mapeo manual y mapea solo las columnas que realmente quieres cambiar. Lo que no mapeas, no se toca.


Trampa 5: Confundir "actualizar o crear" con "siempre crear"

Qué pasa: Quieres sincronizar pero usas Append → cada sincronización agrega filas duplicadas en vez de actualizar.

Cómo evitar: Para sincronizar (mantener la hoja al día con una fuente), la operación es Update or Append, no Append.


Ejercicio: del lookup+IF al upsert

Objetivo: ver cómo Update or Append reemplaza el patrón de 4 nodos por uno.

Preparación

Hoja Inventario con columnas sku, product, stock. Pon 2 filas:

skuproductstock
A-01Mug10
A-02Notebook5

Tu tarea

  1. Workflow: Manual Trigger → Set (sku=A-01, product=Mug, stock=99) → Google Sheets
  2. Configura el nodo Google Sheets como Update or Append, Column to match on: sku
  3. Ejecútalo → la fila A-01 ahora tiene stock = 99 (se actualizó, no se duplicó)
  4. Cambia el Set a sku=A-03, product=Pen, stock=20 y ejecuta de nuevo
  5. Resultado: se agregó la fila A-03 (no existía) — mismo nodo, comportamiento distinto

Checklist de éxito:

  • A-01 se actualizó sin crear fila nueva
  • A-03 se agregó como fila nueva
  • La hoja tiene 3 filas, sin duplicados

Resumen y siguiente paso

  • Update modifica filas existentes; la pregunta central es "¿cuál fila?"
  • Apunta siempre por columna clave (email, ID, código), nunca por número de fila — los números son frágiles
  • Update es quirúrgico: solo cambia las columnas que mapeas, deja el resto intacto
  • Update or Append (upsert) = "si existe actualiza, si no agrega" en un solo nodo — reemplaza lookup + IF + 2 ramas
  • Elige: Append (nuevo), Update (modificar lo conocido), Update or Append (sincronizar), lookup + IF (cuando "existe/no existe" dispara lógica distinta)
  • 5 trampas: apuntar por número de fila, columna clave no única, Update que no encuentra y no avisa, vaciar columnas sin querer, usar Append cuando querías upsert

Antes de avanzar deberías poder:

  • Configurar Update con columna clave
  • Usar Update or Append y explicar qué hace en cada caso
  • Elegir la operación correcta para un caso dado

Lo que sigue (cápsula 06):

Ya dominas las tres operaciones (leer, append, update). Ahora la habilidad transversal: mapeo de datos. Cómo conectar la estructura de tu workflow con las columnas de la hoja cuando los nombres no coinciden, cómo transformar valores al vuelo, y cuándo conviene el mapeo automático vs el manual.


Recursos adicionales

  1. n8n Google Sheets node Docs - Operaciones Update y Update or Append.
  2. Upsert (concepto) - El concepto general de "update or insert" en bases de datos.
  3. n8n IF node Docs - Para los casos donde "existe / no existe" dispara lógica distinta.

Creado: Mayo 14, 2026 Versión: 1.0