Ассинхронные события

После запуска каскадной рассылки, вы будете получать события в контексте созданной транзакции на указанный callback URL.

API Fasttrack направляет два типа событий по каждой транзакции:

Тип события
Описание

transaction.done

Обновление по успешно созданной транзакции

transaction.error

Ошибка в процессе обработки транзакции

Заметка: callback-запросы будут выполняться с типом запроса POST в формате JSON.

Событие 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.

Процесс может выглядеть следующим образом:

  1. Запуск каскадной рассылки: когда рассылка завершиться, вы получите событие transaction.done с информацией о транзакции и состоянии каждого маршрута и контексте этой транзакции на момент ее завершения.

  2. Изменение статуса в WhatsApp (доставлено): вы получите дополнительное событие transaction.done. Это событие имеет ту же структуру, что и первое, но с обновленной информацией по каналу WhatsApp.

  3. Изменение статуса в 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