Proyecto de trabajo
Correo hiperpersonalizado a escala
Correos que salen solos, con el nombre y el segmento de cada suscriptor
Los resultados de cada noche para dos marcas de lotería y correos de bienvenida y cumpleaños, cada uno con el nombre y el segmento de quien lo recibe.

De qué se trata
Estas automatizaciones arman y envían los correos de las marcas de lotería que atiende la agencia, el de resultados de cada noche por Amazon SES y los que dispara un evento del suscriptor, como la bienvenida o el cumpleaños.
El de resultados se arma desde la API oficial y espera los sorteos que se publican tarde. Los destinatarios salen de Zoho Analytics, cada correo lleva el nombre y el segmento de la persona y los eventos de entrega vuelven a PostgreSQL. Los resultados también se exponen en una API de Spring Boot con plantillas Thymeleaf.
Qué hace
- Un script en Python consulta la API de resultados, llena una plantilla Jinja2 que solo tiene variables y escribe el HTML listo para la plantilla de Amazon SES.
- Correos que dispara un evento del suscriptor, como la bienvenida y el saludo de cumpleaños.
- Los destinatarios salen de una vista de Zoho Analytics por su API de exportación masiva; cada correo lleva el nombre y el segmento de la persona, y una columna del archivo puede asignarle otra plantilla.
- Si un sorteo todavía no se publica, el script sale con un código propio y el pipeline reintenta cada 10 minutos, hasta 9 veces, antes de enviar lo publicado.
- El envío reparte los correos entre varios workers con un límite por segundo y, cuando Amazon SES pide ir más despacio, espera un tiempo aleatorio que crece en cada intento.
- Detecta cuando la paginación del historial devuelve filas repetidas y vuelve a pedir el día con otros tamaños de página hasta completarlo.
- El correo pesa entre 55 y 75 KB, por debajo del límite en el que Gmail lo recorta, y el asunto lleva la fecha para que Gmail no agrupe los envíos de todos los días.
- Un receptor en FastAPI con asyncpg guarda en PostgreSQL los eventos de entrega que Amazon SNS reporta por cada correo.
- Una API en Spring Boot con Thymeleaf expone los mismos resultados en JSON y como plantilla HTML.
Cómo funciona
De la API al buzón
El pipeline nocturno lee la API, toma los destinatarios de Zoho Analytics y envía; los eventos de entrega vuelven a PostgreSQL.
Fuente
- API oficial de resultados
- Historial paginado de días anteriores
- Destinatarios desde Zoho Analytics
Pipeline nocturno
- Cron en el servidor
- Plantilla Jinja2 que solo tiene variables
- Reintentos cada 10 minutos
Entrega y medición
- Amazon SES
- Eventos de entrega por Amazon SNS
- PostgreSQL
Decisiones y sus costos
Esperar los sorteos tardíos, con un límite
La API publica algunos sorteos con más de una hora de retraso.
Plantillas que solo tienen variables
Un cambio de diseño no puede alterar una cifra, y un formateador del IDE ya rompió una plantilla una vez.
Un asunto con fecha
Con un asunto fijo, Gmail agrupa los envíos de todos los días en una sola conversación.
Una plantilla al día, los datos de cada persona al enviar
Cada correo lleva el nombre de quien lo recibe.
Stack
Elige una tecnología para ver qué proyectos la usan.



