Automatiza tu email marketing con n8n y ahorra 100€ al mes en herramientas
Mailchimp, ActiveCampaign, Klaviyo… el email marketing es uno de los canales más rentables del marketing digital, pero las plataformas especializadas tienen un coste que escala rápido. A partir de 2.000-5.000 suscriptores, la factura mensual puede estar entre 50 y 200€, y sube cada vez que crece tu lista.
n8n te permite construir un sistema de email marketing propio que hace todo lo que necesitas: capturar suscriptores, enviar secuencias de bienvenida, segmentar automáticamente y enviar newsletters. Sin pagar por número de contactos. Solo pagas el servidor (que ya tienes si usas n8n self-hosted) y el proveedor de envío de emails, que puede ser gratuito o muy barato.
Lo que vamos a construir
Un sistema de email marketing completo con estas funcionalidades:
- Formulario de suscripción: captura emails desde tu web.
- Doble opt-in: confirma que el email es válido y que la persona consiente recibir emails.
- Secuencia de bienvenida: serie de 3-5 emails automáticos en los primeros días.
- Newsletter manual o automática: envío a toda la lista o a segmentos.
- Segmentación automática: clasifica a los suscriptores según su comportamiento.
- Baja automática: gestión de bajas sin intervención manual.
Herramientas que necesitas
- n8n self-hosted: el cerebro del sistema. Guía de instalación: instalar n8n gratis en un VPS.
- Google Sheets o Supabase: como base de datos de suscriptores (gratuito).
- Proveedor SMTP: para enviar los emails. Opciones:
- Brevo (ex-Sendinblue): 300 emails/día gratis, ~25€/mes para volúmenes mayores.
- Resend: 3.000 emails/mes gratis, ~20$/mes para más.
- Amazon SES: el más barato para alto volumen (~0,10€ por 1.000 emails).
- Gmail SMTP: válido para listas pequeñas (<500 suscriptores), tiene límites estrictos.
Paso 1: La base de datos de suscriptores
Crea una hoja de Google Sheets con estas columnas:
| nombre | estado | fecha_suscripcion | segmento | token_confirmacion | paso_secuencia | ultima_apertura |
|---|
estado:pendiente,confirmado,bajasegmento:nuevo,activo,inactivo,clientepaso_secuencia: qué email de la secuencia de bienvenida ha recibido (0, 1, 2, 3…)token_confirmacion: un UUID aleatorio para el link de confirmación (doble opt-in)
Paso 2: Workflow de suscripción con doble opt-in
Estructura del workflow
Webhook (formulario enviado)
→ Validar email (formato correcto, no existe ya)
→ Google Sheets (añadir suscriptor con estado "pendiente")
→ Generar token de confirmación único
→ Gmail (enviar email de confirmación con link)
El webhook de suscripción
Nodo Webhook:
- Path:
suscribir - Method:
POST
En tu formulario web, el botón de suscripción envía una petición POST a esta URL con el email y el nombre.
Validar el email
Antes de hacer nada, verifica que el email no existe ya en tu lista:
Nodo “Google Sheets” → “Get Rows” con filtro email = {{$json.email}}.
Luego un nodo “IF”: si ya existe, no hagas nada (o responde “ya estás suscrito”). Si no existe, continúa.
Generar el token de confirmación
Nodo “Code”:
const token = Math.random().toString(36).substr(2, 16) +
Math.random().toString(36).substr(2, 16);
return [{ json: { ...$json, token } }];
Email de confirmación
Nodo “Gmail” o nodo “Send Email”:
Subject: Confirma tu suscripción a [Tu Newsletter]
Hola {{nombre}},
Haz clic en el siguiente enlace para confirmar tu suscripción:
https://n8n.tudominio.com/webhook/confirmar?token={{token}}
Si no has pedido suscribirte, ignora este email.
Paso 3: Workflow de confirmación (doble opt-in)
Estructura
Webhook GET (el usuario hace clic en el link)
→ Google Sheets (buscar el token)
→ IF (token válido)
→ Google Sheets (actualizar estado a "confirmado")
→ Redirect a página de gracias
→ Iniciar secuencia de bienvenida
El webhook de confirmación
Nodo Webhook:
- Path:
confirmar - Method:
GET - Los parámetros
?token=xxxllegan en$json.query.token
Buscar y confirmar el suscriptor
Busca en Sheets la fila donde token_confirmacion = {{$json.query.token}} y estado = pendiente. Si la encuentras, actualiza estado a confirmado.
Paso 4: Secuencia de bienvenida automática
La secuencia de bienvenida es una serie de emails que se envían automáticamente en los primeros días después de que alguien se suscribe. Es el momento con mayor engagement: el suscriptor acaba de mostrar interés activo.
Diseño de la secuencia (ejemplo)
| Cuándo | Contenido | |
|---|---|---|
| Email 1 | Inmediatamente | Bienvenida + recurso gratuito prometido |
| Email 2 | Día 2 | Tu historia + por qué empezaste esto |
| Email 3 | Día 4 | Artículo más popular + llamada a la acción suave |
| Email 4 | Día 7 | Casos de uso / testimonios |
| Email 5 | Día 14 | Oferta o invitación especial |
Workflow de secuencia
El trigger de la secuencia es un “Schedule Trigger” que se ejecuta cada día a las 9h. Busca todos los suscriptores confirmados que deberían recibir el siguiente email:
Schedule Trigger (cada día a las 9h)
→ Google Sheets (buscar suscriptores donde:
estado = "confirmado" Y
paso_secuencia < 5 Y
fecha_proximo_envio <= hoy)
→ Loop sobre cada suscriptor
→ IF (paso_secuencia = 0) → enviar Email 1
→ IF (paso_secuencia = 1) → enviar Email 2
→ ... etc
→ Google Sheets (actualizar paso_secuencia +1 y próxima fecha)
Para calcular la fecha del próximo envío:
const diasPorPaso = [0, 2, 4, 7, 14]; // días desde suscripción para cada email
const pasoActual = $json.paso_secuencia;
const fechaSuscripcion = new Date($json.fecha_suscripcion);
const proximaFecha = new Date(fechaSuscripcion);
proximaFecha.setDate(proximaFecha.getDate() + diasPorPaso[pasoActual]);
return [{ json: { ...$json, proximaFecha: proximaFecha.toISOString() } }];
Paso 5: Envío de newsletter
Para enviar una newsletter a toda tu lista (o a un segmento):
Opción A: Newsletter manual con trigger manual
Prepara el contenido en un archivo de Google Docs, ejecutas el workflow manualmente cuando quieres enviar:
Manual Trigger
→ Google Sheets (obtener todos los suscriptores con estado = "confirmado")
→ Google Docs (leer el contenido de la newsletter)
→ Loop sobre suscriptores
→ Send Email (personalizado con nombre)
→ Espera 0.1 segundos (para no saturar el servidor SMTP)
Opción B: Newsletter automática desde RSS
Si publicas contenido en un blog, puedes automatizar una newsletter semanal que resume tus últimos artículos:
Schedule Trigger (cada lunes a las 10h)
→ HTTP Request (leer RSS de tu blog)
→ Code (formatear los artículos de la última semana)
→ OpenAI (generar un resumen introductorio con IA)
→ Loop sobre suscriptores → Send Email
Paso 6: Segmentación automática
La segmentación te permite enviar emails más relevantes a cada tipo de suscriptor.
Segmentación por comportamiento
Aunque el seguimiento de aperturas y clics requiere configuración adicional (píxel de tracking), puedes hacer segmentación básica por:
- Fuente: de dónde vino el suscriptor (anuncio, artículo, redes sociales).
- Intereses declarados: si el formulario tenía opciones de interés (ver automatización de captación de leads).
- Historial de compras: si tienes una tienda online conectada a n8n.
- Actividad: si han respondido o hecho clic en algún link.
Segmentación automática por inactividad
Un workflow que cada semana detecta suscriptores inactivos (no han abierto los últimos 5 emails) y los mueve a un segmento de “reactivación”:
Schedule Trigger (cada semana)
→ Google Sheets (buscar suscriptores cuya ultima_apertura < hace 30 días)
→ Google Sheets (actualizar segmento a "inactivo")
→ Send Email (campaña de reactivación: "¿Sigues por aquí?")
Cuánto ahorras frente a Mailchimp
| Suscriptores | Mailchimp Essentials | n8n + Brevo | Ahorro mensual |
|---|---|---|---|
| Hasta 500 | Gratis | Gratis | 0€ |
| 500-5.000 | ~13€/mes | ~5€/mes (VPS) | ~8€ |
| 5.000-10.000 | ~55€/mes | ~5-10€/mes | ~45-50€ |
| 10.000-25.000 | ~150€/mes | ~15€/mes | ~135€ |
| 25.000-50.000 | ~270€/mes | ~25€/mes | ~245€ |
A partir de 5.000 suscriptores, el ahorro ya justifica el tiempo de setup. A 25.000 suscriptores, el ahorro supera los 200€/mes.
Preguntas frecuentes
¿El email enviado desde n8n llega a spam? Depende de la configuración del dominio de envío. Configura correctamente los registros SPF, DKIM y DMARC para tu dominio. Con Brevo o Resend, esto se hace en minutos desde su panel.
¿Puedo hacer A/B testing con este sistema? Sí. Añade un nodo que divida aleatoriamente los suscriptores en dos grupos y envíe versiones distintas del email. Luego mide cuál tiene mejor tasa de apertura o clics.
¿Funciona para listas grandes (100k+ suscriptores)? Técnicamente sí, pero necesitarás un servidor más potente para n8n y un proveedor de envío profesional como Amazon SES. Para ese volumen, asegúrate de gestionar el ritmo de envío (no enviar todos los emails a la vez) para no saturar el SMTP.
¿Te ha resultado útil? Compártelo con alguien que quiera automatizar su trabajo con IA.