Реализация Help Desk System на основе Google Table

Help Desk System (система технической поддержки) является неотъемлемой частью многих организаций, которые стремятся обеспечить эффективное взаимодействие с клиентами и улучшить обработку и решение их запросов. В данной статье мы представим реализацию Help Desk System, используя Google Table.

Реализация Help Desk System на основе Google Table

Обзор Help Desk System:

Основными функция Help Desk System, являются регистрация и отслеживание запросов клиентов, управление приоритетами, назначение ответственных лиц, отслеживание статуса запросов и обеспечение своевременной обратной связи с клиентами для обеспечения качественного обслуживания клиентов и повышения уровня удовлетворенности.

Преимущества использования Google Table:

Help Desk System на основе Google Table представляет собой мощный и гибкий инструмент для управления и отслеживания запросов клиентов. Реализация такой системы позволяет организациям эффективно обрабатывать запросы пользователей, повышать качество обслуживания. А также он является совершено бесплатным, что является не мало важным фактором при выборе системы HD.

Алгоритм работы следующий:

  1. Пользователи оставляют заявку, после чего она попадает в гугл таблицу, администраторы получают уведомление на почту о новой заявке, пользователи также получают уведомление о том, что их заявка принята.
  2. Администраторы могут добавлять комментарий к заявке, выбирать ответственного и менять статус. По изменениям также отправляется письмо на почту пользователю.
  3. После закрытия заявки пользователю также отправляется уведомление.

Реализация:

  1. Создаем новую Google таблицу, заходим в раздел Инструменты — Создать форму

Это будет форма для принятия заявок от пользователей

Оформляем ее в нужном вам виде.

Список вопросы может быть примерно следующим:

ФИО
Должность
Email
Телефон
Категория
Проблема

Реализация Help Desk System на основе Google Table
Реализация Help Desk System на основе Google Table

После отправки они автоматически попадают в таблицу в таком виде:

Реализация Help Desk System на основе Google Table

Столбец Отметка времени является служебным, вы также можете добавлять свои столбцы в эту таблицу, например:

Время выполнения заявки
Ответственный
Статус
Комментарии

Настройка рассылки оповещений

Заходим в раздел Расширения- Apps Scrip

Реализация Help Desk System на основе Google Table

Создаем следующие скрипты для рассылки оповещений:

  1. Оповещение о принятии заявки при отправке формы клиенту
function sendEmailsaccepted() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow=SpreadsheetApp.getActiveRange().getLastRow(); var r = SpreadsheetApp.getActiveRange(); var numRows=1; var cols = r.getColumn(); var dataRange = sheet.getRange(startRow, 2, numRows, 9) // Fetch values for each row in the Range. var data = dataRange.getValues(); for (i in data) { var row = data[i]; var emailAddress = row[5]; // First column var messageTitle = row[3]; //Тема заявки var messageStat = row[11]; // Second column var messageOtv = row[10]; // Second column var messageProbl = row[7]; // Second column var messageTime = row[9]; var messagePrim = row[12]; var messageOtprav = row[0]; var subject = "Ваша заявка по вопросу: " +messageTitle+ "- принята в ИТ отдел"; MailApp.sendEmail(emailAddress, subject, "Спасибо за обращение! \n" + "Ваша заявка под номером: "+startRow+" принята в работу, специалист ИТ-отдела свяжется с Вами в ближайшее время!"); } }

2. Оповещение о новой заявке администратору

function Send_message_New_Tiket() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var lastRow = sheet.getLastRow(); var lastColumn = sheet.getLastColumn(); var dataRange = sheet.getRange(lastRow,2, 1, 12) var data = dataRange.getValues(); var row = data[0]; var messageOtprav = row[0]; var messageDolg = row [1]; var messageComp = row [2]; var messageTitle = row[3]; //Тема заявки var messageTel = row [4]; var messageEmail = row [5]; var messageProblemKategor = row [6]; var messageProbl = row[7]; var subject = "Новая заявка в ИТ Отделе, по теме " + messageTitle; var mails = new Array(); var mailsUval = new Array(); while (messageEmail == "" ) { dataRange = sheet.getRange(lastRow,2, 1, 12); data = dataRange.getValues(); row = data[0]; messageOtprav = row[0]; messageDolg = row [1]; messageComp = row [2]; messageTitle = row[3]; //Тема заявки messageTel = row [4]; messageEmail = row [5]; messageProblemKategor = row [6]; messageProbl = row[7]; lastRow--; } MailApp.sendEmail("admin@gmail.com", subject, "Заявитель:"+" " +messageOtprav+ "\n Должность:" +messageDolg+ " \n Телефон: "+messageTel+ " \n Email: "+messageEmail+"\n Категория: " +messageProblemKategor + "\n Тема: " +messageTitle +"\n Описание заявки: "+ " \n" +messageProbl+ "\n Тут можно указать ссылку на таблицу"); } } }

