This site is no longer updated.Go to new Conversational Cloud docs

$request


Переменная содержит данные запроса клиента.

Формат объекта

Формат объекта соответствует следующей структуре:


Поле Описание
data Параметры запроса: livechatStatus, JustWidgetRawParams, isTestChannel, requestHeaders.
requestType Тип запроса.
version Версия протокола. По умолчанию последняя версия.
botId

channelBotId
Идентификатор бота.
accountId Идентификатор аккаунта.
channelType Тип коммуникационного канала.
channelUserId Идентификатор клиента.
questionId Идентификатор запроса.
query Текстовый запрос клиента.
rawRequest Объект запроса в исходном виде для последующей обработки в сценарии.
language Язык NLU для проекта.
userFrom Данные о клиенте: id, firstName, lastName.

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

$request.channelType

Проверяем тип канала для перевода на оператора:

state: GoToOpeartor
    script:
        if ($request.channelType == 'telegram' || $request.channelType == 'chatwidget') {
            $reactions.answer('Перевод на оператора')
        } else {
            $reactions.answer('Невозможно перевести на оператора')
        }

$request.botId и $request.channelUserId

Запрашиваем идентификатор бота и клиента для авторизации в банке:

state: TransferMoney
    q!: * перевести деньги *
    # Доступ к функции бота возможен только после авторизации клиента
    script:
        # Получение pushback-ссылки
        $temp.securityToken = "ExampleToken";
        var channelType = $request.channelType;

        # Получение ID бота
        var botId = $request.botId;
        
        # Получение ID клиента
        var chatId = $request.channelUserId;
        # Название события
        var event = "authEvent";

        var eventData = {
            "token": $temp.securityToken,
            "someData": {
                "smth": 1
            }
        };
        $temp.pushgateResponse = $pushgate.createPushback(channelType, botId, chatId, event, eventData);
...

$request.query

Отображаем в диалоге нераспознанный запрос клиента:

state: NoMatch
    event!: noMatch
    a: Я не понял. Вы сказали: {{$request.query}}`

$request.data.requestHeaders

Поле $request.data.requestHeaders доступно только для каналов Чатвиджет, Aimybox и Chat API.

Получаем информацию о клиентском приложении:

state: RequestClientInfo
    intent!: /info
    a: {{ $request.data.requestHeaders['user-agent']}}

Имена HTTP-заголовков в поле $request.data.requestHeaders приведены к нижнему регистру.


$request.rawRequest

Получаем телефонный номер клиента для обработки заказа:

state: GetPhoneNumber
    event: telegramSendContact
    script:
        $client.phone_number = $request.rawRequest.message.contact.phone_number;
    a: Спасибо! Наш менеджер свяжется с вами по номеру телефона {{$client.phone_number }}.