Módulo 2: Gmail y Email

Recibir Correos: el Gmail Trigger

Descripción de la cápsula

Hasta ahora tus workflows de email solo empujan información hacia afuera. Esta cápsula invierte la dirección: hace que un correo entrante dispare un workflow.

Esto cambia todo. Un cliente escribe a support@yourdomain.com → el workflow lo lee, clasifica de qué trata, lo registra en una hoja, lo etiqueta y avisa al equipo. Una factura llega por correo → el workflow extrae el adjunto y lo guarda. Una respuesta a una campaña → el workflow actualiza el estado del lead. El email entrante deja de ser una bandeja que alguien revisa a mano y se vuelve un disparador de automatizaciones.

La herramienta es el Gmail Trigger. Pero hay un concepto que tienes que entender bien para no llevarte sorpresas: el Gmail Trigger no es tiempo real — hace polling. Esta cápsula te explica qué significa eso y cómo diseñar workflows que lo asuman.


Lo que vas a aprender

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

  • Configurar el Gmail Trigger para disparar workflows desde correos entrantes
  • Entender el polling y por qué el trigger no es instantáneo
  • Filtrar qué correos disparan el workflow (no todos)
  • Acceder a los datos del correo: remitente, asunto, cuerpo, adjuntos
  • Evitar procesar el mismo correo dos veces
  • Diseñar workflows que toleran el retraso del polling

Recordatorio de G2: polling vs event-based

En G2-M01 viste la diferencia entre triggers que esperan un evento (push) y triggers que revisan periódicamente (polling). El Gmail Trigger es de los segundos.

El Gmail Trigger hace polling. Cada cierto intervalo (que tú configuras — por ejemplo, cada minuto), n8n le pregunta a Gmail "¿llegaron correos nuevos desde la última vez que pregunté?". Si llegaron, dispara el workflow para cada uno.

Consecuencia: no es instantáneo. Si configuras polling cada 5 minutos, un correo puede esperar hasta 5 minutos antes de que el workflow lo procese.

Esto no es un defecto — es la naturaleza del email. Y para casi todos los casos de negocio (clasificar tickets, registrar respuestas, archivar facturas) un retraso de 1-5 minutos es perfectamente aceptable. Si necesitaras reacción instantánea, el email no sería el canal correcto de todas formas.


Configurar el Gmail Trigger

El Gmail Trigger va al inicio del workflow (es un trigger, no un nodo de acción).

Configuración base

  • Credential: la credencial de Gmail (la misma del nodo Gmail — cápsula 02)
  • Poll Times: cada cuánto revisar. Every Minute es lo más común; ajústalo según qué tan rápido necesitas reaccionar
  • Filters: qué correos deben disparar el workflow (clave — más abajo)

El campo Filters: no proceses TODO

Sin filtros, el trigger dispara con cada correo que llega a tu bandeja — newsletters, spam, notificaciones, todo. Eso casi nunca es lo que quieres.

Los filtros te dejan acotar. Las opciones típicas:

FiltroQué hace
LabelSolo correos con cierta etiqueta
SearchSolo correos que coinciden con una búsqueda de Gmail
SenderSolo correos de cierto remitente

El más potente es Search, que usa el lenguaje de búsqueda de Gmail (cápsula 05). Ejemplos:

to:support@yourdomain.com          → solo los que van a soporte
subject:invoice                    → solo los que mencionan "invoice" en el asunto
from:supplier@company.com          → solo de ese proveedor

Regla de oro: un Gmail Trigger sin filtro es casi siempre un error de diseño. Define qué correos importan para este workflow y filtra por eso. Un workflow = un tipo de correo.


Qué datos te da un correo entrante

Cuando el trigger dispara, te entrega el correo como un item con campos. Los principales:

CampoQué contiene
fromEl remitente (dirección y nombre)
toA quién iba dirigido
subjectEl asunto
snippetUn fragmento corto del cuerpo
textPlain / textHtmlEl cuerpo completo (texto y/o HTML)
idEl identificador único del correo (importante — ver abajo)
threadIdEl identificador de la conversación
labelsLas etiquetas que tiene
(adjuntos)Los archivos adjuntos, como binary data

Los usas con expressions en los nodos siguientes: {{ $json.from }}, {{ $json.subject }}, etc.

Truco práctico: antes de construir el resto del workflow, deja que el Gmail Trigger capture un correo de prueba y mira su output real. Igual que con el mapeo del Módulo 1: no adivines los nombres de campo, míralos.


El problema del "doble procesamiento"

Un riesgo concreto del polling: procesar el mismo correo dos veces.

Cómo pasa

  • El trigger procesa un correo
  • Por alguna razón el workflow se reinicia, o cambias algo y se re-ejecuta
  • El mismo correo se procesa de nuevo → se registra dos veces en la hoja, se responde dos veces

Las defensas

1. n8n recuerda lo que ya procesó. El Gmail Trigger lleva la cuenta de hasta qué punto leyó. En operación normal, no reprocesa. El riesgo aparece sobre todo al editar y probar el workflow.

2. Usa el id del correo como clave. Si tu workflow registra correos en una hoja, usa el id del correo como columna clave y aplica el patrón "buscar antes de actuar" del Módulo 1: antes de registrar, busca si ese id ya está. Esto hace el workflow idempotente.

3. Etiqueta los correos procesados. Cuando termines de procesar un correo, ponle una etiqueta Processed (cápsula 06). Y filtra el trigger para que ignore los que ya tienen esa etiqueta. Así un correo nunca se procesa dos veces, ni siquiera si pruebas el workflow.

