Como habilitar webhook para e-mails transacionais

Webhook é um mecanismo para receber notificações sobre determinados eventos. Você pode configurar notificações para seu sistema sobre a capacidade de entrega de e-mails e a atividade dos assinantes.

Como criar um webhook

Para conectar webhook SMTP, vá para a seção Configurações da conta na guia API e clique em Criar webhook.

Ative o rastreamento de e-mail SMTP, se estiver desativado.

Especifique a URL de seu manipulador para onde enviar eventos. E marque quais eventos você deseja enviar.

Lista de eventos acionados por um webhook no serviço SMTP em relação ao envio de e-mails:

Os seguintes eventos disparam webhooks para enviar emails no serviço SMTP:

Entregue (Delivered) O e-mail foi entregue com sucesso ao seu destinatário
Não entregue (Not delivered) O e-mail não pôde ser entregue ao seu destinatário.
Aberto (Open) O destinatário abriu o e-mail.
Clique no link (Click on a link) O destinatário clicou em um link no e-mail.
Marcado como spam (Marked as spam) O destinatário marcou o e-mail como spam e cancelou a inscrição.
Cancelou a inscrição (Unsubscribed) O destinatário cancelou a inscrição para não receber mais e-mails.
Reinscrito(Resubscribed) O destinatário que havia cancelado a inscrição anteriormente confirmou sua inscrição no e-mail enviado pelo método Reinscrever um destinatário.
Erro de hard bounce (Hard bounces) O e-mail não pôde ser entregue devido a um erro permanente. A razão pode ser um endereço de e-mail inexistente ou inválido.
Erro de soft bounce (Soft bounces) O e-mail não pôde ser entregue devido a um erro temporário. As razões podem incluir uma caixa de entrada cheia ou problemas temporários com o servidor do destinatário.

Enviar formato de dados

O webhook é acionado a cada 30 segundos ou se a SendPulse coletou 500 eventos para enviar.

Quando o webhook é acionado, a SendPulse envia uma solicitação POST com tipo de dados JSON para o URL especificado.

Os dados são enviados no seguinte formato:

[
  {
    "event": "event_name",
    "timestamp": 1490954061,
    "message_id": 1149317311,
    "recipient": "john.doe@sendpulse.com",
    "sender": "doe.john@sendpulse.com",
    "subject": "hello world" 
  }
]

Se existirem vários eventos, então eles serão agrupados em várias solicitações:

[
  {
    "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" 
  },
]

Solicitar formatis, dependendo do evento

Entregue:

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

Não entregue:

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

Aberto:

[
  {
    "event": "opened",
    "timestamp": 1490962764,
    "message_id": 1149317311,
    "recipient": "doe.john@sendpulse.com",
    "sender": "john.doe@sendpulse.com",
    "subject": "utf8_hello_world" 
  }
]

Seguindo um link:

[
  {
    "event": "clicked",
    "timestamp": 1490964928,
    "message_id": 1149317311,
    "recipient": "doe.john@sendpulse.com",
    "sender": "john.doe@sendpulse.com",
    "subject": "utf8_hello_world" 
  }
]

Não inscrito:

[
 {
    "event": "unsubscribed",
    "recipient": "john.doe@sendpulse.com",
    "sender": "doe.john@sendpulse.com",
    "subject": "hello world" 
  }
]

Reinscrito:

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

Recebeu soft bounce:

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

Recebeu hard bounce:

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

Um exemplo de script que aceita uma solicitação em PHP:

<?php
$json_string = file_get_contents('php://input');
$data_array = json_decode($json_string, true);
?>
    Rate this article about "Como habilitar webhook para e-mails transacionais"

    User Rating: 5 / 5 (8)

    Anterior

    Como visualizar estatísticas de SMTP

    Próximo

    Como enviar e-mails transacionais usando um modelo SendPulse

    Popular em nosso blog

    Teste o servidor SMTP do SendPulse gratuitamente