Cómo Habilitar Webhooks para el Servicio de Correo Electrónico
Un webhook es un mecanismo para recibir notificaciones sobre ciertos eventos. Puedes configurar notificaciones sobre la capacidad de entrega del correo electrónico y la actividad de los suscriptores.
Cómo Crear un Webhook
Para crear y enviar webhooks automáticamente, ve a la sección "Configuración de la cuenta" en la pestaña "API" y haz clic en "Crear un webhook".
Selecciona el evento desencadenado por el webhook en el servicio de correo electrónico con respecto al envío de un correo electrónico:
- Correo marcado como spam
- Correo abierto
- Enlace en el correo electrónico hecho clic
- Nuevo suscriptor
- Suscriptor cancelado
- Suscriptor eliminado de la lista
- Entregado
- El estado de la campaña cambió
- Rebote blando
- Rebote duro
A continuación, especifica la URL a la que se enviarán las notificaciones.
Para cada evento, debes crear webhooks separados.
Enviar Formato de Datos
Cuando se activa un webhook, SendPulse envía una solicitud POST a la URL especificada con el tipo de datos JSON.
Los datos se envían cada minuto o cuando se alcanza el límite de 100 eventos.
Los datos se envían en el siguiente formato:
[
{
"timestamp": "1496827422",
"event": "event_name",
"task_id": "3668141",
"email": "john.doe@sendpulse.com"
}
]
Formatos de Solicitud, Según el Evento
Marcado como spam:
[
{
"timestamp": "1496827422",
"event": "spam",
"task_id": "3668141",
"email": "john.doe@sendpulse.com"
}
]
Correo abierto:
[
{
"task_id": "3668141",
"timestamp": "1496827941",
"open_device": "Desktop",
"open_platform": "Windows",
"browser_ver": "11.0",
"browser_name": "Firefox",
"email": "john.doe@sendpulse.com",
"event": "open"
}
]
Enlace pulsado:
[
{
"link_url": http://google.com,
"task_id": "3668141",
"timestamp": "1496828000",
"open_device": "Desktop",
"open_platform": "Linux",
"browser_ver": "58.0.3029.110",
"browser_name": "Chrome",
"link_id": "71741389",
"email": "john.doe@sendpulse.com",
"event": "redirect"
}
]
Cliente cancelado:
[
{
"task_id": "3668141",
"timestamp": "1496827872",
"from_all": "1",
"email": "john.doe@sendpulse.com",
"reason": null,
"book_id": "490686",
"event": "unsubscribe",
"categories": ""
}
]
Nuevo suscriptor:
[
{
"timestamp":"1496827625",
"variables": [],
"email": "john.doe@sendpulse.com",
"source": "address book",
"book_id": "490686",
"event": "new_emails"
},
{
"timestamp": "1496827625",
"variables": [],
"email": "doe.john@sendpulse.com",
"source": "subscription form",
"book_id": "490686",
"event": "new_emails"
}
]
Removido de la lista de correos:
[
{
"timestamp": "1496827422",
"event": "delete",
"book_id": "490686",
"email": "john.doe@sendpulse.com"
}
]
Entregado:
[
{
"timestamp": 1632316421
"event": "delivered"
"task_id": 9333331
"email": "test@e.cn.ua"
}
]
El estado de la campaña fue cambiado:
[
{
"status": "approve",
"status_explain": "Approved and will be sent",
"task_id": "3668138,
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
{
"status": "approve_part",
"status_explain": "Approved and will be sent by parts",
"task_id": "3668139",
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
{
"status": "only_active",
"status_explain": "Will be sent only to active adresses",
"task_id": "3668140",
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
{
"status": "confirm_addresses",
"status_explain": "Rejected: confirm the mailing list",
"task_id": "3668142",
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
{
"status": "need_edit",
"status_explain": "Rejected: edit the email body",
"task_id": "3668143",
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
{
"status": "rejected",
"status_explain": "Campaign rejected",
"task_id": "3668144",
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
{
"status": "on_moderation",
"status_explain": "Campaign is on moderation",
"task_id": "3668145",
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
{
"status": "sending",
"status_explain": "Campaign is in the sending queue",
"task_id": "3668146",
"timestamp": "1496827843",
"book_id": "490686",
"event": "task_status_update"
},
]
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 del script que procesa un webhook en PHP:
<?php
$json_string = file_get_contents('php://input');
$data_array = json_decode($json_string, true);
?>
Última actualización: 28.07.2023
o