КОНСТРУКТОР СЦЕНАРИЯ АГЕНТА

icon picker
Вкладка внешних запросов — External Requests

Вкладка EXTERNAL REQUESTS — вкладка, на которой создаются
@Внешний запрос
для дальнейшего их использования в
@Агент
ах
@Компания
.

Переход на вкладку Внешних запросов

В список
@Внешний запрос
@Компания
можно перейти двумя способами:
перейти на вкладку Resourses () и нажать кнопку External Requests;
перейти в
@БотБилдер
@Агент
а и открыть вкладку External Requests.

Список Внешних запросов

На вкладке
@Внешний запрос
представлен список всех
@Внешний запрос
@Компания
: ​
image.png
Name — названия
@Внешний запрос
ов; ​
image.png
Кнопка сортировки
@Внешний запрос
ов по алфавиту; ​
image.png
По нажатию кнопки сортировка
@Внешний запрос
ов меняется: от начала алфавита к концу и наоборот.
Method and URL — URL назначения, куда должен быть отправлен запрос и метод HTTP запроса; ​
image.png
In use — использование
@Внешний запрос
ов в
@Агент
ах; ​
image.png
Напротив каждого
@Внешний запрос
а, используемого в
@Агент
ах, проставлена галочка и кнопка Clarify; ​
image.png
По нажатию кнопки Clarify выводятся иконки
@Агент
ов, в которых используется
@Внешний запрос
.
image.png

Поиск по Внешним запросам

Поиск по имени Внешнего запроса

Для совершения поиска по имени
@Внешний запрос
а необходимо ввести искомое значение в поле поиска.
В списке будут выведены только
@Внешний запрос
ы, содержащие в названии искомую строку; ​
image.png

Поиск по использованию Внешнего запроса

Поиск по использованию
@Внешний запрос
а в
@Агент
ах производится с помощью фильтров In use и Not in use.
По нажатию на кнопку In use выводятся
@Внешний запрос
ы, используемые в
@Агент
ах; ​
image.png
По нажатию на кнопку In use вместо фильтра Not in use выводится фильтр Agent — фильтр по
@Агент
ам.
По нажатию на кнопку Agent открывается панель поиска по
@Агент
ам. ​
image.png
Чтобы найти
@Внешний запрос
ы, которые используются в определенных
@Агент
ах, необходимо кликнуть по необходимым
@Агент
ам в списке.
По нажатию на кнопку Not in use выводятся
@Внешний запрос
ы, не используемые в
@Агент
ах. ​
image.png

Создание, изменение и удаление Внешних запросов

Создание Внешнего запроса

Чтобы создать
@Внешний запрос
ы, необходимо:
Перейти в список
@Внешний запрос
ов.
Нажать кнопку Create new. ​
image.png
По нажатию кнопки на панели справа откроется форма создания нового
@Внешний запрос
а.
Необходимо заполнить поля на вкладках формы создания
@Внешний запрос
а.

Вкладка Main

Вкладка Main содержит базовые данные
@Внешний запрос
а.
image.png
Поля вкладки:
Name* — название
@Внешний запрос
. Максимальная длина значения поля — 1000 символов.
Description — описание
@Внешний запрос
. Максимальная длина значения поля — 1000 символов.
Метод запроса* — HTTP метод для данного запроса. По умолчанию установлен метод GET.
GET
POST
PUT
PATCH
DELETE
HEAD
Endpoint* — адрес вебхука, на который будет отправлен данный
@Внешний запрос
. Максимальная длина значения поля — 1000 символов.
Формат значения:
Строка ​
image.png
@Контекстная переменная
в формате {{ var }}
image.png
@Выражение
или
@Выражение с управляющей конструкцией
. Подробнее: . ​
image.png

Вкладка Headers

На вкладке Headers можно добавить заголовки к
@Внешний запрос
у.
image.png
Поля и кнопки вкладки:
Header* — название заголовка. Максимальная длина значения поля — 1000 символов.
Value* — значение заголовка. Максимальная длина значения поля — 1000 символов.
Формат значения: допустимо использование
@Выражение
или
@Выражение с управляющей конструкцией
.
Кнопка крестика удаляет заголовок (строку).
Add new field — кнопка добавления нового заголовка.

