Справочник шагов сценария
Работа с переменными
установитьПеременную
Шаг установки создания и установки значения переменной сценария. Если переменная существовала к моменту вызова шага, то ее старое значение будет затерто новым.
У шага два параметра. Первым параметром указывается название переменной, вторым параметром - ее значение.
Название переменной следует указывать без использования фигурных скобок. Значение может быть только текстом. При указании значения допускается использование других переменных.
установитьПеременную("date", "1 января 1970") +
установитьПеременную("message", "Сегодня на дворе {date}") +Созданная таким шагом переменная будет доступна только в рамках текущего сценария. Для чтения переменной необходимо вызвать ее по наименованию в фигурных скобках:
сообщениеПользователю.сШаблоном("Сообщение - {message}") +установитьПеременнуюВДиалог
Операция установки переменной для текущего диалога. При указании значения допускается использование переменных. Переменная диалога сохраняет свое значение на протяжении всего диалога, может быть создана и прочтена в рамках любого сценария. В новом диалоге переменная по-умолчанию будет отсутствовать. Значение одной переменной в разных диалогах может быть разным.
Может быть использована для хранения информации связанной с контекстом диалога - номер заявки, тематика и статус обращения и т.п. Для хранения контекста пользователя в рамках всех диалогов необходимо воспользоваться созданием переменной пользователя.
Для указания переменной диалога необходимо указать следующие поля:
ключ- название переменной, обязательное полезначение- значение переменной, может быть заполнено или изменено позднееназвание- название переменной для ее отображения в боковой панели оператора и истории диалогапоказыватьОператору- при установке поля вtrueпеременная и ее значение отображаются в боковой панели оператора и истории чатаредактируемое- при установке поля вtrueоператор имеет возможность изменять значение переменной непосредственно в боковой панелиобязательное- при установке поля вtrueсервис AutoFAQ будет требовать заполнение переменной оператором перед закрытием диалогатип- тип переменной, список возможных типов см нижемножественныйВыбор- при установке поля вtrueдля типа переменной “Выпадающий список“ устанавливается возможность множественного выбора элементовварианты- список возможных вариантов для переменной типа "Выпадающий список" в сеаризованном формате ключ-значение. Поддерживается многоуровневый список вариантов, а так же передача списка вариантов через переменную.
установитьПеременнуюВДиалог(
ключ = "priority",
значение = "v1",
название = "Выберите приоритет задачи",
редактируемое = true,
показыватьОператору = true,
обязательное = false,
множественныйВыбор = false,
тип = "Выпадающий список",
варианты = "{\"v1\": \"High\", \"v2\": \"Medium\", \"v3\": \"Low\"}"
)+
Список возможных типов переменных с примерами использования:
Текст
установитьПеременнуюВДиалог(
ключ = "NonEditabletext",
значение = "Нередактируемый текст",
название = "Примечание",
показыватьОператору = true,
редактируемое = false,
обязательное = false,
тип = "Текст"
) +установитьПеременнуюВДиалог(
ключ = "textField",
значение = "г.Москва Ул.Тверская",
название = "Адрес",
показыватьОператору = true,
редактируемое = true,
обязательное = true,
тип = "Текст"
) +Число
установитьПеременнуюВДиалог(
ключ = "number",
значение = "",
название = "Возраст",
показыватьОператору = true,
редактируемое = true,
обязательное = true,
тип = "Число"
) +Выпадающий список с вариантами
установитьПеременную("priority", "{\"v1\": \"Blocker\", \"v2\": \"Critical\", \"v3\": \"Major\", \"v4\": \"Minor\"}")+
установитьПеременнуюВДиалог(
ключ = "priority",
значение = "[\"v1\", \"v2\"]",
название = "Выберите критичность",
редактируемое = true,
показыватьОператору = true,
обязательное = true,
множественныйВыбор = true,
тип = "Выпадающий список",
варианты = "{priority}"
) +Переключатель
установитьПеременнуюВДиалог(
ключ = "switcher",
значение = "true",
название = "Активный?",
показыватьОператору = true,
редактируемое = true,
обязательное = true,
тип = "Переключатель"
)
Для чтения переменной необходимо вызвать ее по наименованию в фигурных скобках:
сообщениеПользователю("Указанный адрес - {textField}") +
если("{priority} == v2").то(...) +
установитьПеременнуюПользователю
Шаг установки переменной пользователя. Переменная пользователя сохраняет свое значение до тех пор пока не будет очищена. Может быть создана и наполнена в любом сценарии. После создания переменная будет доступна в любом сценарии любого диалога. При указании значения допускается использование переменных.
Можно установить значение одной из встроенных переменных пользователя или произвольной переменной в составе payload. Сохранение данных пользователя позволит передавать данные между разными диалогами.
// задание нового значения встроенной переменной
установитьПеременнуюПользователю("userEmail", "vasya@mail.ru")+
// создание произвольной переменной пользователя в payload пользователя
установитьПеременнуюПользователю("userPayload.lastLoginTS", "{nowTimeStamp}")+
Для чтения переменной необходимо вызвать ее по наименованию в фигурных скобках:
сообщениеПользователю.сШаблоном("Адрес пользователя - {userEmail}") +
комментарий("Дата последнего обращения - {userPayload.lastLoginTS}") +
изменитьПеременнуюСервиса
Шаг изменения значения переменной сервиса. Шаг позволяет изменить значение созданной переменной сервиса, создавать новые переменные шаг не может. Для создания переменных необходимо обратиться к администратору сервиса.
Пример:
изменитьПеременнуюСервиса("token", "{new_token_value}") +При попытке изменить значение несуществующей переменной шаг ничего не сделает и сценарий продолжит выполняться далее по шагам.
Подробнее ознакомиться с переменными сервиса можно в разделе https://deephack.atlassian.net/wiki/spaces/AKB/pages/3352657922
получитьПеременнуюСервиса
Шаг получения текущего значения переменной сервиса. Шаг требует указать два параметра - название переменной сервиса откуда надо получить значение и название переменной сценарий, куда надо положить полученное значение.
получитьПеременнуюСервиса("token", "new_api_token") +Если переменной сервиса с указанным названием не существует, то шаг не выполнит действий, а сценарий продолжит выполняться далее.
Подробнее ознакомиться с переменными сервиса можно в разделе https://deephack.atlassian.net/wiki/spaces/AKB/pages/3352657922
Переписка с пользователями
сообщениеПользователю
Шаг отправки текстового сообщения пользователю без ожидания ответной реакции. В качестве аргумента шаг принимает текст сообщения или переменную, которая содержит такой текст. Сообщения без текста не будут отправлены, кроме случаев отправки файлов (об этом ниже).
Текст сообщения может содержать HTML теги для форматирования сообщения. Система самостоятельно проверит форматирование сообщения на соответствие требованиям канала.