Как настроить сценарии в Редакторе сценариев в Google Sheets для отправки электронной почты в мою систему продажи билетов Kace? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть форма Google, которая заполняется для запросов технической поддержки рабочего стола.Мне нужно, чтобы эти данные вводились в определенные поля в нашей системе продажи билетов Kace для билетов службы поддержки.(Сейчас все вручную. Мне нужно брать данные и создавать заявки вручную из отправленных данных формы)

Я буду использовать @variables для каждого поля формы, которое я хочу сопоставить в моей системе создания билетов Kace.

Какой сценарий мне нужно будет ввести для отправки этих @variables в Kace?У меня есть адрес электронной почты, который назначен очереди билетов.

Вот текущий скрипт, который выполняется на листе Google и содержит информацию, предоставленную пользователями, заполнившими форму Google.

function formSubmitReply(e) {
  var userEmail = e.values[3];
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  // Set the status of the new ticket to 'New'.
  // Column F is the Status column
  sheet.getRange(lastRow, getColIndexByName("Status")).setValue("New");

  // Calculate how many other 'New' tickets are ahead of this one
  var numNew = 0;
  for (var i = 2; i < lastRow; i++) {
    if (sheet.getRange(i, getColIndexByName("Status")).getValue() == "New") {
      numNew++;
    }
  }
  MailApp.sendEmail(userEmail,
                    "Helpdesk Ticket #" + lastRow,
                    "Thanks for submitting your issue. \n\nWe'll start " +
                    "working on it as soon as possible. You are currently " +
                    "number " +
                    (numNew + 1) + " in the queue. \n\nD75 Tech Team.",
                    {name:"D75 Tech Help"});
}

function getColIndexByName(colName) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var numColumns = sheet.getLastColumn();
  var row = sheet.getRange(1, 1, 1, numColumns).getValues();
  for (i in row[0]) {
    var name = row[0][i];
    if (name == colName) {
      return parseInt(i) + 1;
    }
  }
  return -1;
}

function emailStatusUpdates() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var row = sheet.getActiveRange().getRowIndex();
  var userEmail = sheet.getRange(row, getColIndexByName("Email Address")).getValue();
  var subject = "Helpdesk Ticket #" + row;
  var body = "We've updated the status of your ticket.\n\nStatus: " + sheet.getRange(row, getColIndexByName("Status")).getValue();
  body += "\n\nProblem: " + sheet.getRange(row, getColIndexByName("Please describe the problem you are experiencing")).getValue();
  body += "\n\nNotes: " + sheet.getRange(row, getColIndexByName("Notes")).getValue();
  body += "\n\nResolution: " + sheet.getRange(row, getColIndexByName("Resolution")).getValue();

  MailApp.sendEmail(userEmail, subject, body, {name:"D75 Tech Help"});
}

function onOpen() {
  var subMenus = [{name:"Send Status Email", functionName: "emailStatusUpdates"}];
  SpreadsheetApp.getActiveSpreadsheet().addMenu("Help Desk Menu", subMenus);
}
...