Versions Compared

Key

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

...

Expand
titleНажмите здесь, чтобы развернуть пример сценария
Code Block
//
// Сценарий первичного анкетирования и передачи запроса операторам
//
// Начинается опрос
задатьПользователюВопрос("Уточните, пожалуйста, что для Вас является приоритетным?").сВариантамиОтвета("Получение максимальной суммы","Простота получения").сохранитьРезультат("UserSaid_Priority")+
задатьПользователюВопрос("Укажите, на какие цели предназначается займ?").сохранитьРезультат("UserSaid_Priority_2")+
сообщениеПользователю.сШаблоном("Пожалуйста не закрывайте окно чата оператор подберет для Вас наиболее выгодное предложение!")+
//
// завершаем сценарий и передаем диалог операторам
завершитьИПеревестиНаОператора

Анкетирование пользователя и сохранение результатов в

...

профиле пользователя

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

Expand
titleНажмите здесь, чтобы развернуть пример сценария
Code Block
//
// Сценарий заполнения данных пользователя
//
установитьПеременную("enteredEmail", "") +
установитьПеременную("enteredPhone", "") +
установитьПеременную("enteredFIO", "") +
установитьПеременную("enteredTall", "") +
установитьПеременную("enteredRegion", "") +
установитьПеременную("enteredLink", "") +
установитьПеременную("enteredCheck", "") +
//
// Опрос
если("{userFullName} == ").то(
	задатьПользователюВопрос("Укажите как вас зовут").сВариантамиОтвета("Пропустить").сохранитьРезультат("enteredFIO") 	
) +
если("{userEmail} == ").то(
	задатьПользователюВопрос("Укажите адрес вашей электронной почты").сВариантамиОтвета("Пропустить").сохранитьРезультат("enteredEmail") 	
) +
если("{userPhone} == ").то(
	задатьПользователюВопрос("Укажите номер вашего телефона").сВариантамиОтвета("Пропустить").сохранитьРезультат("enteredPhone") 	
) +
если("{userPayload.рост} == ").то(
	задатьПользователюВопрос("Укажите ваш рост").сВариантамиОтвета("Пропустить").сохранитьРезультат("enteredTall") 	
) +
если("{userPayload.регион} == ").то(
	задатьПользователюВопрос("Укажите ваш город").сВариантамиОтвета("Пропустить").сохранитьРезультат("enteredRegion") 	
) +
если("{userPayload.ссылка} == ").то(
	задатьПользователюВопрос("Укажите ссылку на ваш профиль").сВариантамиОтвета("Пропустить").сохранитьРезультат("enteredLink") 	
) +
//
// Замена нажатой кнопки Пропустить на символ -
если("{enteredFIO} == Пропустить").то(
	установитьПеременную("enteredFIO", "-")
) +
если("{enteredEmail} == Пропустить").то(
	установитьПеременную("enteredEmail", "-")
) +
если("{enteredPhone} == Пропустить").то(
	установитьПеременную("enteredPhone", "-")
) +
если("{enteredTall} == Пропустить").то(
	установитьПеременную("enteredTall", "-")
) +
если("{enteredRegion} == Пропустить").то(
	установитьПеременную("enteredRegion", "-")
) +
если("{enteredLink} == Пропустить").то(
	установитьПеременную("enteredLink", "-")
) +
//
// Проверка данных и сохранение тех переменных пользователя для которых в опросе были указаны данные
если("{enteredFIO} != ").то(
	установитьПеременнуюПользователю("userFullName", "{enteredFIO}") +
	установитьПеременную("enteredCheck", "1")
) +
если("{enteredEmail} != ").то(
	установитьПеременнуюПользователю("userEmail", "{enteredEmail}") +
	установитьПеременную("enteredCheck", "1")
) +
если("{enteredPhone} != ").то(
	установитьПеременнуюПользователю("userPhone", "{enteredPhone}") +
	установитьПеременную("enteredCheck", "1")
) +
если("{enteredTall} != ").то(
	установитьПеременнуюПользователю("userPayload.рост", "{enteredTall}") +
	установитьПеременную("enteredCheck", "1")
) +
если("{enteredRegion} != ").то(
	установитьПеременнуюПользователю("userPayload.регион", "{enteredRegion}") +
	установитьПеременную("enteredCheck", "1")
) +
если("{enteredLink} != ").то(
	установитьПеременнуюПользователю("userPayload.ссылка", "{enteredLink}") +
	установитьПеременную("enteredCheck", "1")
) +
//
// Если хоть одно значение было указано сценарий сообщит со сохранении данных
если("{enteredCheck} == 1").то(
	сообщениеПользователю.сШаблоном("Спасибо. Все записал.")
) + 
//
завершить

Опрос пользователя и получение

...

ответа из Confluence

Сценарий уточняет вопрос у пользователя и в зависимости от выбора пользователя возвращает в ответ одну из двух статей из Confluence.

Токен для обращения сервиса в Confluence следует получать у администраторов Confluence или по документации.

Expand
Image Added
Code Block
//
// Сценарий получения ответа из статьи Confluence
//
// Настройки сценария
//
// Укажите адрес установки Confluence
установитьПеременную("confluense_host", "https://ХХХХХХХХХ.atlassian.net/") +
// URL для запросов получения контента статей
установитьПеременную("confluense_url", "wiki/rest/api/content/") +
// Укажите токен для API запросов в Confluence 
установитьПеременную("confluense_token", "ХХХХХХХХХХХХХХХХХ")+
//
// Основной код сценария
//
// Приветственное сообщение и первый вопрос
сообщениеПользователю.сШаблоном("Добрый день! Сейчас я помогу!") +
задатьПользователюВопрос("Подскажите, описание какого релиза вас интересует?").сВариантамиОтвета("5.0.4", "5.0.5").сохранитьРезультат("answer_1")+
//
если("{answer_1} == 5.0.4").то(
	установитьПеременную("article", "3154706435")
) +
если("{answer_1} == 5.0.5").то(
	установитьПеременную("article", "3160571905") 
) +
//
// 
вызвать.внешнийСервис("{confluense_host}{confluense_url}{article}", "GET").сПараметрами(("expand", "body.storage")).сЗаголовками(("Content-Type", "application/json"),("charset", "utf-8"),("Authorization", "{confluense_token}")).сохранитьРезультат(("body.storage.value","body"))+
//
// Проверка результатов запроса, в случае ошибки сценарий сообщит об ошибке и завершится 
если("{http_code} > 210").то(
	комментарий("Сценарий не смог получить данные. {http_code}")+
	сообщениеПользователю.сШаблоном("Что-то сломалось и я не могу получить для вас ответ.")+
	завершить
)+
//
// 
сообщениеПользователю.сШаблоном("{body}")+
завершить

Работа с API вызовами

Создание инцидента в ITSM системе через REST API

...