Сценарии
Общее описание
Сценарии позволяют описывать диалоги системы autoFAQ с пользователями. Диалог может включать в себя переписку с пользователем, обращение к данным во внешних системах и обогащение ответов.
Система позволяет создавать сценарии произвольной сложности и прикреплять их напрямую к документам в базах знаний или событиям в работе над диалогами. В случае когда база знаний по запросу пользователя определяет документ, содержащий вместо ответа сценарий, бот начнет вести с пользователем описанный в сценарии диалог.
Описание сценариев в системе ведется при помощи языка DSL autoFAQ. Тело сценария состоит из последовательных операций. Каждая операция располагается в отдельной строке, для связи со следующей операцией в конце строки требуется указание символа "+". Некоторые операции могут содержать 1 или несколько опциональных модификаторов.
Полный справочник шагов описан в разделе Справочник шагов сценария
Примеры готовых сценариев доступны в разделе Примеры сценариев
Переменные
Встроенные переменные
Для работы с данными в сценариях доступны следующие встроенные переменные:
{platformInMessageQuery} - текст первоначального запроса пользователя, по которому был создан диалог с AutoFAQ
{serviceId} - id сервиса
Данные пользователя
{userFullName} - имя пользователя
{userLogin} - логин пользователя
{userEmail} - электронная почта пользователя
{userPhone} - номер телефона пользователя
{userId} - ID пользователя
{userPayload.*} - хранилище дополнительных данных о пользователе
Данные пользовательского канала, через который пришел текущий запрос
{channelId} - идентификатор канала
{channelType} - тип канала (Telegram, WhatsApp, Widget)
Данные текущего диалога с пользователем
{conversation} - объект диалог с данными о пользователе, списокм событий и реплик пользователя, бота и операторов
{conversationId} - идентификатор текущего диалога
{externalFiles} - список файлов переданных пользователю или полученных от него в рамках текущего диалога
Встроенные переменные для работы с API вызовами
{http_code} - код статуса последнего API запроса
Встроенные переменные можно не объявлять, их значение доступно в любом сценарии. Данные пользователя могут отсутствовать, если в сервисе не настроена Идентификация или иной метод получения данных о пользователях.
Пользовательские переменные
В сценариях возможно создавать и использовать для хранения данных пользовательские переменные трех типов:
переменные сценария
переменные диалога
переменные пользователя
Любая переменная можент быть создана или изменена ботом в любом сценарии. Значение переменной сценария будет потеряно после завершения того сценария, в котором она была создана. Значение переменной диалога будет доступно в любом сценарии в рамках текущего диалога. В новом диалоге эту переменную надо определять заново и ее значение может быть другим. Значение переменной пользователя сохраняется от диалога к диалогу. Если значение переменной пользователя поменяется, то это отразится на всех диалогах.
Ко всем переменным можно обратиться через указание названия переменной в обрамлении фигурными скобками {userSaid}
:
сообщениеПользователю.сШаблоном("Текст сообщения: {userSaid}") +
Детальнее об определении переменных смотрите в разделе Установка переменных
Переменные могут хранить не одно, а сразу несколько значений. Переменная, объявленная как attachments[]
хранит не одно значение, а список значений, при записи новых значений в данную переменная они будут дописаны в конец списка.
запроситьФайл("Приложите файл").сохранитьРезультат("files[]") +
Справочник шагов сценария
Справочник возможных шагов сценария доступен в разделе Справочник шагов сценария
Порядок выполнения шагов сценария
Все шаги сценария выполняются последовательно с первой до последней строки. Если вы хотите временно исключить одну из строк из процесса выполнения сценария - установите в начале данной строки символ //
В конце сценария обязательно размещение одного из шагов завершения сценария:
Если в условии сценария применен один из шагов завершения, то сценарий может завершить работу досрочно:
Проверка синтаксиса сценария
На странице документа базы знаний есть кнопка “Проверить сценарий”, которая запускает синтаксическую проверку указанного сценария.
Если в сценарии найдены ошибки, тогда открывается модальное окно с перечислением найденных ошибок. Синтаксический анализатор имеет ряд ограничений при описании найденных ошибок - не всегда имеется возможность указать номер строки, не все типы ошибок снабжены русским описанием.
Примеры готовых сценариев
Примеры готовых сценариев приведены в разделе Примеры сценариев