установитьПеременную("host", "https://хххххххapi.atlassiansendgrid.netcom/restv3/api/2/issue/mail/send")+
установитьПеременную("tagstoken", "{\"Bug\": \"Проблема\token")+
установитьПеременную("from_email", \"2\": \"Задача\noreply@autofaq.ai")+
установитьПеременную("from_name", \"3\autofaq":)+
\установитьПеременную("Комментарий\subject", \"4\": \"Прочее\"}") "Переписка с пользователем {userFullName}")+
установитьПеременную("user_info", "Пользователь:\n{userFullName}")+
// СобираемПолучаем поляисторию для формы оператора
// Добавляем текстовое поле для отображения информации
добавитьПолеВФормуОператора(
форма = "Обновление заявки",
переменная = "formName",
название = "Действие:",
значение = "Регистрация нового инцидента",
тип = "Нередактируемый текст",
описание = "",
обязательное = false
) +
// Добавляем обязательное поле для резюме, форма сохранит введенный текст в переменную summary
// Для подставновки ФИО пользователя используем переменную userFullNameсообщений
выполнитьJs("""
var messages = conversation.messages.filter(function (str) {return ['Question', 'AnswerOperator'].indexOf(str.tpe) != -1});
var msg_history = '';
messages.forEach(function (item, i, arr) {
msg_history += ((i > 0) ? '\n\n':'') + ((item.tpe == 'Question') ? 'Клиент:' : 'Оператор:') + '\n' + item.txt.replace(/<\/?[^>]+(>|$)/g, "");
});
var exit = {'msg_history':msg_history};
exit;
""")+
// Собираем поля для формы оператора
// Добавляем текстовое поле для отображения информации
добавитьПолеВФормуОператора(
форма = "ОбновлениеОтправить на заявкиEmail",
переменная = "summaryformName",
название = "РезюмеДействие:",
значение = "ЗаявкаОтправка сообщения дляна {userFullName}Email",
тип = "Нередактируемый текст"Однострочный редактируемый текст,
описание = "",
обязательное = truefalse
) +
//
Добавляем обязательное поле для описания, форма сохранит введенный текст в переменную description
// Для подставновки логина пользователя используем переменную userLogin
// Чтобы ускорить процесс добавим вопрос пользователя к описанию с помощью переменной platformInMessageQueryдобавитьПолеВФормуОператора(
форма = "Отправить на Email",
переменная = "email",
название = "Email",
значение = "xxx@gmail.com",
тип = "Однострочный редактируемый текст",
обязательное = true
)+
//
добавитьПолеВФормуОператора(
форма = "ОбновлениеОтправить на заявкиEmail",
переменная = "descriptioncomment",
название = "Описание заявкиКомментарий",
тип = "Многострочный редактируемый текст",
описание =
"Опишите вашу проблему",
значение = "Пользователь: {userFullName} логин: {userLogin} сообщает: {platformInMessageQuery}",
обязательное = truefalse
) +
// Добавляем обязательное поле для выбора тега из списка тегов tags, сохранит выбранное значение в переменную tag
добавитьПолеВФормуОператора(
форма = "Обновление заявки",
переменная = "issuetype",
название = "Тег",
тип = "Выпадающий список",
описание = "Выберите из списка критичность заявки",
обязательное = true,
варианты = "{tags}"
) +
// показываем форму оператору, пока оператор не закроет форму сценарий ждет
// если оператор нажмет в форме Отмена - сценарий остановится
показатьФормуОператору(имя = "Обновление заявки") +
// отправка запроса на регистрацию инцидента в соответствии с выбранными значениями
вызвать.внешнийСервис("{jira_host}", "POST").сЗаголовками(("Content-Type", "application/json"),("charset", "utf-8"),("Authorization", "Basic YWFwbGV0bjFAZ21haWwuY25IUUdmR05VRGdFOXlTMkhuRkE3RA==")).сТеломСообщения("{\"fields\":{\"project\":{\"key\":\"INT\"},\"summary\":\"{summary}\",\"description\":\"{description}\",\"issuetype\":{\"name\":\"{issuetype}\"}}}").сохранитьРезультат(("id","ticketid"),("key","key"),("self","link")Показываем форму оператору, пока оператор не закроет форму сценарий ждет
// если оператор нажмет в форме Отмена - сценарий остановится
показатьФормуОператору(имя = "Отправить на Email")+
// отправка запроса
вызвать.внешнийСервис("{host}", "POST").сЗаголовками(("Authorization", "{token}"),("Content-Type","application/json")).сТеломСообщения("{\"personalizations\":[{\"to\":[{\"email\":\"{email}\",\"name\":\"{userFullName}\"}],\"subject\":\"{subject}\"}],\"content\": [{\"type\": \"text/plain\", \"value\": \"Комментарий оператора:\\n{comment}\\n\\n{user_info}\\n\\nИстория сообщений:\\n{msg_history}\"}],\"from\":{\"email\":\"{from_email}\",\"name\":\"{from_name}\"},\"reply_to\":{\"email\":\"{from_email}\",\"name\":\"{from_name}\"}}").сохранитьРезультат()+
// обработка ошибок
если("{http_code} !=> 201202").то(
// если запрос завершен с ошибкой сценарий помещает в диалог соответствующий комментарий и завершает свою работу
комментарий("При запросе на регистрацию инцидента возникла ошибка {http_code}, обратитесь к системному администратору")+
завершить
)+
// помещаем комментарий в диалог об успешной регистрации инцидента
комментарий("ЗарегистрированСообщение инцидент:отправлено заявкана {linkemail}")+
// добавляем переменную чата со ссылкой на инцидент, переменная отобразится в боковой панели оператора без возможности редактирования
|