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.

Especifica la URL de tu controlador a donde enviar eventos. Y marca los eventos que deseas enviar.

Los siguientes eventos activan webhooks para enviar correos electrónicos en el servicio SMTP:

Entregado (Entregado) El correo electrónico se ha entregado correctamente a su destinatario.
No entregado (No entregado) No se ha podido entregar el correo electrónico a su destinatario.
Abierto (Abierto) El destinatario ha abierto el correo electrónico.
Directo al enlace (Al hacer clic en un enlace) El destinatario ha hecho clic en un enlace del correo electrónico.
Marcado como spam (Marcado como spam) El destinatario ha marcado el correo como spam y ha cancelado la suscripción.
Dado de baja (Cancelar suscripción) El destinatario ha cancelado la suscripción para recibir más correos electrónicos.
Volver a suscribir (Suscrito de nuevo) El destinatario previamente dado de baja confirmó su suscripción en el correo electrónico que se envió a través del método Volver a suscribir.
Error Hard bounce(Fallo de entrega permanente) No se ha podido entregar el correo electrónico debido a un error permanente. El motivo puede ser una dirección de correo electrónico no válida o inexistente.
Error Soft bounce (Fallo de entrega temporal) No se ha podido entregar el correo electrónico debido a un error temporal. El motivo puede ser una bandeja de entrada llena o problemas temporales con el servidor del destinatario.

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" 
  }
]

Resuscrito:

[
   {
      "timestamp":1717500409,
      "message_id":"",
      "recipient":"john.doe@sendpulse.com",
      "event":"resubscribed",
      "subject":""
   }
]

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.i.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);
?>
Califica este artículo sobre "Cómo habilitar webhooks para correos electrónicos transaccionales"

Opinión de los usuarios: 5 / 5 (4)

Anterior

Visualliza las estadísticas de SMTP

Siguiente

Cómo Enviar Correos Transaccionales Usando una Plantilla de SendPulse

Popular en nuestro blog

Pruebe SendPulse SMTP hoy mismo gratis