Як підключити вебхуки для транзакційних листів

Webhook — механізм отримання повідомлень про певні події. Ви можете налаштувати оповіщення собі в систему про доставлюваність листів та активність підписників.

Як створити вебхук

Щоб підключити вебхуки транзакційних листів SMTP, перейдіть в розділ «Налаштування облікового запису» на вкладку «API» і натисніть «Створити webhook» (Create a webhook).

Активуйте відстеження розсилок SMTP, якщо воно було вимкнено.

Вкажіть URL-адресу вашого обробника, на яку потрібно надсилати події. Також зауважте, які саме події потрібно передавати.

Список подій, за якими спрацьовує webhook у сервісі SMTP щодо відправки листа:

  • доставлено;
  • не доставлено;
  • відкрито;
  • перехід по посиланню;
  • відмічено як спам;
  • відписався;

Формат даних, що надсилаються

При спрацюванні вебхук SendPulse відправляє на вказаний URL POST запит з JSON типом даних.

Дані надсилаються щохвилини або при досягненні ліміту в 100 подій.

Дані надсилаються в наступному форматі:

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

Формати запитів, залежно від події

Доставлено:

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

Не доставлено:

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

Відкрито:

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

Перехід по посиланню:

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

Відписався:

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

Відмічено як спам:

[
  {
    "event": "spam_by_user",
    "timestamp": 1490964607,
    "message_id": 1145317311,
    "recipient": "doe.john@sendpulse.com",
    "sender": "john.doe@sendpulse.com",
    "subject": "utf8_hello_world" 
  }
]

Приклад скрипта, який приймає запит, мовою PHP:

<?php
$json_string = file_get_contents('php://input');
$data_array = json_decode($json_string, true);
?>
Оцініть, наскільки стаття була корисною "Як підключити вебхуки для транзакційних листів"

Оцінка: 4 / 5

    Спробуйте сервіс SMTP SendPulse безкоштовно