3. Отправка комментариев по задаче

function send_Emails_comments() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow=SpreadsheetApp.getActiveRange().getLastRow(); var r = SpreadsheetApp.getActiveRange(); var numRows=1; var cols = r.getColumn(); if(cols==14){ var dataRange = sheet.getRange(startRow, 2, numRows, 13) // Fetch values for each row in the Range. var data = dataRange.getValues(); for (i in data) { var row = data[i]; var messageTitle = row[3]; //Тема заявки var emailAddress = row[5]; // First column var messageStat = row[11]; // Second column var messageOtv = row[10]; // Second column var messageProbl = row[7]; // Second column var messageTime = row[9]; var messagePrim = row[12]; var messageOtprav = row[0]; var subject = "Комментарий к заявке в IT отделе по теме: "+messageTitle; MailApp.sendEmail(emailAddress, subject, "По заявке: \n"+messageProbl+" \n"+" \n Время решения: " +messageTime+ "\n Ответственный: "+messageOtv+"\n Комментарий:" +messagePrim ); } } }

4.Отправка статусов

function send_Email_status() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow=SpreadsheetApp.getActiveRange().getLastRow(); var r = SpreadsheetApp.getActiveRange(); var numRows=1; var cols = r.getColumn(); var range = sheet.getActiveRange(); var data = String(range.getValues()); var dateBegin =range.offset(0,-12).getValue(); var dateEnd =range.offset(0,-2).getValue(); if(cols==13){ var dataRange = sheet.getRange(startRow, 2, numRows, 13) // Fetch values for each row in the Range. var data = dataRange.getValues(); for (i in data) { var row = data[i]; var messageTitle = row[3]; //Тема заявки var emailAddress = row[5]; // First column var messageStat = row[11]; // Second column var messageOtv = row[10]; // Second column var messageProbl = row[7]; // Second column var messageTime = row[9]; var messagePrim = row[12]; var messageOtprav = row[0]; } } var subject = "Статус заявки в IT отдле №"+startRow+ ", по теме: "+messageTitle+ " - "+messageStat; if(messageStat=="Отложена" || messageStat=="В работе" ) { MailApp.sendEmail(emailAddress, subject, " Статус Вашей заявки, по проблеме: \n"+" "+messageProbl+"\n- "+messageStat+ " \n Время решения: " +messageTime+ " \n Ответственный: "+messageOtv+"."); } if(messageStat=="Выполнена") { range.offset(0,-2).setValue(new Date()); TimeMS =new Date()-dateBegin; Days = Math.floor(TimeMS/ (24 * 60 * 60 * 1000)); // миллисекунды / (24ч * 60мин * 60сек * 1000мс); Hour = Math.floor(TimeMS/ (60 * 60 * 1000)); // миллисекунды / (60мин * 60сек * 1000мс); Min = Math.floor(TimeMS/ (60 * 1000)); // миллисекунды / (60сек * 1000мс); Hour2=Hour-(Days*24); Min2=Min-(Hour*60) ; if (Days > 0) {TimeZ="Дней: "+Days+" Часов: "+Hour2+" Минут: "+Min2; } if (Hour > 0 && Days == 0) { TimeZ=" Часов: "+Hour2+" Минут: "+Min2; } if (Hour == 0 && Days == 0) { TimeZ="Минут: "+Min2; } MailApp.sendEmail("Admin@gmail.com", subject, "Статус заявки в IT отдле №"+startRow+ ", по теме: "+messageTitle+" , описание проблемы: \n"+" "+messageProbl+ "\n Время решения: " +TimeZ+ "\n Заявитель: "+messageOtprav+"\n Ответственный: "+messageOtv+"\n Комментарий:\n" +messagePrim); MailApp.sendEmail(emailAddress, subject, " Статус Вашей заявки, по проблеме: \n"+" "+messageProbl+ "\n Время решения: " +TimeZ+ "\n Ответственный: "+messageOtv+"."); } }
Реализация Help Desk System на основе Google Table

Настройка триггеров

Реализация Help Desk System на основе Google Table

Настраиваем триггеры, по которым будет происходит выполнение скриптов

Реализация Help Desk System на основе Google Table
Реализация Help Desk System на основе Google Table
Реализация Help Desk System на основе Google Table
Реализация Help Desk System на основе Google Table

При сохранении, возможно, у вас потребуется предоставить доступ, нужно будет выполнить следующее:

Реализация Help Desk System на основе Google Table
Реализация Help Desk System на основе Google Table
Нажать <b>Разрешить</b>
Нажать Разрешить

Примеры писем

Реализация Help Desk System на основе Google Table
Реализация Help Desk System на основе Google Table
Реализация Help Desk System на основе Google Table

При желании оповещение можно настроить и на телеграмм.

Начать дискуссию