Вкладка Query parameters

На вкладке Query parameters можно прописать параметры, которые будут подставлены к URL запроса.
image.png
Поля и кнопки вкладки:
Parameter* — название параметра. Максимальная длина значения поля — 1000 символов.
Кодировка символов не латинского алфавита: Допускаются пробелы, спецсимволы и не латинский символы, будет произведено кодирование значение параметра при выполнении запроса.
Важно: Параметры запроса (имена и значения) будут закодированы в любом случае при подстановке в
@Итоговый URL внешнего запроса
, во избежание двойной кодировки на вкладке Query parameters стоит указывать параметры в незакодированном виде.
Value* — значение параметра.
Формат значения: допустимо использование
@Выражение
или
@Выражение с управляющей конструкцией
.
Кодировка символов не латинского алфавита: Допускаются пробелы, спецсимволы и не латинский символы, будет произведено кодирование значение параметра при выполнении запроса.
Пример: ​
image.png
Такой параметр будет включен в
@Итоговый URL внешнего запроса
в виде query=%D0%B0%D0%B1%D0%B2%D0%B3%D0%B4
Важно: Параметры запроса (имена и значения) будут закодированы в любом случае при подстановке в
@Итоговый URL внешнего запроса
, во избежание двойной кодировки на вкладке Query parameters стоит указывать параметры в незакодированном виде.
Кнопка крестика удаляет параметр (строку).
Add new field — кнопка добавления нового параметра.

Вкладка Data

На вкладке Data можно указать данные в JSON или XML, которые будут отправлены в теле запроса (BODY)
image.png
Поля вкладки:
Data type — формат отправляемых данных (BODY в Request):
Формат по умолчанию: JSON
Форматы:
JSON
XML
Важно: при выборе формата не забывать указывать соответствующий заголовок content-type: application/json или content-type: application/xml
Поле для добавления шаблона тела запроса (BODY), которое будет отправлено. Максимальная длина значения поля — 1000 символов.
Формат: для корректной работы с REST API должен соблюдаться формат JSON или XML в соответствии со спецификацией API назначения.
При Data type: JSON
произвольный текст.
При Data type: XML
синтаксис XML
регистр тегов имеет значение — <var></Var> будет считаться незакрытым тегом и запрос не будет выполнен
Важно: при копировании и вставке текста из сторонних систем в поле Data (например, тело запроса прислали в Slack), могут быть вставлены недопустимые символы кавычек, которые “сломают” тело запроса (JSON, XML) и сервер не сможет принять такой запрос. Визуально "неправильные” кавычки мало отличаются от “правильных”, но это все же другие символы. Примеры:
image.png
Рекомендуется использовать двойные кавычки, так как это стандарт JSON
Подстановка
@Контекстная переменная
,
@Выражение
и
@Выражение с управляющей конструкцией
:
В шаблон тела запроса можно указывать
@Контекстная переменная
в формате {{ var }},
@Выражение
и
@Выражение с управляющей конструкцией
, значения и результаты выполнения которых будут подставлены при выполнении запроса. Подробнее: .
Если
@Контекстная переменная
не удалось найти в
@Контекст Чата
, будет подставлено пустое значение.
Если при вычисление результата
@Выражение
или
@Выражение с управляющей конструкцией
происходит ошибка (например, при делении на 0), то
@Внешний запрос
не будет отправлен, и в
@Контекст Чата
будут записаны следующие
@Контекстная переменная
:
= "Template rendering (request options) error occurred."
= False
= 499
= ""
Примеры:
при Data type: JSON: ​
image.png
при Data type: XML: ​
image.png
Формат значений
@Контекстная переменная
:
при Data type: JSON:
значение текстовой переменной подставляется в шаблон есть без кавычек. Если в JSON необходимо отправить текстовое значение, его необходимо обрамить в кавычки - “{{ var }}”.
Например, если в
@Сценарий
в переменную {{ phone }} записана строка ‘89222203909’, то
- при выполнении запроса с Data { “phone_num”: {{ phone }} } будет отправлено тело { “phone_num”: 89222203909 }
- при выполнении запроса с Data { “phone_num”: {{ phone }} } будет отправлено тело { “phone_num”: 89222203909 }
при Data type: XML:
переменная должны быть записана в XML тег с помощью фигурных скобок {{ }} и с учетом регистра. Например: ​
image.png
Кодировка символов не латинского алфавита:
при Data type: JSON: кодирование произведено не будет
при использовании Data type: XML символы не латинского алфавита будут закодированы при отправке запроса, не зависимо от формата текста, вписанного в поле Data.
Результат запроса, Data type: XML, и в
записана кириллица ​
image.png

