Versions Compared

Key

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

...

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
// Пример сценария опроса оператора с заполнением метаданных пользователя
// Сценарий предназначен для подключения в Интеграцию на событие "Нажата кнопка оператора"
// После установки переменных новые данные отправляются в CRM и сохраняются в профиле пользователя в АФ
// 
установитьПеременную("host", "http://xxxx")+
установитьПеременную("_height", "{userPayload.Рост}")+
установитьПеременную("_weight", "{userPayload.Вес}")+
установитьПеременную("_typeNum", "{userPayload.Тип}")+
установитьПеременную("_comment", "{userPayload.Комментарий}")+
// Списки вариантов тегов 
установитьПеременную("types", "{\"Ученик\": \"Ученик\", \"Лид\": \"Лид\", \"Преподаватель\": \"Преподаватель\", \"Прочее\": \"Прочее\"}") +
// Собираем поля для формы оператора
// Добавляем текстовое поле для отображения информации
добавитьПолеВФормуОператора(
  форма = "Обновление данных пользователя",
  переменная = "formName",
  название = "",
  значение = "Укажите новые значение или сотрите старые",
  тип = "Нередактируемый текст",
  описание = "",
  обязательное = false
) +
// Добавляем поля пользователя
добавитьПолеВФормуОператора(
  форма = "Обновление данных пользователя",
  переменная = "_height",
  название = "Рост",
  тип = "Целое число",
  описание = "Рост пользователя, см",
  обязательное = false
) +
добавитьПолеВФормуОператора(
  форма = "Обновление данных пользователя",
  переменная = "_weight",
  название = "Вес",
  тип = "Целое число",
  описание = "Вес пользователя, кг",
  обязательное = false
) +
добавитьПолеВФормуОператора(
  форма = "Обновление данных пользователя",
  переменная = "_type",
  название = "Тип",
  тип = "Выпадающий список",
  описание = "Выберите из списка тип пользователя",
  обязательное = false,
  варианты = "{types}"
) +
добавитьПолеВФормуОператора(
  форма = "Обновление данных пользователя",
  переменная = "_comment",
  название = "Комментарий",
  тип = "Многострочный редактируемый текст",
  описание = "Комменатрий к пользователю",
  обязательное = false
) +
// показываем форму оператору, пока оператор не закроет форму сценарий ждет 
// если оператор нажмет в форме Отмена - сценарий остановится
показатьФормуОператору(имя = "Обновление данных пользователя") +
// отправка запроса на регистрацию инцидента в соответствии с выбранными значениями
вызвать.внешнийСервис("{host}", "POST").сЗаголовками(("Content-Type", "application/json"),("charset", "utf-8")).сТеломСообщения("{\"name\":\"{userFullName}\",\"type\":\"{_type}\",\"weight\":\"{_weight}\",\"comment\":\"{_comment}\",\"height\":\"{_height}\"}").сохранитьРезультатКакСтроку("answer")+
// обработка ошибок
если("{http_code} != 200").то(
  // если запрос завершен с ошибкой сценарий помещает в диалог соответствующий комментарий и завершает свою работу
  комментарий("Данные пользователя не обновлены. При запросе на регистрацию данных пользователя возникла ошибка {http_code}, обратитесь к системному администратору")+
  завершить
)+
комментарий("Обовлены данные пользователя. Новые данные отправлены в CRM")+
установитьПеременнуюПользователю("userPayload.Рост", "{_height}")+
установитьПеременнуюПользователю("userPayload.Вес", "{_weight}")+
установитьПеременнуюПользователю("userPayload.Тип", "{_type}")+
установитьПеременнуюПользователю("userPayload.Комментарий", "{_comment}")+
установитьПеременнуюВДиалог(
  ключ = "user_chat", 
  значение = "{_comment}", 
  название = "Редактируемый комментарий", 
  тип = "Текст",
  показыватьОператору = true, 
  обязательное = false, 
  редактируемое = true
)+
завершить
Expand
titleПриветствие пользователя с интерактивным меню
Code Block
задатьПользователюВопрос("Здравствуйте 😊<br>Что Вас интересует?").сВариантамиОтвета("Первое","Второе","Компот").сохранитьРезультат("userChoice")+
если("{userChoice} == Первое").то(завершитьСНовымЗапросом("Первые блюда"))+
если("{userChoice} == Второе").то(завершитьСНовымЗапросом("Вторые блюда"))+
если("{userChoice} == Компот").то(завершитьСШаблоном("Закончился. Всего хорошего!"))+
завершитьСНовымЗапросом("{userChoice}")

...

Expand
titleПриветствие пользователя с проверкой пароля в определенном канале. Позволяет продолжить работу с ботом в случае успешной сверки заранее заданного "пароля"
Code Block
если("{channelType} == Telegram").то(сообщениеПользователю.сШаблоном("Добро пожаловать в наш Telegram"))+
если("{channelId} == 2f7ce72f-8003-4e17-b879-e3c71f239149").то(
  // Запоминаем запрос пользователя в переменную message, чтобы продолжить работу в случае успеха
  установитьПеременную("message","{platformInMessageQuery}")+
  сообщениеПользователю.сШаблоном("Здравствуйте!")+
  задатьПользователюВопрос("Введите пароль").сохранитьРезультат("password")+
  // Перейти на проверку пароля
  перейтиНаМетку("проверка"))+
// После проверки всех условий продолжаем работу с пользователем повторив его запрос
завершитьСНовымЗапросом("{platformInMessageQuery}")+
// Проверка пароля
установитьМетку("проверка")+
если("{password} == valid_password").то(сообщениеПользователю.сШаблоном("Успех! Можете продолжить работу в системе")+завершитьСНовымЗапросом("{message}"))+
если("{password} != valid_password").то(сообщениеПользователю.сШаблоном("Ошибка! Попробуйте еще раз")+повторитьСШага(6))
Image RemovedImage Added
Expand
titleВызов SQL DB

см пример из Использование SQL запросов

...