Ассинхронные события
После запуска каскадной рассылки, вы будете получать события в контексте созданной транзакции на указанный callback URL.
API Fasttrack направляет два типа событий по каждой транзакции:
transaction.done
Обновление по успешно созданной транзакции
transaction.error
Ошибка в процессе обработки транзакции
Событие transaction.done
Событие с типом transaction.done
приходит по факту завершения транзакции, а также в качестве уведомления о смене статуса у провайдера для сообщения отправленного по маршруту.
Ключевые атрибуты события:
uuid
: Уникальный идентификатор транзакции;done_status
: Статус транзакции;successful_routes
: Маршрут, по которому успешно было отправлено сообщение;route_details
: Информация о состоянии каждого маршрута, включая уникальный идентификатор, статус отправки, статус сообщения от провайдера и комментарий к статусу от провайдера.
Пример события transaction.done
по завершению транзакции:
{
"event_type": "transaction.done",
"payload": {
"uuid": "cc1f638a-f039-48b9-8885-af161e2838f8",
"done_at": "2024-02-01T07:43:57.106701Z",
"done_status": "MESSAGE_SENT",
"successful_routes": [
"WHATSAPP"
],
"route_details": {
"BOT": {
"uuid": "96791937-37a1-45c0-b9ee-c20f0807579a",
"state": "ERROR",
"response_status": null,
"response_description": null
},
"WHATSAPP": {
"uuid": "f2ff7bf0-20b4-4ece-b087-1db78866d7d0",
"state": "SENT",
"response_status": "DELIVERED",
"response_description": null
},
"VK_NOTIFY": {
"uuid": "fe38d2f4-af80-4e68-98a2-a3590ae2ee05",
"state": "CANCELLED",
"response_status": null,
"response_description": null
},
"VIBER_SERVICE_MESSAGES": {
"uuid": "d25c241a-de5b-4f6a-80cc-749bf0d90461",
"state": "CANCELLED",
"response_status": null,
"response_description": null
}
},
"context": {
"some": "value"
}
},
"timestamp": 1706773437.1262264
}
В случае, если провайдер канала (например WhatsApp) информирует о смене статуса отправленного сообщения (например, о доставке или прочтении), вы будете получать обновленное событие transaction.done
.
Процесс может выглядеть следующим образом:
Запуск каскадной рассылки: когда рассылка завершиться, вы получите событие
transaction.done
с информацией о транзакции и состоянии каждого маршрута и контексте этой транзакции на момент ее завершения.Изменение статуса в WhatsApp (доставлено): вы получите дополнительное событие
transaction.done
. Это событие имеет ту же структуру, что и первое, но с обновленной информацией по каналу WhatsApp.Изменение статуса в WhatsApp (прочитано): аналогично, ****вы получите событие
transaction.done
с обновленной информацией по каналу WhatsApp.
Пример события transaction.done
с обновленным статусом в WhatsApp:
{
"event_type": "transaction.done",
"payload": {
"uuid": "cc1f638a-f039-48b9-8885-af161e2838f8",
"done_at": "2024-02-01T07:43:57.106701Z",
"done_status": "MESSAGE_SENT",
"successful_routes": [
"WHATSAPP"
],
"route_details": {
"BOT": {
"uuid": "96791937-37a1-45c0-b9ee-c20f0807579a",
"state": "ERROR",
"response_status": null,
"response_description": null
},
"WHATSAPP": {
"uuid": "f2ff7bf0-20b4-4ece-b087-1db78866d7d0",
"state": "SENT",
"response_status": "READ",
"response_description": null
},
"VK_NOTIFY": {
"uuid": "fe38d2f4-af80-4e68-98a2-a3590ae2ee05",
"state": "CANCELLED",
"response_status": null,
"response_description": null
},
"VIBER_SERVICE_MESSAGES": {
"uuid": "d25c241a-de5b-4f6a-80cc-749bf0d90461",
"state": "CANCELLED",
"response_status": null,
"response_description": null
}
},
"context": {
"some": "value"
}
},
"timestamp": 1706773437.1262264
}
В этом примере обновлено значение response_status
для маршрута WHATSAPP.
Варианты значений атрибута state
(статус Fasttrack) для маршрута транзакции:
CREATED
Сообщение создано
ENQUEUED
Сообщение в очереди на отправку
IN_PROCESS
Сообщение отправляется
SENT
Сообщение отправлено
ERROR
Ошибка при отправке сообщения
CANCELLED
Отправка сообщения отменена
Варианты значений атрибута response_status
(статус провайдера) для маршрута транзакции:
SENT
Сообщение отправлено
DELIVERED
Сообщение доставлено
READ
Сообщение прочитано
ERROR
Ошибка при отправке сообщения
UNDELIVERED
Сообщение не доставлено
Событие transaction.error
Событие с типом transaction.error
содержит информацию об ошибках, которые возникли в процессе обработки транзакции. Вы получите подробные данные о событии, включая:
event_type
: Тип события;uuid
: Уникальный идентификатор транзакции;request
: Исходный запрос на создание транзакции;errors
: Объект указывающий на атрибут с ошибкой и уточняющий комментарий.
Пример события transaction.error
:
{
"event_type": "transaction.error",
"payload": {
"uuid": "1ff94733-828b-48f4-8cf0-9b843e072bf6",
"request": {
"phone_number": "+7999999999",
"routing": [
"BOT",
"WHATSAPP"
],
"bot_node_id": 1234,
"whatsapp_template_name": "shablon_name",
"whatsapp_template_variables": {
"v1": "Оператор 1"
},
"validity_period_seconds": 300,
"tag": "test_zapros",
"context": {
"cascade": "test",
"foo": "bar"
}
},
"response": null,
"errors": {
"whatsapp_template_name": [
"Шаблон с идентификатором shablon_name не найден."
]
}
},
"timestamp": 1706773647.5724614
}
Пример события transaction.error содержит сообщение о том, что WhatsApp-шаблон с идентификатором shablon_name
не найден на платформе Fasttrack.
Last updated