Как подключить вебхуки для email сервиса

Webhook — это механизм получения уведомлений об определенных событиях. Вы можете настроить оповещения себе в систему о доставляемости писем и активности подписчиков.

Как создать вебхук

Чтобы включить отправку автоматических вебхуков по событиям Email сервиса, перейдите в раздел Настройки аккаунта на вкладку API и нажмите Создать webhook.

Выберите событие относительно отправки письма, по которому будет срабатывать вебхук в email сервисе:

  • Отмечено как спам;
  • Открытие рассылки;
  • Переход по ссылке;
  • Новый подписчик;
  • Удаление из книги;
  • Пользователь отписался;
  • Доставлено;
  • Изменение статуса рассылки;
  • Ошибки soft bounces;
  • Ошибки hard bounces.

Далее укажите URL, на который будут отправляться уведомления.

Для каждого события создается отдельный вебхук.

Формат отправляемых данных

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

Данные отсылаются каждую минуту или при достижении лимита в 100 событий.

Данные пересылаются в следующем формате:

[
  {
    "timestamp": "1496827422",
    "event": "event_name",
    "task_id": "3668141",
    "email": "john.doe@sendpulse.com" 
  }
]

Форматы запросов, в зависимости от события

Помечено как спам:

[
  {
    "timestamp": "1496827422",
    "event": "spam",
    "task_id": "3668141",
    "email": "john.doe@sendpulse.com" 
  }
]

Открытие рассылки:

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

Переход по ссылке:

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

Пользователь отписался:

[
  {
    "task_id": "3668141",
    "timestamp": "1496827872",
    "from_all": 1,
    "email": "john.doe@sendpulse.com",
    "reason": null,
    "book_id": "490686",
    "event": "unsubscribe",
    "categories": "" 
  }
]

Новый подписчик:

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

Удаление из книги:

[
  {
    "timestamp": "1496827422",
    "event": "delete",
    "book_id": "490686",
    "email": "john.doe@sendpulse.com" 
  }
]

Доставлено:

[
  {
    "timestamp": 1632316421
    "event": "delivered"
    "task_id": 9333331
    "email": "test@e.cn.ua"
  }
]

Изменение статуса рассылки:

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

Получен 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"
   }
]

Получен hard bounce:

[
   {
      "smtp_server_response_code": 550,
      "smtp_server_response_subcode": "5.1.1",
      "task_id": 17076325,
      "smtp_server_response": "** dsgfasd@dereck.cn.ua MX: mx.dereck.cn.ua RESP: 5.1.1 <dsgfasd@dereck.cn.ua>: Recipient address rejected: User unknown in local recipient table",
      "timestamp": 1658998170,
      "event": "hard_bounces",
      "email": "dsgfasd@dereck.cn.ua"
   }
]

Пример скрипта, принимающего запрос, на языке PHP:

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

    Оценка: 4 / 5

    Назад

    Как использовать умную персонализацию в письмах

    Далее

    Как использовать архив рассылок

    Популярное в нашем блоге

    Начните пользоваться сервисом SendPulse прямо сегодня