Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Expand
titleВызов внешнего сервиса и разбор ответа в JS
Code Block
установитьПеременную("baseURL", "https://swapi.dev/api") +
вызвать.внешнийСервис("{baseURL}/people/1/", "GET").сЗаголовками(("Content-Type", "application/json")).сохранитьРезультатКакСтроку("results")+
выполнитьJs("""
var result = JSON.parse(results);
var exit = {'name':result.name, 'gender':result.gender}; exit;
""")+
сообщениеПользователю.сШаблоном("name {name}<br>gender {gender}")+
завершить
Expand
titleФорма для оператора (Создание заявки в ITSM системе с использованием данных пользователя для динамического заполнения необходимых полей на примере Jira (Запуск интеграции по кнопке)
Code Block
// Адрес API ITSM системы - получить у администратора системы
установитьПеременную("jira_host", "https://ххххххх.atlassian.net/rest/api/2/issue/")+
установитьПеременную("tags", "{\"Bug\": \"Проблема\", \"2\": \"Задача\", \"3\": \"Комментарий\", \"4\": \"Прочее\"}") +
// Собираем поля для формы оператора
// Добавляем текстовое поле для отображения информации
добавитьПолеВФормуОператора(
  форма = "Обновление заявки",
  переменная = "formName",
  название = "Действие:",
  значение = "Регистрация нового инцидента",
  тип = "Нередактируемый текст",
  описание = "",
  обязательное = false
) +
// Добавляем обязательное поле для резюме, форма сохранит введенный текст в переменную summary
// Для подставновки ФИО пользователя используем переменную userFullName
добавитьПолеВФормуОператора(
  форма = "Обновление заявки",
  переменная = "summary",
  название = "Резюме",
  значение = "Заявка для {userFullName}",
  тип = "Однострочный редактируемый текст",
  обязательное = true
) +
// Добавляем обязательное поле для описания, форма сохранит введенный текст в переменную description
// Для подставновки логина пользователя используем переменную userLogin
// Чтобы ускорить процесс добавим вопрос пользователя к описанию с помощью переменной platformInMessageQuery
добавитьПолеВФормуОператора(
  форма = "Обновление заявки",
  переменная = "description",
  название = "Описание заявки",
  тип = "Многострочный редактируемый текст",
  описание = "Опишите вашу проблему",
  значение = "Пользователь: {userFullName} логин: {userLogin} сообщает: {platformInMessageQuery}",
  обязательное = true
) +
// Добавляем обязательное поле для выбора тега из списка тегов 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"))+
// обработка ошибок
если("{http_code} != 201").то(
  // если запрос завершен с ошибкой сценарий помещает в диалог соответствующий комментарий и завершает свою работу
  комментарий("При запросе на регистрацию инцидента возникла ошибка {http_code}, обратитесь к системному администратору")+
  завершить
)+
// помещаем комментарий в диалог об успешной регистрации инцидента 
комментарий("Зарегистрирован инцидент: заявка {link}")+
// добавляем переменную чата со ссылкой на инцидент, переменная отобразится в боковой панели оператора без возможности редактирования
  установитьПеременнуюВДиалог(
    ключ = "linkJira",
    значение = "{link}",
    название = "Ссылка на Jira",
    показыватьОператору = true,
    редактируемое = false,
    обязательное = false,
    тип = "Текст"
)+
установитьПеременнуюВДиалог(
  ключ = "incNum", 
  значение = "{key}", 
  название = "Инцидент №", 
  тип = "Текст",
  показыватьОператору = true, 
  обязательное = false, 
  редактируемое = false
)+
завершить
Image AddedImage Added

Expand
titleФорма с использованием полей различных типов (Запуск интеграции по кнопке)
Code Block
комментарий("Запуск интеграции по кнопке.")+
установитьПеременнуюВДиалог("Поле 2", значение = "Field 2", название = "Поле 2", показыватьОператору = true, обязательное = true, редактируемое = false)+
установитьПеременную("priority", "{\"v1\": \"Blocker\", \"v2\": \"Critical\", \"v3\": \"Major\", \"v4\": \"Minor\"}") +
добавитьПолеВФормуОператора(
  форма = "Заведение заявки в Jira",
  переменная = "t1",
  название = "Что вам нужно сделать: ",
  тип = "Нередактируемый текст",
  значение = "Заполните форму"
) +
добавитьПолеВФормуОператора(
  форма = "Заведение заявки в Jira",
  переменная = "t2",
  название = "Название заявки",
  тип = "Однострочный редактируемый текст",
  описание = "Введите название заводимой заявки",
  значение = "Введите",
  обязательное = true
) +
добавитьПолеВФормуОператора(
  форма = "Заведение заявки в Jira",
  переменная = "t3",
  название = "Критичность",
  тип = "Выпадающий список",
  описание = "Выберите из списка критичность заявки",
  обязательное = true,
  значение = "v3", 
  варианты = "{priority}"
) +
добавитьПолеВФормуОператора(
  форма = "Заведение заявки в Jira",
  переменная = "t4",
  название = "Описание",
  тип = "Многострочный редактируемый текст",
  описание = "Опишите вашу проблему",
  обязательное = true
) +
добавитьПолеВФормуОператора(
  форма = "Заведение заявки в Jira",
  переменная = "t5",
  название = "Уведомить руководителя?",
  тип = "Переключатель",
  обязательное = false
) +
установитьПеременную("tags", "{\"v1\": \"Teacher\", \"v2\": \"Student\", \"v3\": \"Sales\", \"v4\": \"Tech\"}") +
добавитьПолеВФормуОператора(
  форма = "Заведение заявки в Jira",
  переменная = "t6",
  название = "Теги",
  тип = "Множественный выбор",
  описание = "Выберите теги, которыми пометить обращение",
  варианты = "{tags}",
  обязательное = true
) +
добавитьПолеВФормуОператора(
  форма = "Заведение заявки в Jira",
  переменная = "t7",
  тип = "Целое число",
  название = "Частота возникновения проблемы",
  описание = "% пользователей, у которых возникает проблема" 
) +
показатьФормуОператору(имя = "Заведение заявки в Jira") +
комментарий("Вот что у нас получилось: {t2}, {t3}, {t4}")+
комментарий("Конец сценария интеграции!")

...

Expand
titleИндивидуальное приветствие пользователей для каждого канала или типа каналов (социальных сетей \ мессенджеров)
Code Block
если("{channelType} == Telegram").то(сообщениеПользователю.сШаблоном("Добро пожаловать в наш Telegram"))+
если("{channelId} == 2f7ce72f-8003-4e17-b879-e3c71f239149").то(сообщениеПользователю.сШаблоном("Здравствуйте!"))+
завершить
Image RemovedImage RemovedImage AddedImage Added