La opción 3 es la más robusta para producción y la combinaremos en el mini-proyecto (cápsula 08).


Diseñar para el retraso del polling

Como el trigger no es instantáneo, diseña asumiéndolo:

  • No prometas inmediatez. Si el workflow manda un acuse "recibimos tu mensaje", está bien — pero el cliente puede recibirlo 3 minutos después de escribir. Eso es aceptable; no escribas "respuesta inmediata".
  • El intervalo es un balance. Polling cada minuto = más reactivo pero más llamadas a la API. Cada 15 minutos = menos carga pero más retraso. Elige según qué tan urgente es el caso.
  • No uses email para lo urgente. Si de verdad necesitas reacción en segundos, el canal correcto es un webhook (G2-M01), no el correo.

Trampas comunes

Trampa 1: Gmail Trigger sin filtros

Qué pasa: El workflow se dispara con cada newsletter, cada notificación, cada spam que entra a tu bandeja.

Cómo evitar: Siempre define filtros. Un workflow procesa un tipo de correo — filtra para que solo ese lo dispare.


Trampa 2: Esperar que el trigger sea instantáneo

Qué pasa: Mandas un correo de prueba y te frustras porque el workflow no dispara "al instante".

Cómo evitar: Es polling. Espera el intervalo configurado (hasta 1 minuto si configuraste Every Minute). No está roto — está esperando su turno de revisar.


Trampa 3: Reprocesar correos al probar

Qué pasa: Editas el workflow, lo pruebas varias veces, y el mismo correo se registra/responde múltiples veces.

Cómo evitar: Para producción, usa la estrategia de etiquetar como procesado + filtrar por "no procesados". Mientras desarrollas, ten consciencia de que cada ejecución de prueba puede tocar correos reales.


Trampa 4: Construir el workflow sin ver el output del trigger

Qué pasa: Asumes que el cuerpo está en {{ $json.body }} pero en realidad está en {{ $json.textPlain }}. La mitad del workflow apunta a campos que no existen.

Cómo evitar: Captura un correo de prueba con el trigger, mira su output real, y construye sobre los nombres de campo reales.


Trampa 5: Procesar el cuerpo HTML cuando querías texto

Qué pasa: Lees textHtml para clasificar el correo y te llega lleno de etiquetas <div>, <span>, estilos — imposible de procesar.

Cómo evitar: Para leer o clasificar el contenido, usa textPlain (el cuerpo en texto limpio) o snippet (un fragmento corto). Deja textHtml para cuando de verdad necesites el formato.


Ejercicio: dispara un workflow desde un correo

Objetivo: ver el polling en acción y trabajar con los datos de un correo entrante.

Tu tarea

  1. Crea una etiqueta en Gmail llamada n8n-test (o usa una búsqueda por asunto)
  2. Construye un workflow: Gmail Trigger → Set
    • En el Gmail Trigger: Poll Times Every Minute, y un filtro Search como subject:[N8N-TEST]
    • En el Set: crea campos sender = {{ $json.from }}, subject = {{ $json.subject }}, summary = {{ $json.snippet }}
  3. Activa el workflow (el toggle de Active — los triggers de polling solo funcionan activos)
  4. Mándate a ti mismo un correo con el asunto [N8N-TEST] hola
  5. Espera ~1 minuto y revisa las ejecuciones del workflow

Checklist de éxito:

  • El workflow disparó solo (no lo ejecutaste a mano)
  • Disparó solo con el correo de asunto [N8N-TEST], no con otros
  • El Set capturó remitente, asunto y resumen correctamente
  • Notaste el retraso del polling (no fue instantáneo)

Resumen y siguiente paso

  • El Gmail Trigger hace que un correo entrante dispare un workflow — va al inicio
  • Hace polling, no es tiempo real: revisa cada cierto intervalo, hay un retraso de hasta el intervalo configurado
  • Siempre usa filtros — un workflow procesa un tipo de correo, no toda la bandeja
  • El correo entrante te da: from, subject, textPlain, id, threadId, labels, adjuntos — mira el output real antes de construir
  • Para evitar doble procesamiento: usa el id como clave (buscar antes de actuar) o etiqueta los procesados y fíltralos
  • Diseña asumiendo el retraso; si necesitas instantáneo, usa webhook, no email
  • 5 trampas: trigger sin filtros, esperar instantaneidad, reprocesar al probar, no ver el output, leer HTML en vez de texto plano

Antes de avanzar deberías poder:

  • Configurar un Gmail Trigger con filtros
  • Explicar qué es el polling y su retraso
  • Acceder al remitente, asunto y cuerpo de un correo entrante
  • Nombrar dos formas de evitar el doble procesamiento

Lo que sigue (cápsula 05):

El Gmail Trigger filtra qué correos disparan el workflow. Pero a veces necesitas buscar correos a propósito dentro de un workflow ("tráeme todos los correos sin responder de esta semana"). La cápsula 05 cubre la búsqueda activa y el lenguaje de búsqueda de Gmail — el mismo que usaste en los filtros, pero a fondo.


Recursos adicionales

  1. n8n Gmail Trigger Docs - Referencia del trigger.
  2. Gmail search operators - El lenguaje de los filtros del trigger.
  3. n8n: polling triggers - Cómo n8n maneja los triggers de polling.

Creado: Mayo 14, 2026 Versión: 1.0