Як підключити вебхуки для 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);
?>
Оновлено: 18.12.2023
або