установитьПеременную("host", "https://api.sendgrid.com/v3/mail/send")+
установитьПеременную("token", "token")+
установитьПеременную("from_email", "noreply@autofaq.ai")+
установитьПеременную("from_name", "autofaq")+
установитьПеременную("subject", "Переписка с пользователем {userFullName}")+
установитьПеременную("user_info", "Пользователь:\n{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",
переменная = "formName",
название = "Действие:",
значение = "Отправка сообщения на Email",
тип = "Нередактируемый текст",
описание = "",
обязательное = false
)+
//
добавитьПолеВФормуОператора(
форма = "Отправить на Email",
переменная = "email",
название = "Email",
значение = "xxx@gmail.com",
тип = "Однострочный редактируемый текст",
обязательное = true
)+
//
добавитьПолеВФормуОператора(
форма = "Отправить на Email",
переменная = "comment",
название = "Комментарий",
тип = "Многострочный редактируемый текст",
значение = "",
обязательное = false
)+
// Показываем форму оператору, пока оператор не закроет форму сценарий ждет
// если оператор нажмет в форме Отмена - сценарий остановится
показатьФормуОператору(имя = "Отправить на 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} > 202").то(
//если запрос завершен с ошибкой сценарий помещает в диалог соответствующий комментарий и завершает свою работу
комментарий("При запросе возникла ошибка {http_code}, обратитесь к системному администратору")+
завершить
)+
// помещаем комментарий в диалог об успешной регистрации инцидента
комментарий("Сообщение отправлено на {email}") |