...
Expand |
---|
title | Внесение оператором Email в контактные данные клиента |
---|
|
Code Block |
---|
// Пример сценария опроса оператора с заполнением метаданных пользователя
// Сценарий предназначен для подключения в Интеграцию на событие "Нажата кнопка оператора"
установитьПеременную("_email", "{userPayload.Email}")+
// Собираем поля для формы оператора
// Добавляем текстовое поле для отображения информации
добавитьПолеВФормуОператора(
форма = "Обновление данных пользователя",
переменная = "formName",
название = "",
значение = "Укажите новые значение или сотрите старые",
тип = "Нередактируемый текст",
описание = "",
обязательное = false
) +
// Добавляем поля пользователя
добавитьПолеВФормуОператора(
форма = "Обновление данных пользователя",
переменная = "_email",
название = "Email",
тип = "Однострочный редактируемый текст",
описание = "Email пользователя",
обязательное = true
) +
// показываем форму оператору, пока оператор не закроет форму сценарий ждет
// если оператор нажмет в форме Отмена - сценарий остановится
показатьФормуОператору(имя = "Обновление данных пользователя") +
комментарий("Обовлены данные пользователя")+
установитьПеременнуюПользователю("userPayload.Email", "{_email}")+
завершить |
|
...
Сценарии для модуля Приветствие
Expand |
---|
title | Приветствие с сообщением об отсутствии поддержки в зависимости от времени суток |
---|
|
Реализован для Московского времени, где +3 GMT, переменная HourOffset Code Block |
---|
установитьПеременную("HourOffset", "3")+
установитьПеременную("startHour", "9")+
установитьПеременную("endHour", "22")+
выполнитьJs("""
var serverTime = new Date();
var serverTimeStamp = serverTime.getTime();
var timeZoneOffset = serverTime.getTimezoneOffset();
var currentTimeStamp = serverTimeStamp + (parseInt(HourOffset) * 3600000) - (timeZoneOffset * 60000);
var currentDate = new Date(currentTimeStamp);
var currentHour = parseInt(currentDate.getHours());
var start = parseInt(startHour);
var stop = parseInt(endHour);
if (currentHour >= start && currentHour < stop) {
var workTime = 1;
} else {
var workTime = 0;
}
var exit = {'workTime':workTime};
exit;
""") +
если("{platformInMessageQuery} == /start").и("{workTime} == 0").то(
комментарий("Это присоединение к боту в нерабочее время")+
сообщениеПользователю.сШаблоном("Сейчас служба поддержки не работает. Просим писать нам с {startHour}:00 по {endHour}:00 МСК.<br>Unfortunately you contacted us outside of our support service hours. We will reply to you in the morning. Thank you for waiting.")+
завершитьИЗакрытьДиалог()
)+
если("{platformInMessageQuery} == /start").и("{workTime} == 1").то(
комментарий("Это присоединение к боту в рабочее время")+
сообщениеПользователю.сШаблоном("Чем могу вам помочь?<br>How can I help you?")+
завершитьИЗакрытьДиалог()
)+
запросВБазыЗнаний("{platformInMessageQuery}", "botKnows")+
если("{botKnows} == true").то(
комментарий("Бот знает ответ, продолжаем не взирая на график.")+
завершитьСНовымЗапросом("{platformInMessageQuery}")
)+
если("{workTime} == 0").то(
комментарий("Мой график работы с {startHour} по {endHour} по МСК. Сейчас {currentHour} часов - я не работаю.")+
сообщениеПользователю.сШаблоном("Сейчас служба поддержки не работает. Просим писать нам с {startHour}:00 по {endHour}:00 МСК.<br>Unfortunately you contacted us outside of our support service hours. We will reply to you in the morning. Thank you for waiting.")+
завершитьСНовымЗапросом("{platformInMessageQuery}")
)+
комментарий("Мой график работы с {startHour} по {endHour} по МСК. Сейчас я работаю.")+
завершитьСНовымЗапросом("{platformInMessageQuery}") |
|
Expand |
---|
title | Приветствие пользователя с интерактивным меню |
---|
|
Code Block |
---|
задатьПользователюВопрос("Здравствуйте 😊<br>Что Вас интересует?").сВариантамиОтвета("Первое","Второе","Компот").сохранитьРезультат("userChoice")+
если("{userChoice} == Первое").то(завершитьСНовымЗапросом("Первые блюда"))+
если("{userChoice} == Второе").то(завершитьСНовымЗапросом("Вторые блюда"))+
если("{userChoice} == Компот").то(завершитьСШаблоном("Закончился. Всего хорошего!"))+
завершитьСНовымЗапросом("{userChoice}") |
|
...
Expand |
---|
title | Реализация пользовательского меню |
---|
|
Принцип работы: для перемещения по меню пользователь вводит названия нужных документов в базах знаний. С помощью команды “задатьПользователюВопрос“ можно сделать процесс ввода текста более удобным и понятным. В качестве приветствия будем использовать сценарий: Code Block |
---|
сообщениеПользователю.сШаблоном("Добро пожаловать в наш магазин")+завершитьСНовымЗапросом("Меню") |
Таким образом все пользователи изначально будут попадать в наше меню Создадим новую базу знаний. Для удобства назовем ее “Меню“ Добавим документ-сценарий с именем “Главное меню“ и вопросом “меню“ Code Block |
---|
задатьПользователюВопрос("Для уточнения информации выберите раздел").сВариантамиОтвета("Смартфоны","Планшеты","Аксессуары","Другие вопросы").сохранитьРезультат("userChoice")+
если("{userChoice} == Смартфоны").то(завершитьСНовымЗапросом("Смартфоны"))+
если("{userChoice} == Планшеты").то(завершитьСНовымЗапросом("Планшеты"))+
если("{userChoice} == Аксессуары").то(завершитьСНовымЗапросом("Аксессуары"))+
завершитьСНовымЗапросом("{userChoice}") |
| Image Modified | Добавим документ-сценарий с именем “Смартфоны“ и вопросом “Смартфоны“. Он будет являться каталогом смартфонов. Для удобства можно создать отдельную базу знаний Code Block |
---|
задатьПользователюВопрос("Выберите смартфон").сВариантамиОтвета("Смартфон_1","Смартфон_2","Смартфон_3", "Меню").сохранитьРезультат("userChoice")+
если("{userChoice} == Смартфон_1").то(завершитьСНовымЗапросом("Смартфон_1"))+
если("{userChoice} == Смартфон_2").то(завершитьСНовымЗапросом("Смартфон_2"))+
если("{userChoice} == Смартфон_3").то(завершитьСНовымЗапросом("Смартфон_3"))+
если("{userChoice} == Меню").то(завершитьСНовымЗапросом("Меню"))+
завершитьСНовымЗапросом("{userChoice}") |
| Image Modified | Добавим документ-сценарий с именем “Смартфон_1“ и вопросом “Смартфон_1“. В данном документе можно разместить фото и описание отдельно взятого смартфона Code Block |
---|
сообщениеПользователю.сФайлами(852).сШаблоном("")+
задатьПользователюВопрос("Оченю хороший смартфон").сВариантамиОтвета("Позвать оператора","Назад","Меню").сохранитьРезультат("userChoice")+
если("{userChoice} == Позвать оператора").то(завершитьИПеревестиНаОператора)+
если("{userChoice} == Назад").то(завершитьСНовымЗапросом("Смартфоны"))+
если("{userChoice} == Меню").то(завершитьСНовымЗапросом("Меню"))+
завершитьСНовымЗапросом("{userChoice}") |
| Image Modified |
Для других пунктов меню необходимо проделать ту же самую процедуру База знаний “Меню“ с созданными документами Пример работы |
...