Вкладка Response

На вкладке Response настраивается парсинг ответов на
@Внешний запрос
в
@Пользовательские контекстные переменные
.
Парсинг выполняется в процессе обработки ответа на
@Внешний запрос
.
При парсинге ответа на запрос переменные, указанные в поле Value, не являются
@Контекстная переменная
, а являются обращениями к объектам body и headers — частям ответа на запрос — и их свойствам.
image.png
Поля и кнопки вкладки:
Data type — формат принимаемых данных (BODY из Response)
Формат по умолчанию: JSON
Форматы:
JSON
XML
TEXT
image.png
Табличная часть — массив пар Variable - Value для парсинга данных из тела и заголовков ответа на
@Внешний запрос
в
@Пользовательские контекстные переменные
для последующего использования их в
@Сценарий
. ​
image.png
Variable — название
@Пользовательские контекстные переменные
, в которую будет записано значение. Максимальная длина значения поля — 128 символов. Имя
@Пользовательские контекстные переменные
должно соответствовать
требованиям к названию пользовательских контекстных переменных
.
Value — ключ или Xpath путь к тегу xml из тела или заголовков ответа, значение которого будет записано в Variable. Максимальная длина значения поля — 1000 символов. По достижении максимального значения далее символы не вводятся в поле;
Возможен парсинг из тела и заголовков ответа:
body. — парсинг из тела запроса;
headers. — парсинг из заголовков запроса.
Формат значения: допустимо использование
@Выражение
или
@Выражение с управляющей конструкцией
.
Важно: обращение к ключу объекта, если его имя совпадает с именем происходит через квадратные скобки и кавычки.
Пример: {{ data["keys"] }}
Кнопка крестика: удаляет пару (строку)
Add new field — кнопка добавления новой пары Variable - Value.
Важно: реализовано ограничение на размер получаемого в ответ на
@Внешний запрос
тела: если размер тела превышает
@Лимит на размер получаемого тела в ответ на Внешний запрос
, то оно заменяется на пустое {}. )
Примеры парсинга тела и заголовков ответа в
@Контекстная переменная
:
Пример тела JSON и парсинга его в настройках слота
{
“par”: “value”,
“content”:
{
“par1”: “value1”,
},
“array”: [
{
“par2”: “value2”,
},
{
“par3”: “value3”,
}
]
}
image.png
Пример тела XML и парсинга его в настройках слота
image.png
image.png
Пример тела TEXT и парсинга его в настройках слота
Для типа TEXT возможен парсинг только всего тела ответа на
@Внешний запрос
. ​
image.png

Вкладка Test

