Webhook
Webhook — это механизм, который позволяет сделать POST-запрос на указанный вами URL при возникновении событий отслеживаемого типа на платформе Fasttrack.
Быстрая навигация:
Заполнение формы на сайте
Заполнение форм для бота
Заполнение формы на Landing Page
Смена статусов индивидуальных отправок
Заполнение формы на сайте
Формат уведомления о заполненной веб-форме на сайте:
{
"event_type": "form_lead_created",
"payload": {
"uuid": "00000000-0000-0000-0000-000000000000",
"form": {
"uuid": "00000000-0000-0000-0000-000000000000",
"name": "Название формы"
},
"data": {},
"platform": "Telegram",
"get_params": {},
"utm": {},
"ga_client_id": "751980493.1616501133",
"created_at": 1621346140426
},
"timestamp": 1621346526770
}Описание параметров события:
event_type— тип события (для этого типа события, он всегда будет иметь единственное значение, равноеform_lead_created);payload— данные о событии;payload[uuid]— идентификатор данных заполненной формы;payload[form]— данные о заполненной формы;payload[form][uuid]— идентификатор данных заполненной формы;payload[data]— данные формы (содержит объект, где ключ — имя поля формы, а значение — заполненное пользователем значение);payload[platform]— выбранная пользователем платформа;payload[get_params]— GET-параметры страницы, на которой пользователь заполнил форму (содержит объект; из этого параметра исключен стандартный набор UTM-меток);payload[utm]— UTM-метки страницы, где пользователь заполнял форму (содержит объект);payload[ga_client_id]— уникальный идентификатор посетителя сайта для системы Google Analyticspayload[created_at]— дата и время заполнения формы в форматеUNIX Timestamp;timestamp— дата и время события в форматеUNIX Timestamp;
Заполнение форм для бота
Формат уведомления о заполненной веб-форме на сайте:
{
"event_type": "form_data_created|form_data_updated",
"payload": {
"form": {
"uuid": "0b367f6e-a8ee-402e-80a8-d5ff00e55280",
"name": "Название формы"
},
"chat": {
"uuid": "236bb7a5-c341-4d3b-86c1-820252c7a60a",
"platform": "Telegram"
},
"data": {
"field_name": "field_value"
},
"created_at": 1623163403290,
"updated_at": 1629694257394
},
"timestamp": 1629694713257
}Описание параметров события:
event_type— тип события (для этого типа события, он всегда будет одно из двух типов событийform_data_created или form_data_updated);payload— данные о событии;payload[uuid]— идентификатор данных заполненной формы;payload[form]— данные о заполненной формы;payload[form][uuid]— идентификатор данных заполненной формы;payload[data]— данные формы (содержит объект, где ключ — имя поля формы, а значение — заполненное пользователем значение);payload[platform]— выбранная пользователем платформа;payload[get_params]— GET-параметры страницы, на которой пользователь заполнил форму (содержит объект; из этого параметра исключен стандартный набор UTM-меток);payload[utm]— UTM-метки страницы, где пользователь заполнял форму (содержит объект);payload[ga_client_id]— уникальный идентификатор посетителя сайта для системы Google Analyticspayload[created_at]— дата и время заполнения формы в форматеUNIX Timestamp;timestamp— дата и время события в форматеUNIX Timestamp;
Заполнение формы на Landing Page
Формат уведомления о заполненной веб-форме на Landing Page:
{
"event_type": "landing_lead_created",
"payload": {
"uuid": "00000000-0000-0000-0000-000000000000",
"form": {
"uuid": "00000000-0000-0000-0000-000000000000",
"name": "Название формы"
},
"data": {},
"platform": "Telegram",
"get_params": {},
"utm": {},
"ga_client_id": "751980493.1616501133",
"created_at": 1621346140426
},
"timestamp": 1621346526770
}Описание параметров события:
event_type— тип события (для этого типа события, он всегда будет иметь единственное значение, равноеlanding_lead_created);payload— данные о событии;payload[uuid]— идентификатор данных заполненной формы;payload[form]— данные о заполненной формы;payload[form][uuid]— идентификатор данных заполненной формы;payload[data]— данные формы (содержит объект, где ключ — имя поля формы, а значение — заполненное пользователем значение);payload[platform]— выбранная пользователем платформа;payload[get_params]— GET-параметры страницы, на которой пользователь заполнил форму (содержит объект; из этого параметра исключен стандартный набор UTM-меток);payload[utm]— UTM-метки страницы, где пользователь заполнял форму (содержит объект);payload[ga_client_id]— уникальный идентификатор посетителя сайта для системы Google Analyticspayload[created_at]— дата и время заполнения формы в форматеUNIX Timestamp;timestamp— дата и время события в форматеUNIX Timestamp;
Смена статусов индивидуальных отправок
Пример уведомления смене статуса индивидуальной отправки:
{
"event_type": "push_message",
"payload": {
"uuid": "00000000-0000-0000-0000-000000000000",
"chat": {
"uuid": "00000000-0000-0000-0000-000000000000",
"platform": "Telegram"
},
"state": {
"code": "PENDING",
"detail": "текст"
},
"created_at": 1621346140426,
"sent_at": 1621346140426,
"delivered_at": 1621346140426
},
"timestamp": 1621346140426
}Описание параметров события:
event_type- тип события (для этого типа события, он всегда будет иметь единственное значение, равноеpush_message);payload— данные о событии;payload[uuid]— идентификатор данных о смене статуса индивидуальной отправки;payload[chat]— данные о чате;payload[chat][uuid]— уникальный идентификатор чата на платформе;payload[chat][platform]— канал, через который подключен чат;payload[state]— данные о текущем статусе отправки;payload[state][code]— код статуса отправки;payload[state][detail]— дополнительная информация о статусе отправки;payload[created_at]— дата и время создания отправки в форматеUNIX Timestamp;payload[sent_at]— дата и время отправки в форматеUNIX Timestamp;payload[delivered_at]— дата и время смены статуса в форматеUNIX Timestamp;timestamp- дата и время события в форматеUNIX Timestamp;
Возможные коды статусов отправки (payload[state][code]) — приведены в таблице ниже:
PENDING
В ожидании отправки (по умолчанию)
CANCELLED
Отправка отменена пользователем платформы или через API
IN_PROCESS
В процессе отправки
SENT
Отправлено
ERROR
Ошибка отправки
DELIVERED
Доставлено
UNDELIVERED
Не доставлено
Система будет делать POST-запрос, закодированный в application/json, на указанный URL. Для подтверждения, что данные пришли от нас, вы можете воспользоваться функционалом подписи запроса.
Пример формирования такой подписи на языке Python — приведен ниже:
import hashlib
import hmac
def generate_signature_header(url: str, method: str, body: str, sign_key: str) -> str:
"""
:param url: URL адрес HTTP запроса
:param method: метод HTTP запроса
:param body: тело запроса
:param sign_key: ключ для формирования подписи
:return: подпись для отправки в заголовке X-Signature
"""
signature_message = url + method + body
signature = hmac.new(
sign_key.encode(),
signature_message.encode(),
digestmod=hashlib.sha512,
)
header = signature.hexdigest()
return headerКлюч для формирования подписи настраивается в разделе «Системные настройки»:
Здесь картинка: attachments/2698674283/2724298753.png
Значение подписи будет передано в HTTP-заголовке с названием X-SIGNATURE.
Для подтверждения доставки уведомления необходимо:
Ответить статусом
200 OKв течение 2 секунд;
В случае ошибки и/или отправки другого статуса — запрос будет повторяться еще **5****раз, но задержка между ними каждый раз будет возрастать в два раза: 2, 4, 8, 16, 32 сек.
Last updated