Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Любая переменная можент быть создана или изменена ботом в любом сценарии. Значение переменной сценария будет потеряно после завершения того сценария, в котором она была создана. Значение переменной диалога будет доступно в любом сценарии в рамках текущего диалога. В новом диалоге эту переменную надо определять заново и ее значение может быть другим. Значение переменной пользователя сохраняется от диалога к диалогу. Если значение переменной пользователя поменяется, то это отразится на всех диалогах.

Ко всем переменным можно обратиться через указание названия переменной в обрамлении фигурными скобками {userSaid}:

Code Block
breakoutModewide
сообщениеПользователю.сШаблоном("Текст сообщения: {userSaid} - пример обращения к пользовательской переменной в сценарии") +

Детальнее об определении переменных смотрите в разделе Установка переменных

...

Переменная attachments[]  хранит не одно значение, а список значений, при записи новых значений в данную переменная они будут дописаны в конец списка.

Code Block
breakoutModewide
запроситьФайл("Приложите файл").сохранитьРезультат("file")+    -   полученные данные перезапишут значение переменной
запроситьФайл("Приложите файл").сохранитьРезультат("files[]")+ -   полученные данные будут дописаны в список

...

Порядок выполнения шагов сценария 

AnchororderorderВсе шаги сценария выполняются последовательно с первой до последней строки. Если вы хотите временно исключить одну из строк из процесса выполнения сценария - установите в начале данной строки символ //

...

Шаг установки создания и установки значения переменной в сценариисценария. Если переменная существовала к моменту вызова шага, то ее старое значение будет затерто новым. При указании значения допускается использование переменных. Созданная таким шагом переменная будет доступна только в рамках текущего сценария.

Code Block
breakoutModewide
установитьПеременную("date", "1 января 1970")+
установитьПеременную("message", "Сегодня на дворе {new_date}")+

...

Созданная таким шагом переменная будет доступна только в рамках текущего сценария. Для чтения переменной необходимо вызвать ее по наименованию в фигурных скобках:

Code Block
breakoutModewide
сообщениеПользователю.сШаблоном("Сообщение - {message}") +

...

установитьПеременнуюВДиалог(*args)

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

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

...

breakoutModewide

...

Для указания переменной диалога необходимо указать следующие поля:

  • ключ - название переменной, обязательное поле

  • значение - значение переменной, может быть заполнено или изменено позднее

  • название - название переменной для ее отображения в боковой панели оператора и истории диалога

  • показыватьОператору - при установке поля в true переменная и ее значение отображаются в боковой панели оператора и истории чата

  • редактируемое - при установке поля в true оператор имеет возможность изменять значение переменной непосредственно в боковой панели

  • обязательное - при установке поля в true сервис AutoFAQ будет требовать заполнение переменной оператором перед закрытием диалога

  • тип - тип переменной, список возможных типов см ниже

  • множественныйВыбор - при установке поля в true для типа переменной “Выпадающий список“ устанавливается возможность множественного выбора элементов

  • варианты - список возможных вариантов для переменной типа "Выпадающий список" в сеаризованном формате ключ-значение. Поддерживается многоуровневый список вариантов, а так же передача списка вариантов через переменную.

Code Block
breakoutModewide
установитьПеременнуюВДиалог(
    ключ = "priority",                  
    значение = "v1", 
 - является ли обязательнымназвание для= заполнения"Выберите приприоритет закрытиизадачи", диалога, true/false
    множественныйВыборредактируемое = true,
    показыватьОператору = true,
  - можно лиобязательное выбрать= несколькоfalse,
вариантов, применимо только для выпадающегомножественныйВыбор списка,= true/false,
    тип = "Выпадающий список",          - тип задаваемой переменной, возможные значения в таблице ниже
    варианты = "{\"v1\": \"High\", \"v2\": \"Medium\"}" - список возможных значений, применимо только для
выпадающего списка, можно задать как с помощью другой переменной, так и напрямую
)+

Список возможных типов с примерами использования:

Тип

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

Текст

Code Block
установитьПеременнуюВДиалог(
	ключ = "NonEditabletext",
    значение = "Нередактируемый текст",
    название = "Примечание",
    показыватьОператору = true,
    редактируемое = false,
    обязательное = false,
    тип = "Текст"
)
Code Block
установитьПеременнуюВДиалог(
    ключ = "textField",
    значение = "г.Москва Ул.Тверская",
    название = "Адрес",
    показыватьОператору = true,
    редактируемое = true,
    обязательное = true,
    тип = "Текст"
)

Число

Code Block
установитьПеременнуюВДиалог(
	ключ = "number",
    значение = "",
    название = "Возраст",
    показыватьОператору = true,
    редактируемое = true,
    обязательное = true,
    тип = "Число"
)

Выпадающий список

Code Block
установитьПеременную("priority", "{\"v1\": \"Blocker\", \"v2\": \"Critical\", \"v3\": \"Major\", \"v4\": \"Minor\"}")+
установитьПеременнуюВДиалог(
    ключ = "priority",
    значение = "[\"v1\", \"v2\"]",
    название = "Выберите критичность",
    редактируемое = true,
    показыватьОператору = true,
    обязательное = true,
    множественныйВыбор = true,
    тип = "Выпадающий список",
    варианты = "{priority}"
)
Code Block
установитьПеременнуюВДиалог(
    ключ = "severity",
    значение = "",
    название = "Выберите важность",
    редактируемое = true,
    показыватьОператору = true,
    обязательное = true,
    тип = "Выпадающий список",
    варианты = "{\"v1\": \"High\", \"v2\": \"Medium\", \"v3\": \"Low\"}"
)

Переключатель

Code Block
установитьПеременнуюВДиалог(
	ключ = "switcher",
    значение = "true",
    название = "Активный?",
    показыватьОператору = true,
    редактируемое = true,
    обязательное = true,
    тип = "Переключатель"
)

Для чтения переменной необходимо вызвать ее по наименованию в фигурных скобках:

Code Block
breakoutModewide
сообщениеПользователю.сШаблоном("Указанный адрес - {textField}") +
если("{priority} == 

...

v2").то(...) +

...

установитьПеременнуюПользователю(*переменная, *значение)

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

Можно установить значение одной из фиксированных встроенных переменных пользователя или произвольной переменной в составе payload. Сохранение данных пользователя позволит передавать данные между разными диалогами.

Code Block
// установка фиксированнойзадание нового значения встроенной переменной
установитьПеременнуюПользователю("userEmail", "vasya@mail.ru")+

// установкасоздание произвольной переменной изпользователя в payload пользователя
установитьПеременнуюПользователю("userPayload.lastLoginTS", "{nowTimeStamp}")+

Для чтения переменной необходимо вызвать ее по наименованию в фигурных скобках:

Code Block
breakoutModewide
сообщениеПользователю.сШаблоном("Адрес пользователя - {userEmail}") +
комментарий("Дата последнего обращения - {userPayload.lastLoginTS}") +

...

Шаги переписки с пользователями 

...