General applications

Операторы

if

Оператор if управляет условным ветвлением.

{ "if": { "expression": "${myVar} == '1'", "then": [], "else": [] } }

switch

Операторы switch и case помогают управлять сложными условными операциями и операциями ветвления.

{ "switch": { "variable": "${getIvrDigit}", "case": { "1": [], "2": [], "3": [], "default": [] } } }

while

Логика работы такая же, как и в языках программирования. Первый раз аппликейшены в блоке [do] выполняются без проверки условия. Последующие разы выполняются только если условие истинно.

 { "while": { "condition": "${myVar} < 10", "maxSteps": "1000", "do": [ { "log": "log is ${myVar}" }, { "js": { "data": "+${myVar} + 1", "setVar": "myVar" } } ] } }

condition - условие, написанное с учетом синтаксиса js;

maxSteps -глобальный параметр отвечает за максимальное количество шагов в непосредственно блоке (сделано для того чтобы если где-то дальше например в конце схемы цикл будет снова вызван из goto то схема не зациклилась) если не указывать по умолчанию будет 1000;

do – массив аппликейшенов, которые будут выполняться в цикле.

Триггеры

disconnected

Выполняет набор приложений после завершение основного скрипта. Объявляется единожды вначале скрипта.

commands

Commands влиять пока только на все recvMessage в схеме, если будет выполнена команда, тогда recvMessage таймаут обновляется.

Функции

function

Объединить набор приложений в именную функцию. Объявляется вначале скрипта.

execute

Выполнение предварительно объявленной функции по имени.

Переменные

set

Назначение переменных на канал.

export

Экспорт переменных на сторону оператора, а также в статистику.

unSet

Разустанавливает переменную.

Служебные приложения

calendar

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

cache

Приложение позволяет работать с данными в памяти либо Redis сервере.

httpRequest

Выполнение HTTP REST запроса и обработка результата (get JSON)

js

Выполнение произвольного JavaScript кода с возвращением результата в переменную

joinAgent

Постановка абонента в личную очередь оператора. Работает только для звонков.

processing.form.id -  идентификатор формы. Если пусто, или 0 - без формы.

joinAgentToTask

Возможность из схемы оператору назначить таску (join task новая очередь task)

Работает для всех типов схем.

  • agent.id or agent.extension - обязательные поля, на какого оператора нужно назначить задачу;

  • communication.description - не обязательно, описание типа связи (см. Абоненты);

  • communication.destination - не обязательно, номер или любой текст типа связи (см. Абоненты);

  • communication.type.id - ид типа связи (Swagger UI здесь список);

  • processing - настройки постобработки:

    • enabled - включена или выключена постобработка;

    • form.id - ид формы (не обязательно);

    • sec - время в секундах постобработки в секундах;

    • renewal_sec - время возможности добавить постобработку;

  • queue_name - название очереди

  • timeout - время в секундах сколько ожидать ответа оператора (по умолчанию включено автоподнятие, поэтому этот параметр нужен больше для случаев, когда оператор не в Workspace).

math

Приложение для работы с математическими функциями

fn

  • random: returns a random number from array

  • min and max: can be used to find the lowest or highest value in a list of arguments

  • round: rounds a number to the nearest integer

  • ceil: rounds a number up to the nearest integer

  • floor: rounds a number down to the nearest integer

JavaScript Math

string

Приложение для работы со строкой.

fn

  • length: returns the length of a string

  • indexOf and lastIndexOf: returns the index of (the position of) the first or last occurrence of a specified text in a string

  • search: searches a string for a specified value and returns the position of the match

  • slice: extracts a part of a string and returns the extracted part in a new string

  • substring: is similar to slice. The difference is that substring cannot accept negative indexes.

  • substr: is similar to slice. The difference is that the second parameter specifies the length of the extracted part.

  • replace: replaces a specified value with another value in a string

  • toUpperCase or toLowerCase: A string is converted to upper case or to lower case

  • charAt: returns the character at a specified index (position) in a string

  • charCodeAt: returns the unicode of the character at a specified index in a string

  • split: A string can be converted to an array with the split function

  • reverse: Reverse the provided string

  • base64: base64 encoder / decoder

  • MD5: Computes a digest from a string using MD5 algorithm

  • SHA-256: Computes a digest from a string using SHA-256 algorithm

  • SHA-512: Computes a digest from a string using SHA-512 algorithm

JavaScript String

markIVR

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

topicExtraction

Для определение тематики полученного сообщения: сообщение в чате, speech-to-text на IVR

где,

limit - не обязательно, по умолчанию 4, это последние сообщения из чата или из распознавания в звонке

definedTopic - в какую переменную записать ответ (topic)

score - в какую переменную записать сonfidence

messages - используется только для всех типов кроме chat / call

userInfo

Приложение позволяет получить значение из объекта пользователя по номеру телефона

setGrantee

Передать права на канал пользователю с идентификатором указанным в id 

schema

Выполнить внешнюю схему по идентификатору

softSleep

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

sql

Приложение доступно исключительно для выделенных либо собственных серверов Webitel, позволяет выполнить запрос в базу данных и вернуть результат в переменную

list

Проверка на наличие абонента в списке с выполнением действий

listAdd

Добавить абонента в список

log

Вывод дополнительной информации в лог файл приложений

goto

Перейти к именной метке

monoPay

Перейти к именной метке

Параметры приложений

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

tag

Установить именную метку в скрипте

async

Выполнение приложения без блокировки

break

Прерывает выполнение скрипта

limit

Позволяет прерывать цикл после прохождения количества указанного в атрибуте max. Выход осуществляется в именную метку, указанную в атрибуте failover.