Flujos

Flujos de email

El recorrido operativo de un correo y sus señales: envío, entrega, rebote y reclamo. Los flujos de interacción (tracking e interés) tienen su propia página.

Resumen

El sistema maneja seis flujos. Tres pertenecen al lado del correo y se documentan aquí; los otros tres corresponden a la interacción del destinatario.

Flujo de envío

El operador prepara una campaña en listmonk asociada a una lista de suscriptores; el mensaje viaja hasta la bandeja de entrada del destinatario a través de Amazon SES.

Diagrama: Composición y entrega de una campañaDiagrama: Composición y entrega de una campaña
Composición y entrega de una campaña

Explicación paso a paso

01

Preparación

El operador crea la campaña en listmonk asociada a una lista de suscriptores.

02

Renderizado

listmonk lee los datos desde PostgreSQL y renderiza un mensaje por destinatario, reemplazando el CTA por un enlace individual bajo trk.medinodo.com.

03

Conexión SMTP

Abre una conexión SMTP autenticada y cifrada (LOGIN + STARTTLS) con Amazon SES usando las credenciales de AWS IAM.

04

Entrega

SES valida la identidad de envío con los registros DNS de Cloudflare y entrega el mensaje al proveedor de correo del destinatario.

Errores posibles

Fallo de autenticación SMTP; rechazo de SES por identidad no verificada o por límites de cuota/sandbox por región; alineación DKIM/SPF/DMARC incorrecta.

Buenas prácticas

Mantener verificados los registros de autenticación en Cloudflare antes de cada envío masivo y vigilar las cuotas de SES por región.

Flujo de bounce

Cuando SES detecta un hard bounce (dirección inválida), el evento viaja por un camino separado del de entrega para evitar reenvíos futuros.

Diagrama: Propagación de un hard bounce hasta la blocklistDiagrama: Propagación de un hard bounce hasta la blocklist
Propagación de un hard bounce hasta la blocklist
01

Detección

SES detecta un hard bounce y publica el evento en el tópico SNS ses-bounces.

02

Notificación

SNS hace un POST al webhook público https://trk.medinodo.com/webhooks/service/ses.

03

Enrutamiento

Cloudflare Tunnel entrega la solicitud a listmonk.

04

Registro y blocklist

listmonk registra el evento en PostgreSQL y coloca al suscriptor en blocklist según los umbrales configurados.

Errores posibles

Webhook inaccesible o rechazado; reintentos de SNS; el suscriptor no queda en blocklist si el evento no llega.

Buenas prácticas

Monitorear la disponibilidad del webhook: si falla, se pierde la supresión y se corre el riesgo de reenviar a direcciones inválidas.

Flujo de complaint

Un complaint ocurre cuando una persona marca el mensaje como spam. Sigue el mismo transporte de feedback que el bounce, pero refleja intención del destinatario, no una dirección inválida.

Diagrama: Un reclamo de spam termina en blocklistDiagrama: Un reclamo de spam termina en blocklist
Un reclamo de spam termina en blocklist
01

Reclamo

El destinatario marca el mensaje como spam en su proveedor de correo.

02

Feedback

SES genera el complaint y lo publica en el tópico SNS ses-bounces.

03

Entrega del evento

SNS hace POST al webhook; Cloudflare Tunnel lo entrega a listmonk.

04

Supresión

listmonk registra el evento y coloca al suscriptor en blocklist, evitando volver a escribir a quien marcó el mensaje como spam.

Errores posibles

Pérdida del evento por webhook caído; el suscriptor podría recibir nuevos envíos pese al reclamo si no se aplica la blocklist.

Buenas prácticas

Tratar los complaints como señal prioritaria de reputación: respetar la blocklist protege la capacidad de entrega de futuras campañas.

Nota: correo entrante

Si una persona responde al mensaje, la respuesta llega a info@medinodo.com mediante Google Workspace. No regresa a listmonk ni pasa por el flujo de SNS: es un camino independiente del feedback de entrega.

Consideraciones

Dos caminos, una fuente de verdad

Entrega y feedback usan rutas distintas, pero ambos terminan escribiendo en PostgreSQL. La blocklist es la decisión que evita reenvíos costosos.