A cualquier negocio le llegan correos de todo tipo: pedidos, alguna queja, preguntas y mucha publicidad. Ordenarlos a mano es un rato cada día, y la queja que se queda enterrada entre boletines es la que más cara sale. Con n8n y un modelo de IA, cada correo nuevo se lee, se clasifica y se etiqueta solo, y las quejas te llegan al móvil.
Este es el capítulo 9 de n8n desde cero, nuestra serie gratuita en YouTube. Aquí tienes el vídeo y, debajo, el paso a paso para montarlo aunque no le des al play, con el workflow terminado para descargar.
📌 En resumen
Un Gmail Trigger (On message received) pregunta a Gmail cada minuto si hay correos nuevos que cumplan una búsqueda. Un Text Classifier con un modelo de OpenAI lee el asunto y el snippet y manda cada correo por su salida: pedido, queja, consulta, publicidad u Other. Cada salida le pone su etiqueta en Gmail con Add label to message, y la de las quejas avisa además por Telegram con el bot del capítulo 3.
Qué necesitas antes de empezar
- Una credencial de Gmail. Se crea igual que la de Google Sheets del capítulo 6, con la Gmail API activada en tu proyecto de Google Cloud.
- Tu credencial de OpenAI y el bot de Telegram del capítulo 3.
- Cuatro etiquetas creadas en Gmail: Pedido, Queja, Consulta y Publicidad. En el vídeo van dentro de una etiqueta madre, Panadería Luna, para tenerlas juntas.
Las etiquetas tienen que existir antes de montar el workflow, porque el nodo que las pone no las crea por ti.
El paso a paso
1. El Gmail Trigger
Crea un workflow nuevo, pulsa el más y busca Gmail. Entre los disparadores elige On message received. El nodo se llama Gmail Trigger y sale con tu credencial de Gmail.
2. Poll Times: cada cuánto mira
Gmail no avisa a n8n cuando llega un correo: es n8n quien pregunta cada cierto tiempo si hay algo nuevo. Eso se elige en Poll Times. Para el vídeo usamos Every Minute; para un negocio, cada cinco o diez minutos va de sobra. Por eso el workflow no salta en el instante en que llega el correo, y no está roto.
3. Search: solo los correos que te interesan
En Filters añade Search y escribe una búsqueda de Gmail, igual que en el buscador del correo. La del vídeo deja pasar solo los correos cuyo asunto contiene «Panadería Luna», así el workflow coge los de prueba y no toca nada más del buzón:
subject:"Panadería Luna"
Cámbiala por tu propia búsqueda. Si la quitas, clasificará todo tu correo, y cada correo que no hace falta clasificar es una llamada al modelo que pagas.
4. Fetch Test Event
Mándate un primer correo con un pedido, sin abrirlo, y pulsa Fetch Test Event. n8n trae el último correo que cumple el filtro: el asunto (Subject), el remitente (From), las etiquetas y un trozo del texto, el snippet. Fíjate también en el id, porque es el que usaremos para ponerle la etiqueta.
5. El Text Classifier y su modelo
Pulsa el más, busca classifier y elige Text Classifier, dentro de AI. Es un nodo pensado justo para esto: le das un texto y unas categorías, y lo manda por la salida que toca. En su hueco Model cuelga un OpenAI Chat Model con tu credencial; un modelo pequeño y barato basta, porque clasificar correos no necesita el más listo. El workflow descargable usa gpt-5-mini.
6. Text to Classify: qué tiene que leer
En n8n 2.43 el campo se llama Text to Classify (la documentación lo llama Input Prompt). Pásale el asunto y el snippet arrastrándolos desde la izquierda, que con eso tiene de sobra para saber de qué va el correo. En el workflow queda así:
Asunto: {{ $json.Subject }}
{{ $json.snippet }}
7. Las categorías, con su descripción
En Categories añade cuatro, cada una con su descripción:
| Categoría | Descripción |
|---|---|
| pedido | Alguien quiere encargar o reservar pan, bollería o tartas. |
| queja | Un cliente está descontento con un producto o con el servicio. |
| consulta | Preguntas sobre horarios, precios, ingredientes o alérgenos. |
| publicidad | Ofertas, boletines y correos comerciales de otras empresas. |
Pasa lo mismo que con las herramientas del capítulo 8: el modelo decide por el nombre y la descripción. Si un correo cae donde no es, casi siempre se arregla mejorando la descripción.
8. When No Clear Match: que no se pierda nada
En Options está When No Clear Match. De serie vale Discard Item, que descarta el correo que no encaja en ninguna categoría. Elige Output on Extra, Other Branch y el correo saldrá por una quinta salida, Other, en lugar de desaparecer.
9. Add label to message en cada salida
De la salida pedido tira un nodo de Gmail y elige Add label to message. En Message ID arrastra el id del Gmail Trigger (si lo escribes a mano, es {{ $('Gmail Trigger').item.json.id }}) y en Label Names or IDs elige la etiqueta Pedido. Repite con las salidas queja, consulta y publicidad, cada una con su etiqueta, y ponle nombre a cada nodo (Etiqueta Pedido, Etiqueta Queja…) para leer el lienzo de un vistazo.
10. El aviso de las quejas por Telegram
Las quejas no pueden esperar. Detrás de Etiqueta Queja añade Telegram, Send a text message, con el bot del capítulo 3 y tu chat id. El texto del workflow es este:
Nueva queja en el correo
De: {{ $('Gmail Trigger').item.json.From }}
Asunto: {{ $('Gmail Trigger').item.json.Subject }}
11. Punto de control
En el lienzo tienes el Gmail Trigger, el Text Classifier con su modelo, cuatro salidas con su nodo de etiqueta y Telegram detrás de la queja.
La prueba con cuatro correos de verdad
Primero el pedido: pulsamos Execute, el disparador trae el correo, el clasificador lo manda por pedido y Gmail le pone su etiqueta. Después una queja («el pan de ayer llegó duro»): esta vez se enciende la rama de la queja, se pone la etiqueta y el aviso llega al móvil. Una consulta sobre si hay pan sin gluten acaba en consulta y una oferta de harina a precio de saldo, en publicidad. La bandeja queda con cada correo en su etiqueta, sin haber abierto ninguno.
Para que trabaje solo hay que publicar el workflow. Nosotros no lo publicamos porque es nuestro correo, pero tú puedes hacerlo cuando las pruebas te convenzan: a partir de ahí, cada vez que toque según Poll Times, mirará si hay correos nuevos.
Dos riesgos que conviene tener claros
El workflow lee tu correo y le pasa el asunto y el principio de cada uno a OpenAI. No lo uses sin pensarlo con correos que no deban salir de casa. Además, cada correo clasificado es una llamada al modelo, así que filtra con Search todo lo que no haga falta clasificar.
Si te falla
- No coge ningún correo: revisa la búsqueda de Search y que el correo siga sin leer, porque de serie solo mira los no leídos.
- Clasifica mal: mejora la descripción de cada categoría.
- Falla la etiqueta: comprueba que el Message ID viene del Gmail Trigger y que la etiqueta existe en Gmail.
Los capítulos del vídeo
| Minuto | Qué se ve |
|---|---|
| 1:05 | Crear las etiquetas en Gmail |
| 1:20 | Gmail Trigger |
| 1:33 | Poll Times: cada cuánto mira |
| 1:48 | Search: solo los correos de prueba |
| 2:21 | Text Classifier |
| 2:47 | Text to Classify y las categorías |
| 3:27 | When No Clear Match |
| 3:52 | Add label to message |
| 4:15 | Aviso de quejas por Telegram |
| 4:41 | Prueba con cuatro correos de verdad |
| 5:29 | Riesgos |
| 5:45 | Si te falla |
Descarga el clasificador de Gmail
Un zip con el workflow terminado (Gmail Trigger con la búsqueda por asunto, Text Classifier con cuatro categorías más Other, los cuatro nodos de etiqueta y el aviso de quejas por Telegram) y un LEEME con cómo crear las etiquetas y la credencial, qué rellenar en cada nodo y cómo probarlo.
Preguntas frecuentes
¿Por qué el Gmail Trigger no salta en cuanto llega el correo?
Porque Gmail no avisa a n8n: es n8n quien pregunta cada cierto tiempo, según lo que elijas en Poll Times. Con Every Minute puede tardar hasta un minuto en verlo.
¿Tengo que crear las etiquetas en Gmail antes?
Sí. El nodo Add label to message solo pone etiquetas que ya existen, y en Label Names or IDs eliges una de la lista.
¿Qué pasa con los correos que no encajan en ninguna categoría?
De serie, el Text Classifier los descarta. Si en When No Clear Match eliges Output on Extra, Other Branch, salen por una quinta salida y no se pierde ninguno.
¿Mi correo va a OpenAI?
El asunto y el snippet de cada correo que pasa el filtro, sí. Por eso conviene acotar con Search qué correos se clasifican y no usarlo sin pensarlo con correos que no deban salir de casa.
¿Cuánto cuesta clasificar el correo con IA?
Cada correo es una llamada al modelo. Con un modelo pequeño y un buen filtro en Search, solo pagas por los correos que de verdad quieres clasificar.
Sigue la serie: ← capítulo 8: el agente con herramientas · todos los capítulos de n8n desde cero · capítulo 10: el workflow de errores →
Tu correo, más allá de las etiquetas
En el curso de n8n de nacaIA Academy vamos más allá con el correo: respuestas automáticas, adjuntos y más canales, paso a paso y con el resto del temario, de los primeros nodos a n8n en producción.
Ver el curso de n8n