Webhooks transaccionales
Los webhooks permiten que su aplicación reciba notificaciones en tiempo real cuando algo ocurre con un correo electrónico transaccional después de enviarlo. En lugar de consultar la API para comprobar el estado de entrega, Flexmail envía una solicitud HTTP POST a su endpoint en el momento en que se produce un evento.
Esto es especialmente valioso para el correo transaccional: puede tomar medidas inmediatas cuando un restablecimiento de contraseña tiene un rebote, cuando se entrega una confirmación de pedido o cuando un destinatario marca un mensaje como spam.
Eventos de webhook
Flexmail envía una notificación de webhook para cada uno de los siguientes eventos:
- Enviado: el mensaje fue aceptado y entregado al servidor de correo receptor.
- Entregado: el servidor de correo receptor confirmó la entrega en el buzón del destinatario.
- Rebotado: la entrega falló. Los rebotes duros indican un problema permanente (la dirección no existe); los rebotes suaves indican un problema temporal (buzón lleno, servidor no disponible).
- Abierto: el destinatario abrió el mensaje.
- Clic: el destinatario hizo clic en un enlace rastreado del mensaje.
- Queja: el destinatario marcó el mensaje como spam.
Nota
El seguimiento de aperturas y clics requiere que estén habilitados el píxel de seguimiento y el encapsulado de enlaces. Los eventos de entrega dependen de que el servidor de correo receptor confirme la entrega: no todos los servidores lo hacen.
Configurar un endpoint de webhook
Su endpoint de webhook es una URL en su servidor que acepta solicitudes HTTP POST y devuelve una respuesta 200 para confirmar la recepción.
Requisitos para su endpoint
- Acepta solicitudes HTTP POST.
- Es accesible públicamente a través de HTTPS.
- Devuelve un código de estado HTTP 2xx dentro de un tiempo de espera razonable para confirmar la recepción.
- Procesa el payload de forma asíncrona si su lógica de manejo es lenta: responda inmediatamente y procese en segundo plano para evitar tiempos de espera agotados.
Registrar su endpoint en Flexmail
La configuración del endpoint de webhook se realiza a través de la API. El proceso de registro completo y las opciones disponibles están documentados en la documentación de la API en email-api.flexmail.eu/documentation, en la sección de Webhooks.
Payload del webhook
Cada notificación de webhook es una solicitud HTTP POST con un cuerpo JSON. El payload contiene el tipo de evento, una marca de tiempo, el ID del mensaje y la dirección de correo del destinatario. Dependiendo del evento, se incluyen campos adicionales; por ejemplo, un evento de rebote incluye el tipo de rebote y el motivo, y un evento de clic incluye la URL en la que se hizo clic.
Un payload típico tiene este aspecto:
{ "event": "delivered", "timestamp": "2024-11-15T09:32:00Z", "messageId": "abc123", "recipient": "customer@example.com" }
La especificación completa del payload para cada tipo de evento está en la documentación de la API.
Qué hacer con los eventos de webhook
Rebotes
Cuando reciba un evento de rebote duro, marque esa dirección de correo en su sistema. Deje de enviarle correos e investigue si la dirección se introdujo correctamente. Seguir enviando a direcciones con rebote duro daña su reputación como remitente.
Quejas de spam
Cuando un destinatario marca un correo transaccional como spam, suprima esa dirección de inmediato. Incluso si el correo era genuinamente transaccional (una confirmación de pedido, por ejemplo), el destinatario ha señalado que no desea recibir correos suyos. Seguir enviando es perjudicial para su reputación y puede ser un problema legal.
Confirmaciones de entrega
Para mensajes urgentes como restablecimientos de contraseña o códigos de autenticación en dos pasos, puede usar el evento de entrega para confirmar que el correo llegó a la bandeja de entrada. Si no llega ninguna confirmación de entrega dentro de un plazo razonable, puede mostrar un mensaje en su interfaz de usuario sugiriendo al usuario que revise su carpeta de spam o vuelva a intentarlo.
Consejo
Confirme las solicitudes de webhook de inmediato con una respuesta 200 y luego procese el payload en un trabajo o cola en segundo plano. Si su manejador tarda demasiado en responder, Flexmail puede agotar el tiempo de espera y reintentar la solicitud, lo que puede llevar a un procesamiento duplicado.
Reintentos
Si su endpoint no devuelve una respuesta exitosa, Flexmail reintentará la notificación de webhook. Haga que su manejo de eventos sea idempotente: procesar el mismo evento dos veces debe producir el mismo resultado que procesarlo una sola vez. Use el ID del mensaje y el tipo de evento juntos para deduplicar.
Próximos pasos
- Consulte «Primeros pasos con la API transaccional» para la configuración de la cuenta.
- Revise la sección de Webhooks en la documentación de la API en email-api.flexmail.eu/documentation para obtener la especificación completa del payload y las instrucciones de registro.
- Consulte «Resolución de problemas transaccionales» si sus webhooks no llegan o su entregabilidad está por debajo de las expectativas.