Tiempo estimado de lectura: 6 min
- Ideas clave:
- Diseñar un workflow en n8n con separación de responsabilidades: trigger, clasificación, routing, generación y creación de borradores.
- Usar modelos distintos según la tarea: modelo económico para clasificación (gpt-4o-mini) y modelo de mayor calidad para generación (gpt-4o).
- Mantener control humano creando borradores y aplicando validaciones, logs y métricas.
Introducción
Cómo montar un workflow real con n8n + IA para clasificar y responder emails — ese es el objetivo aquí. En las primeras líneas: vamos a construir un flujo operable en producción que no solo responda, sino que entienda intención, extraiga datos clave y deje al humano en control mediante borradores. No es magia; es arquitectura.
Resumen rápido (lectores con prisa)
Diseño de workflow en 5 bloques: Trigger (captura), Clasificador (LLM -> JSON), Router (Switch por categoría/ confianza), Generador (LLM de alta calidad) y Acción segura (crear borrador). Usa modelos separados para coste/latencia y mantiene control humano con borradores y métricas.
Arquitectura minimal y responsabilidades
Antes de tocar nodos, entiende el mapa. Cinco bloques claros:
- Trigger — detectar nuevos correos (Gmail/IMAP).
- Clasificador — LLM que devuelve JSON estructurado con categoría, confianza y resumen.
- Router — lógica condicional (Switch) que dirige a ramas: sales, support, spam, urgent.
- Generador — LLM de mayor calidad que redacta la respuesta contextual.
- Acción segura — crear borrador en Gmail/Outlook para revisión humana.
Este diseño separa decisiones y permite métricas y fallbacks.
Requisitos y enlaces útiles
- n8n (Cloud o self‑hosted)
- n8n Gmail/IMAP Nodes
- OpenAI Chat API (Chat Completions / GPT‑4o)
- Ejemplos y plantillas n8n (email)
- Repositorio n8n
Prepara clave API de OpenAI y credenciales OAuth para Gmail/IMAP.
Paso a paso: Cómo montar un workflow real con n8n + IA para clasificar y responder emails
A continuación, la implementación práctica y reproducible.
Paso 1 — Trigger: captura segura
– Nodo: Gmail Trigger (Message Received) o IMAP Trigger.
– Filtros: Label = INBOX, Read Status = Unread.
– Excluir: no-reply@*, tu propio dominio, newsletters. Evita bucles de autorespuesta.
Configuración correcta aquí evita duplicados y ruido.
Paso 2 — Clasificación semántica con LLM
– Nodo: OpenAI Chat Model.
– Modelo recomendado: gpt-4o-mini para clasificación (rápido y económico).
– Response Format: JSON Object.
System Prompt (ejemplo, copia y adapta):
Eres un triador de emails. Devuelve SOLO un JSON con este esquema:
{
"category": "support|sales|billing|urgent|spam|other",
"confidence": 0.0-1.0,
"summary": "una frase",
"sentiment": "positive|negative|neutral",
"entities": {"contactName":"", "companyName":""},
"requires_human": true|false
}
User Prompt: pasa {{ $json["text"] }} o {{ $json["snippet"] }} desde Gmail Trigger.
Paso 3 — Parseo y routing
– Usa un nodo Code / Set para parsear la salida JSON (si es necesario).
– Nodo Switch: condiciones sobre category y confidence.
- urgent → alerta Slack/PagerDuty.
- sales → rama generador ventas.
- spam & confidence > 0.95 → archivar/label.
- default → crear borrador (human in loop).
Paso 4 — Generación de la respuesta
– Nodo: OpenAI Chat Model. Modelo: gpt-4o (mejor calidad para copy).
– System Prompt específico por rama. Ejemplo (ventas):
Eres un SDR. Objetivo: agendar 15 min. Tono: profesional/cercano. No inventes precios.
– Incluye contexto: correo original + FAQ o snippets relevantes (puedes hacer RAG conectando Pinecone/Vector DB si necesitas datos internos).
Paso 5 — Human‑in‑the‑loop: crear borrador en Gmail
– Nodo Gmail: Action = Create Draft.
– To: remitente original. Subject: Re: {{ $json.subject }}. Body: {{ $json.generated_response }}.
Nunca envíes automáticamente hasta validar en producción.
Operacional: métricas, costes y escalado
– Métricas: tasa de clasificación correcta, time‑to‑draft, % borradores enviados. Guarda logs en Supabase/Postgres.
– Costes: ejemplo aproximado (1.000 emails/mes): clasificación con gpt-4o-mini y 500 respuestas en gpt-4o → coste bajo (USD variable según precios). Mide y ajusta modelo por SLA.
– Escalado: para >100 ejecuciones/h configura workers en n8n y monitoriza latencias. Guía: https://docs.n8n.io/hosting/scaling/worker-setup/
Robustez y seguridad
- Validación: siempre valida que la salida JSON cumple el esquema antes de usarla.
- Retries y dead‑letter queue: implementa reintentos y guarda fallos en una tabla para revisión.
- Privacidad: no pongas datos sensibles en prompts sin manejo de PII; usa hashing o anónimos si procede.
- Auditoría: guarda prompt + response para facilitar tuning y control de calidad.
Extensiones prácticas (pasos siguientes)
- Añadir RAG: vector DB (Pinecone/Qdrant) para respuestas precisas desde docs internas.
- Automatizar tickets: Convertir ramas “support” en tickets Jira/Asana.
- Feedback loop: usa los borradores enviados (o las ediciones humanas) para etiquetar y mejorar prompts.
Recursos y ejemplos listos
Implementa esta base en staging con 5–20 correos reales, afina prompts y reglas, y solo entonces escala. Un workflow así reduce tiempo por correo de minutos a segundos, pero mantiene control humano: esa es la diferencia entre automatización amateur y sistema de producción.
Para más experimentación y prototipos visita Dominicode Labs. Aquí puedes encontrar recursos complementarios y ejemplos para extender workflows con RAG, integraciones y pipelines de datos.
FAQ
- 1. ¿Qué nodos de trigger debería usar?
- 2. ¿Qué modelo usar para clasificación vs generación?
- 3. ¿Cómo evito bucles de autorespuesta?
- 4. ¿Qué validar antes de crear un borrador?
- 5. ¿Cómo medir coste y rendimiento?
- 6. ¿Cómo integrar RAG para respuestas precisas?
- 7. ¿Cuándo enviar automáticamente vs crear borrador?
1. ¿Qué nodos de trigger debería usar?
Usa Gmail Trigger (Message Received) si trabajas con Gmail y necesitas webhooks/OAuth; usa IMAP Trigger si trabajas con otros proveedores o prefieres conexión IMAP. Filtra por label INBOX y unread.
2. ¿Qué modelo usar para clasificación vs generación?
Para clasificación usa gpt-4o-mini por coste y latencia. Para generación de copy y respuestas contextuales usa gpt-4o u otro modelo de mayor calidad.
3. ¿Cómo evito bucles de autorespuesta?
Excluye remitentes como no-reply@*, tu propio dominio y newsletters. Añade reglas en trigger y un header/custom label para detectar respuestas generadas por el sistema.
4. ¿Qué validar antes de crear un borrador?
Valida que el JSON devuelto cumple el esquema, que la confianza es adecuada (por ejemplo >0.6 para automatizaciones suaves) y que no hay PII sensible sin anonimizar.
5. ¿Cómo medir coste y rendimiento?
Mide tokens por llamada, número de llamadas por email, ratio de borradores aceptados/editar, latencia por nodo y coste por 1.000 emails. Guarda métricas en una DB como Supabase/Postgres.
6. ¿Cómo integrar RAG para respuestas precisas?
Indexa docs internos en un vector DB (Pinecone/Qdrant). Al generar la respuesta, recupera snippets relevantes y pásalos como contexto al modelo para reducir hallucinations.
7. ¿Cuándo enviar automáticamente vs crear borrador?
Siempre crear borrador por defecto en producción hasta que las métricas y pruebas en staging muestren alta confiabilidad y controles de seguridad. Envía automáticamente solo para categorías de muy baja riesgo y alta confianza.




