Этот блок позволяет роботу во время диалога с пользователем взаимодействовать с внешней или внутренней CRM-системой для обмена информации о клиенте посредством API. Робот может взаимодействовать с CRM-системой как для поиска и получения уже имеющейся информации о клиенте (место проживания, адрес места жительства, профессия), так и для сохранения новой информации о клиенте (например, наличие домашних животных, увлечения, интересы и т.д.), полученной во время диалога. При помощи данного блока робот также может использовать любые сетевые сервисы, которые доступны посредством API (например, калькулятор, конвертер величин, прогноз погоды, программа передач и др.).


Пример:

От клиента поступает входящий вызов. Робот идентифицирует номер телефона и отвечает на звонок. С помощью блока Запрос к серверу робот обращается в корпоративную CRM-систему, в которой хранятся клиентские данные, полная информация по всему предлагаемому ассортименту товаров, а также информация по статусам всех заказов. По номеру телефона робот получает информацию о клиенте и видит, что у клиента есть активный заказ. Робот обращается к клиенту по имени и до того, как клиент озвучивает цель звонка, интересуется, не хочет ли клиент узнать статус своего заказа. После утвердительного ответа робот предоставляет информацию о текущем статусе заказа.

Для лучшего понимания принципов работы блока Запрос к серверу рекомендуется прочитать информацию о синтаксисе формата JSON.

Блок

Свойства блока

ОписаниеСкриншот

1. ID – уникальный идентификатор блока.

2. Тип блока – отображает тип выбранного блока. Позволяет заменить тип блока на любой другой.

3. Маркер блока – произвольный текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения).

4. Сообщение с просьбой подождать – текст с просьбой подождать, который будет воспроизведен роботом. Данный текст можно использовать, чтобы заполнить паузу, во время которой система выполняет обращение к API стороннего сервиса или CRM-системы.

5. Отправить немедленно – позволяет отправить сообщения до полного формирования очереди.

6. Задержка перед отправкой сообщения – период времени, по истечению которого будет произведена отправка сообщения после перехода в этот блок. 

Задержка срабатывает лишь после получения ответа от клиента. Ответ клиента фиксируется в блоках «Вопрос» и «Пауза», поэтому задержка срабатотает лишь после этих блоков в сценарии. Все задержки ДО получения любого ответа клиента будут игнорироваться.

7. Добавить запись (Гибридный синтез) – позволяет загрузить с компьютера аудиозапись для озвучки данного блока с помощью гибридного синтеза речи.

8. Как часто говорить еще подождать – период времени, по окончании которого  робот будет воспроизводить повторное сообщение (см. пункт №4) до тех пор, пока не будет получен ответ от сервера.

9. Сообщение с просьбой подождать еще немного – текст с просьбой подождать, который будет воспроизведен роботом до получения ответа от стороннего сервиса или CRM-системы.

10. Параметр для уведомления – URL-адрес, на который осуществляется переход после выполнения запроса. Данный параметр является необязательным для использования. Вы можете использовать его для уведомления о выполнении запроса (например, отображать страницу с текстом стандартного сообщения или изображением).

11. Тип авторизации – тип авторизации пользователя для обеспечения доступа к данным на сервере. Возможные значения данного параметра описываются ниже.

12. Выберите тип запроса – тип запроса к серверу. Возможные значения данного параметра описываются ниже.

13. URL – адрес страницы, с которой работает робот. Содержит параметры запроса и переменные.


В строке адреса страницы можно указать переменную, через которую можно передавать информацию в сервис, к которому обращается робот.

14. Cookie – при отправке запросов для некоторых методов требуется передавать cookie. Требуемое значение cookie содержится в ответе при первом обращении к методу.

15. Добавить элемент – при отправке запросов для некоторых методов требуется передавать заголовки. Требуемые значения заголовков содержатся в ответе при первом обращении к методу.

16. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.


Для корректной работы сценария необходимо учитывать тот факт, что блок типа Запрос к серверу не должен стоять в сценарии последним, из него обязательно должна выходить стрелка хотя бы в пустой блок. 


Типы запросов

ТипОписаниеСкриншот
GET

Используется для получения данных от сервера.

Используя этот тип запроса, можно получать данные о заказе, товаре, пользователе и т.д.

1. URL – адрес страницы, с которой будет работать робот.

2. Cookie – значение cookie (если требуется для работы с методом стороннего сервиса).

3. Добавить элемент – значение заголовка (если требуется для работы с методом стороннего сервиса).

4. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.


Если вы используете в сценарии переменные, которые принимают значения true или false, в ответе сервера их значения будут отображаться так:

  • 1 - true
  • "" - false

POST

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

Используя этот тип запроса, можно сохранять данные о заказе, создавать товар, обновлять данные пользователя и т.д.

1. URL – адрес страницы, с которой будет работать робот.

2. Cookie значение cookie (если требуется для работы с методом стороннего сервиса).

3. Добавить элемент – значение заголовка (если требуется для работы с методом стороннего сервиса).

4. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.

5. Выберите тип содержимого – тип передаваемого содержимого. Возможные значения:

  • JSON - данные передаются в формате JSON
  • Form - данные передаются в текстовой форме