На вкладке Test можно протестировать работу
@Внешний запрос
.
При создании нового
@Внешний запрос
до заполнения параметров
@Внешний запрос
поле cURL не заполнено.
image.png
При открытии существующего
@Внешний запрос
cURL генерируется автоматически и вкладка заполнена.
image.png
Поля и элементы вкладки:
Refresh cURL — кнопка, по нажатию которой обновляется запрос в поле cURL на вкладке Request в соответствии с настройками
@Внешний запрос
.
Test cURL — кнопка, по нажатию которой сформированный в поле cURL запрос отправляется во внешнюю систему.
Отображение статуса запроса — полученный после отправки запроса ответ отображается слева от кнопки перехода на вкладку Request. Цвет светофора зависит от типа полученного статуса:
Успешный статус: 200 OK — зеленый цвет; ​
image.png
Статусы с предупреждениями: от 201 до 399 — желтый цвет; ​
image.png
Ошибки: от 400 и выше — красный цвет. ​
image.png
Раздел Request — раздел содержит данные для тестирования
@Внешний запрос
.
cURL — сгенерированный из настроек
@Внешний запрос
cURL.
Update request from cURL — кнопка, по нажатию которой обновляются поля
@Внешний запрос
из cURL.
По нажатию кнопки появляется модальное окно подтверждения действия: ​
image.png
Чтобы подтвердить действие, необходимо нажать кнопку YES. При этом происходит валидация cURL:
при отсутствии Endpoint или некорректной структуре cURL будет выведена ошибка Invalid cURL и всплывающее уведомление Could’t parse cURL, request settings have not been updated. ​
image.png
при корректном cURL произойдет обновление настроек
@Внешний запрос
, а именно: поля на вкладках Headers, Query Parameters, Data
@Внешний запрос
очищаются, и в них подставляется новая информация из cURL, в т.ч. существующие данные могут быть заменены на пустые значения, если их нет в cURL. Например, если во
@Внешний запрос
есть заголовки, а в поле cURL заголовков нет, то при нажатии Update Request from cURL текущие заголовки из
@Внешний запрос
будут удалены, и на их месте ничего не появится.
Раздел Response — раздел содержит ответ внешней системы на запрос. ​
image.png
До нажатия кнопки Test cURL раздел недоступен для открытия (так как тестовый запрос не был отправлен и никакого ответа еще нет) ​
image.png
Подраздел Body — подраздел содержит тело ответа на запрос; ​
image.png
Подраздел Headers — подраздел содержит заголовки ответа на запрос; ​
image.png
Отображение статуса запроса; ​
image.png
Время от отправки запроса до получения ответа в миллисекундах; ​
image.png
Размер тела ответа в байтах. ​
image.png

Использование синтаксиса в External Request

Во
@Внешний запрос
допустимо использование
@Выражение
и
@Выражение с управляющей конструкцией
в полях Endpoint, Value на вкладке Headers и Query parameters, Data, поле Name на вкладке Response. Подробнее: .
ВАЖНО: при парсинге ответа все используемые в шаблоне переменные из поля Value ищутся в ответe (Response), а не в
@Контекст Чата
. Обращение к телу ответа происходит через переменную body. Обращение к заголовкам запроса происходит через переменную headers. Например, если ответом на ER является JSON объект: {“one”: {“two”: [0, 1, 2]}}, то в переменную resp_body будет сохранен весь JSON-объект (словарь) {“one”: {“two”: [1, 2, 3]}}, в переменную resp_one – будет сохранен объект (словарь) {“two”: [1, 2, 3]}, в переменную resp_two будет сохранено целое число 1. Переменная resp_invalid не будет сохранена, т.к. к телу ответа нужно обращаться через переменную body.
image.png

Удаление Внешнего запроса

Для удаления единичного
@Внешний запрос
необходимо:
Перейти в список
@Внешний запрос
.
Нажать на название
@Внешний запрос
или галочку в селекторе напротив.
Нажать на кнопку Delete request или Delete на панели справа; ​
image.png
image.png
Подтвердить действие в модальном окне, нажав кнопку DELETE REQUEST. ​
image.png
Если удаляемый
@Внешний запрос
используется в
@Агент
ах, при удалении появится предупреждение о том, что необходимо сначала удалить его из
@Сценарий
@Агент
а; ​
image.png

Клонирование Внешнего запроса

Для создания копии — клонирования единичного
@Внешний запрос
а необходимо:
Перейти в список
@Внешний запрос
ов.
Нажать на название
@Внешний запрос
а или галочку в селекторе напротив.
Нажать на кнопку Duplicate request или Delete на панели справа; ​
image.png
image.png
Подтвердить действие в модальном окне, нажав кнопку YES, I’M SURE.
image.png
По нажатию кнопки YES, I’M SURE будет создана копия
@Внешний запрос
а с названием <имя клонируемого запроса >CLONE. ​
image.png

