Campañas de Email Automatizadas con Gmail API
Pipeline de email marketing con Gmail API, personalización por IA (DeepSeek) y tracking en Google Sheets para campañas de prospección de 5 toques — desde el outreach comercial de Silvigon.
Paso 01
Problema
Las campañas de email manuales son lentas, inconsistentes y no escalan. Enviar seguimientos personalizados a decenas de contactos requiere horas de trabajo y es fácil perder el hilo de quién ha recibido qué. El outreach comercial de Silvigon necesitaba un enfoque sistemático.
Paso 02
Contexto y restricciones
Construido como el motor de email outreach para Silvigon, empresa de automatización y ERP. El pipeline envía campañas multi-toque desde equipo@silvigon.com con contenido personalizado por IA, tracking en Google Sheets y límites diarios configurables. Gestiona 500+ contactos en múltiples hojas.
Rol: Desarrollador del pipeline completo: integración Gmail API, orquestación de campañas multi-toque, personalización con DeepSeek, tracking en Sheets y control de tasa.
Paso 03
Decisiones clave
- Gmail API con OAuth persistente: sin depender de servicios de email marketing de pago.
- DeepSeek para generar cada toque con enfoque distinto (presentación, propuesta de valor, insight sectorial, caso práctico, cierre).
- Google Sheets como base de datos de contactos: cada fila = empresa, email, estado, toque actual, fecha, bloqueado.
- 5 toques por contacto con gaps: +0d, +4d, +6d, +7d, +7d solo en días laborables.
- Límite diario configurable (25/día) con espaciado aleatorio (2-5s) para evitar bloqueos de Gmail.
- Detección automática de respuestas: escanea la bandeja de entrada y marca como respondido + bloqueado.
- Guardia de fin de semana: la campaña salta sábados y domingos automáticamente.
- Sistema de bloqueo: columna bloqueado=SI detiene todos los envíos futuros.
- Manejo de cancelaciones de Apple Mail: las solicitudes automáticas de baja se marcan como descartadas.
Paso 04
Resultados
- Campañas de 5 toques completamente automatizadas sin intervención manual.
- Personalización por IA con enfoque distinto en cada toque, generado por DeepSeek.
- Tracking en tiempo real del estado de cada contacto en Google Sheets.
- 500+ contactos gestionados con organización multi-hoja.
- Marca Silvigon: envía desde equipo@silvigon.com con firma e imagen corporativa.
Métricas
- 25 envíos/día con espaciado aleatorio 2-5s entre cada email.
- 5 toques por contacto con gaps: 0, +4, +6, +7, +7 días.
- Solo días laborables: salta fines de semana automáticamente.
- Personalización DeepSeek (max_tokens=500) para cada toque.
- Columnas Google Sheets A-W: empresa, emails, estado, último contacto, nº contactos, bloqueado.
- Detección automática de respuestas y actualización de estado.
- Tracking por contacto: num_contactos (0-5), bloqueado (SI/vacío), estado (email_1-5, respondido, rebotado, descartado).
- Manejo de bajas automáticas de Apple Mail como descartadas.
Paso 05
Aprendizajes y próxima mejora
Automatizador de Campañas de Email
Pipeline de email marketing automatizado con Gmail API, personalización por IA y tracking en Google Sheets.
Stack técnico
- Lenguaje: Python 3.11+
- APIs: Gmail API (OAuth persistente), Google Sheets API
- IA: DeepSeek para generación de contenido (max 500 tokens por toque)
- Control: Límite diario, espaciado aleatorio, 5 toques por ciclo, guardia fin de semana
- Contactos: Google Sheets (500+ entradas, multi-hoja)
Flujo de campaña
Campaign runner → [Leer sheets para contactos pendientes] → [DeepSeek genera contenido]
→ [Gmail API envía] → [Actualizar sheet (toque + fecha)]
→ [Siguiente día: repetir hasta 5 toques o hasta que el contacto responda]
↓
[Detectar respuestas automáticamente] → [Marcar como respondido + bloqueado]
Secuencia de toques
| Toque | Gap | Enfoque |
|---|---|---|
| 1 | Día 0 | Presentación + propuesta de valor |
| 2 | +4 días | Insight específico del sector |
| 3 | +6 días | Caso práctico / prueba social |
| 4 | +7 días | Seguimiento con nuevo enfoque |
| 5 | +7 días | Cierre final |
Gestión de estados
Cada contacto se trackea mediante columnas en el sheet:
- Estado:
email_1aemail_5(progreso),respondido,rebotado,descartado - Bloqueado:
SI= excluido de todos los envíos futuros - Número de Contactos: 0-5 (toque actual)
Detección de respuestas
El sistema escanea la bandeja de entrada en busca de respuestas. Cuando un contacto responde:
- Se marca como
respondido+bloqueado=SIpara parar los emails automáticos - Las respuestas manuales pueden gestionarse por separado
Proyectos relacionados
- Scraper de Google Maps — fuente de datos de prospección
- Scraper de LinkedIn — canal complementario de outreach
Paso 06
Recursos visuales
