Cómo habilitar WebHooks para correos electrónicos transaccionales
Webhook es un mecanismo para recibir notificaciones sobre ciertos eventos. Puedes configurar notificaciones a tu sistema sobre la capacidad de entrega de correos electrónicos y la actividad de los suscriptores.
Cómo crear un Webhook
Para conectar WebHooks SMTP, ve a la sección "Configuración de la cuenta" en la pestaña "API" y haz clic en "Crear webhook".
Activa el seguimiento de correo electrónico SMTP si lo tienes desactivado.
2
Especifica la URL de tu controlador a donde enviar eventos. Y marca los eventos que deseas enviar.
Lista de eventos desencadenados por un webhook en el servicio SMTP con respecto al envío de correos electrónicos:
- Entregado
- No entregado
- Abierto
- Siguiendo un enlace
- Reportado como spam
- Darse de baja
- Enviar formato de datos
- Rebote blando
- Rebote duro
Cuando se activa un webhook, SendPulse envía una solicitud POST a la URL especificada con
Formato de envío de datos
Webhook se activa cada 30 segundos o cada vez que SendPulse recopila 500 eventos para enviar.
Cuando se activa el webhook, SendPulse envía una solicitud POST con tipo de datos JSON a la URL especificada.
Los datos se envían en el siguiente formato:
[
{
"event": "event_name",
"timestamp": 1490954061,
"message_id": 1149317311,
"recipient": "john.doe@sendpulse.com",
"sender": "doe.john@sendpulse.com",
"subject": "hello world"
}
]
Si hay varios eventos, se agruparán en una o varias solicitudes:
[
{
"event": "event_name",
"timestamp": 1490954061,
"message_id": 1149317311,
"recipient": "john.doe@sendpulse.com",
"sender": "doe.john@sendpulse.com",
"subject": "hello world"
},
{
"event": "event_name",
"timestamp": 1490954062,
"message_id": 1149317311,
"recipient": "john.doe@sendpulse.com",
"sender": "doe.john@sendpulse.com",
"subject": "hello world"
},
{
"event": "event_name",
"timestamp": 1490954063,
"message_id": 1149317311,
"recipient": "john.doe@sendpulse.com",
"sender": "doe.john@sendpulse.com",
"subject": "utf8_hello_world"
},
]
Formatos de solicitud, según el evento
Entregado:
[
{
"smtp_server_response_code": "250",
"smtp_server_response_subcode": "",
"sender": "john.doe@sendpulse.com",
"smtp_server_response": "custom_text_response_from_recipients_server",
"timestamp": 1490953933,
"message_id": 1149317311,
"recipient": "doe.john@sendpulse.com",
"event": "delivered",
"subject": "utf8_hello_world"
}
]
No entregado:
[ {
"smtp_server_response_code": "554",
"smtp_server_response_subcode": "5.7.1",
"sender": "john.doe@sendpulse.com",
"smtp_server_response": "custom_text_response_from_recipients_server",
"timestamp": 1490956117,
"message_id": 1149317311,
"recipient": "doe.john@sendpulse.com",
"event": "undelivered",
"subject": "utf8_hello_world"
}
]
Abierto:
[
{
"event": "opened",
"timestamp": 1490962764,
"message_id": 1149317311,
"recipient": "doe.john@sendpulse.com",
"sender": "john.doe@sendpulse.com",
"subject": "utf8_hello_world"
}
]
Siguiendo un enlace:
[
{
"event": "clicked",
"timestamp": 1490964928,
"message_id": 1149317311,
"recipient": "doe.john@sendpulse.com",
"sender": "john.doe@sendpulse.com",
"subject": "utf8_hello_world"
}
]
Darse de baja:
[
{
"event": "unsubscribed",
"recipient": "john.doe@sendpulse.com",
"sender": "doe.john@sendpulse.com",
"subject": "hello world"
}
]
Reportado como spam:
[
{
"event": "spam_by_user",
"timestamp": 1490964607,
"message_id": 1145317311,
"recipient": "doe.john@sendpulse.com",
"sender": "john.doe@sendpulse.com",
"subject": "utf8_hello_world"
}
]
Rebote suave recibido:
[
{
"smtp_server_response_code": 550,
"smtp_server_response_subcode": "5.1.0",
"task_id": 17076325,
"smtp_server_response": " vch15@i.ua MX: mx23.i.ua RESP: Mailbox over quota. See http://mail.i.ua/err/4/",
"timestamp": 1658998170,
"event": "soft_bounces",
"email": "example@example.com"
}
]
Rebote duro recibido:
[
{
"smtp_server_response_code": 550,
"smtp_server_response_subcode": "5.1.1",
"task_id": 17076325,
"smtp_server_response": " example@example.com MX: mx.dereck.cn.ua RESP: 5.1.1 <example@example.com>: Recipient address rejected: User unknown in local recipient table",
"timestamp": 1658998170,
"event": "hard_bounces",
"email": "example@example.com"
}
]
]
Ejemplo de un script que acepta una petición en PHP:
<?php
$json_string = file_get_contents('php://input');
$data_array = json_decode($json_string, true);
?>
Última actualización: 02.08.2023
o