Массовые действия с Внешними запросами

В
@Платформа
реализован множественный выбор
@Внешний запрос
ов и массовые действия, применимые к группе
@Внешний запрос
ов.

Множественный выбор

Множественный выбор
@Внешний запрос
ов можно осуществить следующими способами:
Проставить галочки в соответствующих необходимым
@Внешний запрос
ам селекторах вручную.
image.png
Проставить галочки в селекторе массового выбора — в этом случае будут выделены все
@Внешний запрос
ы на странице.
image.png
Выбрать одну из групп
@Внешний запрос
ов. По клику на стрелочке открывается выпадающий список;
image.png
В выпадающем списке необходимо выбрать группу
@Внешний запрос
ов на текущей странице:
image.png
All — все
@Внешний запрос
ы;
In use — только используемые в
@Агент
ах
@Внешний запрос
ы;
Not in use — только неиспользуемые
@Внешний запрос
ы.

Снятие выделения с Внешних запросов

Снятие выделения с выбранных
@Внешний запрос
ов можно осуществить следующими способами:
Удалить галочек из селекторов вручную.
Через селектор массового выбора.
image.png
Выбрать вариант Clear selection в выпадающем списке:
image.png

Массовое удаление Внешних запросов

Чтобы единовременно удалить несколько
@Внешний запрос
ов, необходимо:
Выбрать несколько
@Внешний запрос
ов, как описано в пункте ;
Нажать кнопку Delete requests;
image.png
Подтвердить действие в модальном окне, нажав кнопку DELETE REQUESTS;
image.png
Если в числе выбранных
@Внешний запрос
ов присутствуют
@Внешний запрос
ы, которые используются в
@Агент
ах, при удалении появится предупреждение о том, что данные
@Внешний запрос
ы не были удалены.
image.png
Остальные
@Внешний запрос
ы будут удалены.

Массовое клонирование Внешних запросов

Чтобы единовременно клонировать несколько
@Внешний запрос
ов, необходимо:
Выбрать несколько
@Внешний запрос
ов, как описано в пункте ;
Нажать кнопку Duplicate requests; ​
image.png
Подтвердить действие в модальном окне, нажав кнопку YES, I’M SURE в модальном окне. ​
image.png
По нажатию кнопки YES, I’M SURE будут созданы копии
@Внешний запрос
а с названием <название клонируемого запроса> CLONE.

Экспорт-импорт Внешних запросов при экспорте-импорте Агента

При экспорте
@Агент
а происходит также экспорт всех
@Внешний запрос
ов, содержащихся в его
@Обученная модель агента
.
@Агент
с включенными в него
@Внешний запрос
ами экспортируется в виде файла формата .cfg.
При импорте
@Агент
а происходит импорт используемых в нем
@Внешний запрос
ов, при этом:
Если в
@Компания
есть
@Внешний запрос
с идентичным названием и содержимым, дублирования
@Внешний запрос
а не происходит. В импортированном
@Агент
е будет использован уже существующий
@Внешний запрос
. В остальных случаях будет создан новый
@Внешний запрос
.
Если в компании есть
@Внешний запрос
с идентичным названием, но отличающимся содержимым, будет создан дубликат этого
@Внешний запрос
с автоматически сгенерированным именем: ​
image.png
Шаблон имени импортированного
@Внешний запрос
а: название_запроса [imported timestamp], где timestamp — время импортирования данного
@Агент
а: количество секунд с 1 января 1970 года.
Если в
@Компания
есть
@Внешний запрос
с отличающимся названием, но идентичным содержанием, то
@Внешний запрос
из конфигурационного файла
@Агент
а будет импортирован.
Если в
@Компания
нет такого
@Внешний запрос
а, то он будет импортирован и появится в списке
@Внешний запрос
ов.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.