Перейти к основному содержимому

$jsapi.chatHistoryJson

Метод $jsapi.chatHistoryJson() возвращает подробную историю диалога в текущей сессии в формате JSON. В этом формате вы можете отправлять историю в сторонние системы.

История — это список из различных сообщений:

Поля сообщения:

ПолеОписание
questionID

Идентификатор сообщения.

Если бот реагирует на запрос пользователя или событие, то questionID в реакции бота будет совпадать с questionID в запросе или событии.

textТекст сообщения. Поле отсутствует, если у сообщения нет текста.
authorАвтор:
  • CLIENT — для запросов пользователя и событий.
  • BOT — для реакций бота.
  • OPERATOR — для сообщений оператора.
statusСтатус:
  • SENT — отправлено.
  • DELIVERED — доставлено.
  • NOT_DELIVERED — не доставлено.
  • READ — прочитано.
  • NOT_SENT — не отправлено.
eventDataДанные, переданные вместе с событием.
sendDateInUTCUnix-время отправки по часовому поясу UTC.

Примеры использования

Метод вызывается без аргументов.

state: historyJson
q: история диалога в формате JSON
a: {{ $jsapi.chatHistoryJson() }}

Пример истории:

[
{
"questionId": "example1-0000-0000-0000-000000000000",
"text": "Как купить билет?",
"author": "CLIENT",
"status": "SENT",
"eventData": {},
"sendDateInUTC": 1713883656
},
{
"questionId": "example1-0000-0000-0000-000000000000",
"text": "Вы можете купить билет онлайн: https://example.com/buy",
"author": "BOT",
"status": "SENT",
"eventData": {},
"sendDateInUTC": 1713883656
},
{
"questionId": "example2-0000-0000-0000-000000000000",
"author": "CLIENT",
"status": "SENT",
"eventData": {
"example": "data"
},
"sendDateInUTC": 1713883656
}
]

В телефонном канале

В этом примере:

  1. Бот отправляет историю через HTTP-запрос в стейте с событием hangup. Это событие приходит в сценарий, если пользователь сам завершил звонок.

  2. Если история успешно отправлена, бот добавляет комментарий в аналитику.

state: ClientHangUp
// Событие сработает, если пользователь завершит звонок
event!: hangup
script:
// Бот отправляет историю
$temp.response = $http.query("https://httpbin.org/post", {
method: "POST",
body: $jsapi.chatHistoryJson(),
dataType: "json"
});
// Бот добавляет комментарий в аналитику
if ($temp.response.isOk) {
$analytics.setComment("История отправлена");
};