6. Добавить элемент  позволяет установить порядок указания ключа и значения.

Например: если нужно отправлять данные в теле запроса, то ключ first_name нужно записать в левое поле, а его значение Владимир следует записать в правое поле.

{
"first_name" : "Владимир"
}

7. Название переменной с вложением – позволяет отправить в запросе вложенный файл.


Если вы используете в сценарии переменные, которые принимают значения true или false, в ответе сервера их значения будут отображаться так:

  • 1 - true
  • "" - false

Delete

Применяется для удаления данных на сервере. В запросе требуется указать ID изменяемого ресурса. 

Используя этот тип запроса, можно удалять данные о заказе, товаре и т.д.

1. URL – адрес страницы, с которой будет работать робот.

2. Cookie – значение cookie (если требуется для работы с методом стороннего сервиса).

3. Добавить элемент – значение заголовка (если требуется для работы с методом стороннего сервиса).

4. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.

Put

Применяется для отправки данных на сервер. В запросе требуется указать ID изменяемого ресурса. 

Используя этот тип запроса, можно сохранять данные о заказе, создавать товар, обновлять данные пользователя и т.д.

1. URL – адрес страницы, с которой будет работать робот.

2. Cookie – значение cookie (если требуется для работы с методом стороннего сервиса).

3. Добавить элемент – значение заголовка (если требуется для работы с методом стороннего сервиса).

4. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.

5. Выберите тип содержимого – тип передаваемого содержимого. Возможные значения:

  • JSON - данные передаются в формате JSON
  • Form - данные передаются в текстовой форме

6. Добавить элемент – позволяет установить порядок указания ключа и значения.

Например: если нужно отправлять данные в теле запроса, то ключ first_name нужно записать в левое поле, а его значение Владимир следует записать в правое поле.

{
"first_name" : "Владимир"
}

7. Название переменной с вложением – позволяет отправить в запросе вложенный файл.


Типы авторизации

ТипОписаниеСкриншот
Отсутствует

Этот тип используется, если для работы со страницей не требуется проходить авторизацию (например, если сервис находится в защищенном контуре).

1. Выберите тип запроса – один из типов запроса описанных выше.

2. URL – адрес страницы, с которой будет работать робот.

3. Cookie – значение cookie (если требуется для работы с методом стороннего сервиса).

4. Добавить элемент – значение заголовка (если требуется для работы с методом стороннего сервиса).

5. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.

Логин/Пароль

Данный тип используется, если для работы со страницей требуется выполнить авторизацию по логину и паролю.

1. Имя пользователя – логин клиента.

2. Пароль – пароль клиента.

3. Выберите тип запроса – один из типов запроса описанных выше.

4. URL – адрес страницы, с которой будет работать робот.

5. Cookie – значение cookie (если требуется для работы с методом стороннего сервиса).

6. Добавить элемент – значение заголовка (если требуется для работы с методом стороннего сервиса).

7. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.

Заголовок

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

В этом случае требуется:

1. Тип авторизации – схема авторизации, которую робот будет использовать для работы со страницей.

2. Значение ключа – имя ключа.

3. Выберите тип запроса – один из типов запроса описанных выше.

4. URL – адрес страницы, с которой будет работать робот.

Пример: Если в заголовке токен передается в ключе Authorization в следующем виде:

Authorization: Bearer t490da279fd42889f56

то в поле Тип авторизации нужно указать Bearer, а в поле Значение Ключа, нужно указать t490da279fd42889f56

5. Cookie – значение cookie (если требуется для работы с методом стороннего сервиса).

6. Добавить элемент – значение заголовка (если требуется для работы с методом стороннего сервиса).

7. Принудительный асинхронный режим – возможность бота продолжать диалог во время того, как он отсылает запрос к серверу.

Подробнее о схемах можно ознакомиться в следующей статье.



Стрелка

Свойства стрелки

ОписаниеСкриншот

1. Текст стрелки – вспомогательный текст, который позволяет создателю сценария ориентироваться в связях.

2. Тип – тип принятия решения. Переход к следующему блоку скрипта осуществляется при достижении определенного результата запроса (успешен или не успешен) или по умолчанию.


Типы стрелок

ТипОписаниеСкриншот
По умолчаниюДанный тип используется для перехода по ветке, в случае, если условия во всех остальных стрелках данного блока не будут соблюдены.

РезультатУспешно

Переход по ветке будет произведен, если код ответа от сервера совпадет с указанным в свойствах стрелки, и если указанные условия были выполнены.

Результат ответа от сервера будет сохранен в переменную result.

1. Успешность запроса – определяет успешность запроса.

2. Загрузить файл – возможность импорта условий и переменных из файла.

3. Код ответа – код, который система будет ожидать после выполнения запроса.

Подробнее о кодах состояния можно прочесть здесь.

4. Условия – набор условий, по которым принимается решение.

5. Добавить элемент – создание переменной, в которую будет записано значение из ответа от сервера.

Подробнее узнать о получении данных из ответа от сервера можно в этой статье.

Не успешноПереход по ветке будет произведен, если ответ от сервера получить не удалось.