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