DIY Ticketing System dengan Google Apps Script untuk Menangani Permintaan
Dalam dunia bisnis yang serba cepat saat ini, layanan pelanggan yang efisien sangat penting. Sistem ticketing yang terorganisir dengan baik dapat membantu Anda merampingkan proses dukungan, melacak permintaan, dan memastikan bahwa tidak ada pertanyaan pelanggan yang terlewat. Membangun sistem ticketing sendiri mungkin terdengar rumit, tetapi dengan kekuatan Google Apps Script, Anda dapat membuat solusi yang disesuaikan dengan kebutuhan Anda tanpa menghabiskan banyak uang. Artikel ini akan memandu Anda langkah demi langkah dalam membuat sistem ticketing DIY menggunakan Google Apps Script untuk menangani permintaan.
Mengapa Membuat Sistem Ticketing DIY?
Sebelum kita menyelami detail teknis, mari kita bahas manfaat membangun sistem ticketing sendiri:
- Kustomisasi: Sesuaikan sistem agar sesuai dengan kebutuhan spesifik alur kerja Anda.
- Hemat Biaya: Kurangi biaya lisensi perangkat lunak dengan menggunakan alat Google yang ada.
- Integrasi: Integrasikan dengan mulus dengan layanan Google lainnya seperti Gmail, Google Sheets, dan Google Calendar.
- Kontrol: Anda memiliki kontrol penuh atas data dan fungsionalitas sistem.
- Fleksibilitas: Evolusikan sistem sesuai pertumbuhan bisnis Anda dan perubahan kebutuhan.
Kerangka Artikel
Berikut adalah kerangka terperinci untuk posting blog ini:
- Pendahuluan
- Ikhtisar sistem ticketing dan pentingnya.
- Manfaat membangun sistem ticketing DIY dengan Google Apps Script.
- Prasyarat
- Akun Google (Gmail, Google Sheets).
- Pengetahuan dasar Google Apps Script (JavaScript).
- Pemahaman tentang API Google (opsional, tetapi direkomendasikan).
- Merancang Sistem Ticketing Anda
- Mengidentifikasi kebutuhan bisnis utama.
- Menentukan bidang tiket yang diperlukan (Subject, Description, Priority, Status, dll.).
- Membuat spreadsheet Google untuk menyimpan data tiket.
- Merencanakan alur kerja ticketing (penerimaan, penugasan, resolusi).
- Langkah-Langkah Implementasi
- Membuat spreadsheet Google sebagai database tiket.
- Menulis skrip Google Apps untuk memproses email yang masuk dan membuat tiket.
- Menyiapkan pemicu untuk menjalankan skrip secara otomatis.
- Membuat antarmuka pengguna sederhana (opsional, tetapi direkomendasikan).
- Menambahkan fungsionalitas untuk pembaruan status tiket dan notifikasi.
- Kode Contoh dan Penjelasan
- Skrip untuk membaca email yang masuk.
- Skrip untuk membuat tiket baru di spreadsheet.
- Skrip untuk mengirim notifikasi email.
- Skrip untuk memperbarui status tiket.
- Fitur Tingkat Lanjut (Opsional)
- Otomatisasi penugasan tiket berdasarkan kategori atau kata kunci.
- Integrasi dengan chatbot untuk pengiriman tiket awal.
- Laporan dan analisis untuk melacak kinerja dukungan.
- Menambahkan tingkat akses pengguna (admin, agen, pelanggan).
- Praktik Terbaik
- Keamanan: Mengamankan skrip dan data Anda.
- Penanganan kesalahan: Menerapkan penanganan kesalahan yang tepat untuk mencegah masalah.
- Optimalisasi: Mengoptimalkan kode untuk kinerja.
- Dokumentasi: Mendokumentasikan kode dan konfigurasi Anda.
- Troubleshooting
- Masalah umum dan solusinya.
- Tips debugging Google Apps Script.
- Kesimpulan
- Rekapitulasi manfaat membangun sistem ticketing DIY.
- Langkah selanjutnya dan sumber daya tambahan.
1. Pendahuluan
Dalam lanskap bisnis modern, layanan pelanggan yang unggul adalah pembeda utama. Pelanggan mengharapkan respons yang cepat, solusi yang efektif, dan pengalaman yang tanpa cela. Sistem ticketing yang efisien sangat penting untuk memberikan layanan pelanggan yang luar biasa. Sistem ini memungkinkan bisnis untuk mengelola permintaan pelanggan secara terpusat, melacak progres resolusi, dan memastikan bahwa tidak ada masalah yang terlewat. Sementara solusi sistem ticketing komersial tersedia luas, opsi DIY menggunakan Google Apps Script menawarkan alternatif yang menarik, terutama bagi bisnis kecil dan menengah yang mencari solusi hemat biaya dan dapat disesuaikan.
Google Apps Script, platform berbasis cloud untuk mengotomatisasi tugas dan mengintegrasikan aplikasi Google, menyediakan lingkungan yang ampuh dan fleksibel untuk membangun sistem ticketing yang disesuaikan. Dengan menggunakan Google Apps Script, Anda dapat memanfaatkan alat Google yang sudah dikenal seperti Gmail, Google Sheets, dan Google Drive untuk membuat sistem ticketing yang memenuhi kebutuhan unik bisnis Anda. Sistem DIY bukan hanya tentang penghematan biaya; ini juga tentang memberikan Anda kontrol penuh atas data dan fungsionalitas Anda, memungkinkan Anda untuk beradaptasi dengan cepat terhadap perubahan kebutuhan bisnis.
2. Prasyarat
Sebelum Anda mulai membangun sistem ticketing DIY Anda, pastikan Anda memiliki prasyarat berikut:
- Akun Google: Anda memerlukan akun Google yang aktif untuk mengakses Gmail, Google Sheets, dan Google Apps Script.
- Pengetahuan Dasar Google Apps Script (JavaScript): Pemahaman dasar tentang JavaScript dan konsep pemrograman sangat penting. Anda harus terbiasa dengan variabel, fungsi, pernyataan bersyarat, dan perulangan.
- Pemahaman tentang API Google (Opsional, tetapi Direkomendasikan): Meskipun tidak wajib, pengetahuan tentang API Google akan sangat bermanfaat, terutama jika Anda berencana mengintegrasikan sistem ticketing Anda dengan layanan Google lainnya atau pihak ketiga. Anda mungkin perlu menggunakan Gmail API, Sheets API, atau Drive API untuk fungsionalitas yang lebih canggih.
Jika Anda baru mengenal Google Apps Script, ada banyak sumber daya daring yang tersedia untuk membantu Anda mempelajari dasar-dasarnya:
- Dokumentasi Google Apps Script: Sumber daya resmi untuk mempelajari tentang sintaks, fungsi, dan API Google Apps Script. (link ke dokumentasi resmi Google Apps Script)
- Tutorial Daring: Banyak tutorial daring dan kursus yang tersedia di platform seperti Coursera, Udemy, dan YouTube yang mengajarkan Google Apps Script dari awal.
- Komunitas Google Apps Script: Bergabung dengan komunitas daring dapat memberikan bantuan dan dukungan berharga saat Anda belajar dan membangun sistem ticketing Anda.
3. Merancang Sistem Ticketing Anda
Langkah pertama dalam membangun sistem ticketing DIY adalah merancang sistem untuk memenuhi kebutuhan spesifik bisnis Anda. Proses desain melibatkan identifikasi kebutuhan utama bisnis, menentukan bidang tiket yang diperlukan, membuat spreadsheet Google untuk menyimpan data tiket, dan merencanakan alur kerja ticketing.
3.1 Mengidentifikasi Kebutuhan Bisnis Utama
Mulailah dengan mengidentifikasi kebutuhan bisnis khusus yang perlu diatasi oleh sistem ticketing Anda. Pertimbangkan pertanyaan-pertanyaan berikut:
- Jenis permintaan dukungan apa yang Anda terima? (misalnya, masalah teknis, pertanyaan penjualan, umpan balik pelanggan)
- Berapa banyak permintaan dukungan yang Anda terima setiap hari?
- Berapa banyak agen dukungan yang Anda miliki?
- Bagaimana permintaan dukungan saat ini dikelola? (misalnya, email, telepon, spreadsheet)
- Apa tantangan dalam proses dukungan Anda saat ini?
- Fitur apa yang paling penting bagi Anda dalam sistem ticketing? (misalnya, otomatisasi, pelaporan, integrasi)
Jawaban atas pertanyaan-pertanyaan ini akan membantu Anda menentukan ruang lingkup dan persyaratan sistem ticketing Anda.
3.2 Menentukan Bidang Tiket yang Diperlukan
Selanjutnya, tentukan bidang tiket yang diperlukan untuk mengumpulkan informasi yang relevan tentang setiap permintaan dukungan. Bidang tiket umum meliputi:
- ID Tiket: Nomor unik yang mengidentifikasi setiap tiket.
- Subjek: Ringkasan singkat tentang permintaan dukungan.
- Deskripsi: Penjelasan rinci tentang masalah atau pertanyaan.
- Prioritas: Tingkat urgensi permintaan (misalnya, Tinggi, Sedang, Rendah).
- Status: Tahap saat ini dari tiket (misalnya, Baru, Sedang Diproses, Diselesaikan, Ditutup).
- Ditugaskan ke: Agen dukungan yang bertanggung jawab untuk menangani tiket.
- Pengirim: Nama dan alamat email pelanggan yang mengirimkan permintaan.
- Tanggal Dibuat: Tanggal dan waktu tiket dibuat.
- Tanggal Diperbarui: Tanggal dan waktu tiket terakhir diperbarui.
- Tanggal Diselesaikan: Tanggal dan waktu tiket diselesaikan.
- Kategori: Kategori permintaan dukungan (misalnya, teknis, penjualan, penagihan).
- Solusi: Penjelasan tentang bagaimana masalah tersebut diselesaikan.
- Lampiran: Setiap file yang relevan yang dilampirkan pada tiket.
Anda dapat menyesuaikan bidang tiket ini untuk memenuhi kebutuhan spesifik bisnis Anda. Misalnya, Anda mungkin ingin menambahkan bidang untuk tipe produk, nomor seri, atau tingkat kepuasan pelanggan.
3.3 Membuat Spreadsheet Google untuk Menyimpan Data Tiket
Setelah Anda menentukan bidang tiket yang diperlukan, buat spreadsheet Google untuk menyimpan data tiket. Setiap kolom dalam spreadsheet akan mewakili bidang tiket, dan setiap baris akan mewakili tiket individual. Berikut adalah contoh bagaimana Anda dapat mengatur spreadsheet Anda:
ID Tiket | Subjek | Deskripsi | Prioritas | Status | Ditugaskan ke | Pengirim | Tanggal Dibuat | Tanggal Diperbarui | Tanggal Diselesaikan | Kategori | Solusi | Lampiran |
---|---|---|---|---|---|---|---|---|---|---|---|---|
#0001 | Tidak dapat masuk ke akun saya | Saya lupa kata sandi saya dan tidak dapat masuk ke akun saya. | Tinggi | Sedang Diproses | John Doe | jane.doe@example.com | 2023-10-27 10:00:00 | 2023-10-27 10:30:00 | Teknis | |||
#0002 | Pertanyaan tentang harga | Saya ingin tahu tentang harga produk Anda. | Sedang | Baru | peter.pan@example.com | 2023-10-27 11:00:00 | Penjualan |
Berikan nama yang deskriptif untuk spreadsheet Anda (misalnya, “Sistem Ticketing”). Anda juga dapat membuat sheet terpisah untuk menyimpan data seperti kategori, prioritas, dan status, yang dapat digunakan untuk membuat daftar drop-down di spreadsheet Anda.
3.4 Merencanakan Alur Kerja Ticketing
Alur kerja ticketing mendefinisikan langkah-langkah yang diambil untuk menangani permintaan dukungan dari penerimaan hingga resolusi. Rencanakan alur kerja ticketing Anda untuk memastikan proses yang efisien dan terstruktur.
Berikut adalah contoh alur kerja ticketing dasar:
- Penerimaan: Permintaan dukungan diterima melalui email, formulir web, atau saluran lainnya.
- Pembuatan Tiket: Tiket baru dibuat di spreadsheet Google dengan semua informasi yang relevan.
- Penugasan: Tiket tersebut ditugaskan ke agen dukungan yang sesuai berdasarkan kategori, prioritas, atau ketersediaan.
- Sedang Diproses: Agen dukungan meninjau tiket tersebut dan mulai bekerja untuk menyelesaikan masalah tersebut.
- Pembaruan: Status tiket diperbarui secara teratur untuk mencerminkan kemajuan resolusi. Agen dukungan dapat menambahkan catatan, lampiran, dan pembaruan lainnya ke tiket.
- Resolusi: Agen dukungan menyelesaikan masalah tersebut dan memberikan solusi kepada pelanggan.
- Penutupan: Pelanggan mengkonfirmasi bahwa masalah tersebut telah diselesaikan dan tiket tersebut ditutup.
- Analisis: Data dari tiket digunakan untuk menganalisis tren, mengidentifikasi area untuk peningkatan, dan melacak kinerja dukungan.
Anda dapat menyesuaikan alur kerja ini untuk memenuhi kebutuhan spesifik bisnis Anda. Misalnya, Anda mungkin ingin menambahkan langkah untuk eskalasi, persetujuan, atau umpan balik pelanggan.
4. Langkah-Langkah Implementasi
Sekarang setelah Anda merancang sistem ticketing Anda, Anda dapat mulai mengimplementasikannya menggunakan Google Apps Script. Langkah-langkah implementasi melibatkan pembuatan spreadsheet Google sebagai database tiket, penulisan skrip Google Apps untuk memproses email yang masuk dan membuat tiket, menyiapkan pemicu untuk menjalankan skrip secara otomatis, dan membuat antarmuka pengguna sederhana (opsional, tetapi direkomendasikan). Mari kita bahas setiap langkah secara rinci:
4.1 Membuat Spreadsheet Google sebagai Database Tiket
Jika Anda belum melakukannya, buat spreadsheet Google dan atur kolom berdasarkan bidang tiket yang Anda tentukan di bagian sebelumnya. Pastikan Anda memberikan nama yang mudah diingat untuk spreadsheet Anda. Ambil ID spreadsheet ini, karena kita akan membutuhkannya nanti dalam skrip Google Apps kita.
Cara mendapatkan ID Spreadsheet:
- Buka spreadsheet Google Anda.
- Lihat URL di bilah alamat. ID Spreadsheet adalah string karakter antara `/d/` dan `/edit`.
- Contoh: `https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit`
4.2 Menulis Skrip Google Apps untuk Memproses Email yang Masuk dan Membuat Tiket
Skrip Google Apps akan bertanggung jawab untuk secara otomatis memproses email yang masuk dan membuat tiket baru di spreadsheet Google Anda. Berikut adalah skrip contoh yang dapat Anda gunakan sebagai titik awal:
“`javascript
function processNewTickets() {
// Ganti dengan alamat email tempat Anda menerima permintaan dukungan.
var SUPPORT_EMAIL = ‘support@example.com’;
// Ganti dengan ID Spreadsheet Google Anda.
var SPREADSHEET_ID = ‘YOUR_SPREADSHEET_ID’;
// Dapatkan sheet tempat data tiket akan disimpan.
var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(‘Sheet1’);
// Cari email yang belum diproses.
var threads = GmailApp.search(‘to:’ + SUPPORT_EMAIL + ‘ is:unread’);
// Loop melalui setiap thread email.
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var messages = thread.getMessages();
// Hanya proses pesan pertama dalam thread (asumsi bahwa ini adalah tiket baru).
var message = messages[0];
// Ekstrak informasi dari email.
var subject = message.getSubject();
var body = message.getBody();
var sender = message.getFrom();
var date = message.getDate();
// Buat ID tiket unik.
var ticketId = '#' + Utilities.formatDate(date, Session.getTimeZone(), 'yyMMddHHmmss');
// Tambahkan data tiket ke spreadsheet.
sheet.appendRow([
ticketId,
subject,
body,
'Rendah', // Default Priority
'Baru', // Default Status
'', // Ditugaskan ke
sender,
date
]);
// Tandai email sebagai sudah dibaca.
thread.markRead();
}
}
```
Penjelasan Skrip:
- `processNewTickets()`: Fungsi utama yang memproses email yang masuk dan membuat tiket.
- `SUPPORT_EMAIL`: Variabel yang menyimpan alamat email tempat Anda menerima permintaan dukungan. Ganti `support@example.com` dengan alamat email Anda yang sebenarnya.
- `SPREADSHEET_ID`: Variabel yang menyimpan ID Spreadsheet Google Anda. Ganti `YOUR_SPREADSHEET_ID` dengan ID Spreadsheet Anda yang sebenarnya.
- `SpreadsheetApp.openById(SPREADSHEET_ID)`: Membuka spreadsheet Google berdasarkan ID yang diberikan.
- `getSheetByName(‘Sheet1’)`: Mendapatkan sheet bernama ‘Sheet1’ dari spreadsheet. Ganti ‘Sheet1’ jika sheet Anda memiliki nama yang berbeda.
- `GmailApp.search(‘to:’ + SUPPORT_EMAIL + ‘ is:unread’)`: Mencari email yang belum dibaca yang dikirim ke alamat email dukungan.
- `thread.getMessages()`: Mendapatkan semua pesan dalam thread email.
- `message.getSubject()`, `message.getBody()`, `message.getFrom()`, `message.getDate()`: Mengekstrak subjek, isi, pengirim, dan tanggal dari pesan email.
- `Utilities.formatDate(…)`: Membuat ID tiket unik berdasarkan tanggal dan waktu email diterima.
- `sheet.appendRow([…])`: Menambahkan baris baru ke spreadsheet dengan data tiket.
- `thread.markRead()`: Menandai email sebagai sudah dibaca setelah diproses.
Langkah-langkah untuk menambahkan skrip ke Google Apps Script:
- Buka spreadsheet Google Anda.
- Klik “Ekstensi” > “Apps Script”.
- Salin dan tempel kode di atas ke editor skrip.
- Ganti `YOUR_SPREADSHEET_ID` dan `support@example.com` dengan nilai yang sesuai.
- Simpan skrip. Berikan nama yang deskriptif untuk skrip Anda (misalnya, “Buat Tiket”).
4.3 Menyiapkan Pemicu untuk Menjalankan Skrip Secara Otomatis
Untuk menjalankan skrip secara otomatis, Anda perlu menyiapkan pemicu. Pemicu memungkinkan skrip Anda dijalankan secara teratur, seperti setiap menit, setiap jam, atau setiap hari. Dalam hal ini, kita ingin menjalankan skrip secara teratur untuk memeriksa email yang masuk dan membuat tiket baru.
Langkah-langkah untuk menyiapkan pemicu:
- Di editor skrip, klik ikon jam (“Pemicu”).
- Klik “+ Tambah Pemicu”.
- Konfigurasikan pemicu dengan pengaturan berikut:
- Pilih fungsi yang akan dijalankan: `processNewTickets`
- Pilih sumber peristiwa: “Dari spreadsheet”
- Pilih jenis peristiwa: “Saat diedit” (Meskipun kita tidak mengedit spreadsheet secara langsung melalui pemicu ini, ini sering menjadi pilihan paling stabil untuk pemicu berbasis waktu)
- Pilih notifikasi: “Segera” (atau sesuai preferensi Anda)
- Simpan pemicu.
Google Apps Script akan meminta Anda untuk memberikan izin untuk menjalankan skrip. Tinjau izin dengan cermat dan berikan akses yang diperlukan.
4.4 Membuat Antarmuka Pengguna Sederhana (Opsional, tetapi Direkomendasikan)
Meskipun skrip dasar di atas berfungsi, memiliki antarmuka pengguna (UI) sederhana dapat sangat meningkatkan kegunaan sistem ticketing Anda. Anda dapat membuat UI dasar di dalam Google Sheets itu sendiri menggunakan fitur validasi data dan format bersyarat atau menggunakan Google Apps Script HTML Service untuk membuat UI yang lebih canggih di bilah samping Google Sheets.
Contoh menggunakan validasi data di Google Sheets:
- Buat Daftar Drop-Down untuk Status: Di sheet terpisah, buat daftar status tiket yang valid (misalnya, “Baru”, “Sedang Diproses”, “Tertunda”, “Diselesaikan”, “Ditutup”).
- Terapkan Validasi Data: Pilih kolom “Status” di sheet tiket Anda. Klik “Data” > “Validasi data”. Pilih “Daftar dari rentang” dan tentukan rentang yang berisi daftar status Anda. Pilih “Tampilkan daftar drop-down di sel”. Ini akan memungkinkan pengguna untuk memilih status dari daftar yang telah ditentukan sebelumnya, mengurangi kesalahan dan memastikan konsistensi.
Contoh menggunakan Google Apps Script HTML Service (lebih rumit, tetapi menawarkan fleksibilitas yang lebih besar):
Ini melibatkan pembuatan file HTML dan Google Apps Script yang berinteraksi untuk menampilkan antarmuka di bilah samping Google Sheets. UI dapat menampilkan daftar tiket, memungkinkan pengguna untuk memfilter, mengurutkan, dan memperbarui status dan informasi lainnya. Ini berada di luar cakupan panduan langkah demi langkah terperinci di sini, tetapi ada banyak tutorial daring yang tersedia tentang menggunakan HTML Service untuk membuat UI kustom di Google Sheets.
4.5 Menambahkan Fungsionalitas untuk Pembaruan Status Tiket dan Notifikasi
Untuk membuat sistem ticketing yang lebih komprehensif, Anda dapat menambahkan fungsionalitas untuk pembaruan status tiket dan notifikasi. Misalnya, Anda dapat mengirim email notifikasi ke agen dukungan ketika tiket baru ditugaskan kepada mereka, atau ke pelanggan ketika status tiket mereka diperbarui.
Berikut adalah contoh skrip untuk mengirim email notifikasi ketika status tiket diperbarui:
“`javascript
function onEdit(e) {
// Dapatkan rentang yang diedit.
var range = e.range;
var sheet = range.getSheet();
// Periksa apakah sheetnya adalah sheet tiket dan kolom yang diedit adalah kolom “Status”.
if (sheet.getName() == ‘Sheet1’ && range.getColumn() == 5) { // Asumsi kolom 5 adalah kolom “Status”
// Dapatkan baris yang diedit.
var row = range.getRow();
// Dapatkan ID tiket, status, dan ditugaskan ke.
var ticketId = sheet.getRange(row, 1).getValue();
var status = range.getValue();
var assignedTo = sheet.getRange(row, 6).getValue();
// Dapatkan subjek dan pengirim.
var subject = sheet.getRange(row, 2).getValue();
var sender = sheet.getRange(row, 7).getValue();
// Kirim email notifikasi ke agen yang ditugaskan.
if (assignedTo != ”) {
var subjectAgent = ‘Tiket Baru Ditugaskan: ‘ + ticketId + ‘ – ‘ + subject;
var bodyAgent = ‘Tiket ‘ + ticketId + ‘ telah ditugaskan kepada Anda.\n\nSubjek: ‘ + subject + ‘\nStatus: ‘ + status + ‘\n\nLihat tiket di: [Tautan ke spreadsheet]’; // Ganti dengan tautan yang sebenarnya ke spreadsheet
MailApp.sendEmail(assignedTo, subjectAgent, bodyAgent);
}
// Kirim email notifikasi ke pengirim.
var subjectSender = ‘Pembaruan Tiket: ‘ + ticketId + ‘ – ‘ + subject;
var bodySender = ‘Status tiket Anda (‘ + ticketId + ‘) telah diperbarui menjadi: ‘ + status + ‘\n\nTerima kasih atas kesabaran Anda.’;
MailApp.sendEmail(sender, subjectSender, bodySender);
}
}
“`
Penjelasan Skrip:
- `onEdit(e)`: Fungsi yang dipicu setiap kali spreadsheet diedit.
- `e.range`: Rentang yang diedit.
- `e.range.getSheet()`: Sheet yang diedit.
- `sheet.getName() == ‘Sheet1’ && range.getColumn() == 5`: Memeriksa apakah sheet tersebut adalah sheet tiket dan kolom yang diedit adalah kolom “Status”. Ganti `’Sheet1’` dan `5` dengan nilai yang sesuai.
- `range.getRow()`: Baris yang diedit.
- `sheet.getRange(row, 1).getValue()`, dll.: Mendapatkan nilai dari sel yang berbeda di baris yang diedit.
- `MailApp.sendEmail(recipient, subject, body)`: Mengirim email notifikasi.
Langkah-langkah untuk menambahkan skrip notifikasi ke Google Apps Script:
- Buka editor skrip untuk spreadsheet Anda.
- Salin dan tempel kode di atas ke editor skrip.
- Ganti `’Sheet1’` dan `5` dengan nilai yang sesuai.
- Simpan skrip.
Penting: Skrip `onEdit` adalah pemicu *sederhana*. Pemicu sederhana memiliki batasan tertentu, seperti tidak dapat mengakses layanan yang memerlukan otorisasi pengguna (misalnya, layanan eksternal). Untuk fungsionalitas yang lebih canggih, Anda mungkin perlu menggunakan pemicu *yang dapat diinstal*. Pemicu yang dapat diinstal memerlukan otorisasi dan menawarkan lebih banyak fleksibilitas.
5. Kode Contoh dan Penjelasan
Bagian ini menyediakan lebih banyak contoh kode dan penjelasan untuk fungsionalitas utama:
5.1 Skrip untuk Membaca Email yang Masuk (Contoh yang Lebih Mendalam)
Skrip berikut menunjukkan cara membaca email yang masuk dan mengekstrak informasi yang lebih rinci:
“`javascript
function processNewTicketsAdvanced() {
var SUPPORT_EMAIL = ‘support@example.com’;
var SPREADSHEET_ID = ‘YOUR_SPREADSHEET_ID’;
var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(‘Sheet1’);
var threads = GmailApp.search(‘to:’ + SUPPORT_EMAIL + ‘ is:unread’);
for (var i = 0; i < threads.length; i++) { var thread = threads[i]; var messages = thread.getMessages(); var message = messages[0]; var subject = message.getSubject(); var body = message.getBody(); var sender = message.getFrom(); var date = message.getDate(); var ticketId = '#' + Utilities.formatDate(date, Session.getTimeZone(), 'yyMMddHHmmss'); // Coba ekstrak informasi tambahan dari body email (Contoh: Prioritas, Kategori) var priority = extractValue(body, 'Prioritas:'); var category = extractValue(body, 'Kategori:'); sheet.appendRow([ ticketId, subject, body, priority || 'Rendah', // Gunakan 'Rendah' sebagai default jika tidak ditemukan 'Baru', '', sender, date, '', '', category || 'Lain-lain', // Gunakan 'Lain-lain' sebagai default jika tidak ditemukan '' ]); thread.markRead(); } } // Fungsi utilitas untuk mengekstrak nilai dari body email function extractValue(text, label) { var startIndex = text.indexOf(label); if (startIndex == -1) { return ''; } startIndex += label.length; var endIndex = text.indexOf('\n', startIndex); // Asumsi nilai berakhir di baris baru if (endIndex == -1) { endIndex = text.length; // Jika tidak ada baris baru, baca hingga akhir teks } return text.substring(startIndex, endIndex).trim(); } ```
Skrip ini memperkenalkan fungsi `extractValue` yang mencoba mengekstrak nilai untuk Prioritas dan Kategori dari body email berdasarkan label yang ditentukan. Ini berguna jika Anda meminta pelanggan untuk menyertakan informasi ini dalam email mereka menggunakan format yang konsisten.
5.2 Skrip untuk Memperbarui Status Tiket
Skrip berikut menunjukkan cara memperbarui status tiket berdasarkan input pengguna (misalnya, melalui antarmuka pengguna):
“`javascript
function updateTicketStatus(ticketId, newStatus) {
var SPREADSHEET_ID = ‘YOUR_SPREADSHEET_ID’;
var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(‘Sheet1’);
// Cari tiket berdasarkan ID tiket
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) { // Mulai dari 1 untuk melewati header
if (data[i][0] == ticketId) {
// Perbarui status
sheet.getRange(i + 1, 5).setValue(newStatus); // Asumsi kolom 5 adalah kolom "Status"
return true; // Kembalikan true jika tiket ditemukan dan diperbarui
}
}
return false; // Kembalikan false jika tiket tidak ditemukan
}
```
Fungsi `updateTicketStatus` membutuhkan ID tiket dan status baru sebagai input. Ia mencari tiket di spreadsheet dan memperbarui status jika tiket ditemukan.
6. Fitur Tingkat Lanjut (Opsional)
Setelah Anda membuat sistem ticketing dasar yang berfungsi, Anda dapat menambahkan fitur tingkat lanjut untuk meningkatkan fungsionalitas dan efisiensi. Berikut adalah beberapa contoh:
6.1 Otomatisasi Penugasan Tiket Berdasarkan Kategori atau Kata Kunci
Anda dapat mengotomatiskan penugasan tiket berdasarkan kategori atau kata kunci dalam subjek atau isi email. Misalnya, Anda dapat menetapkan tiket yang mengandung kata kunci “kata sandi” ke agen dukungan khusus yang menangani masalah kata sandi.
6.2 Integrasi dengan Chatbot untuk Pengiriman Tiket Awal
Integrasikan sistem ticketing Anda dengan chatbot untuk mengotomatiskan pengiriman tiket awal. Chatbot dapat mengumpulkan informasi dari pelanggan dan membuat tiket baru di spreadsheet Google.
6.3 Laporan dan Analisis untuk Melacak Kinerja Dukungan
Buat laporan dan analisis untuk melacak kinerja dukungan. Anda dapat melacak metrik seperti waktu penyelesaian rata-rata, jumlah tiket yang diselesaikan, dan kepuasan pelanggan.
6.4 Menambahkan Tingkat Akses Pengguna (Admin, Agen, Pelanggan)
Terapkan tingkat akses pengguna untuk mengontrol siapa yang dapat mengakses dan memodifikasi data tiket. Misalnya, Anda dapat memberikan akses admin kepada manajer, akses agen kepada agen dukungan, dan akses pelanggan kepada pelanggan.
7. Praktik Terbaik
Saat Anda membangun sistem ticketing DIY Anda, penting untuk mengikuti praktik terbaik untuk memastikan keamanan, keandalan, dan kinerja:
7.1 Keamanan: Mengamankan Skrip dan Data Anda
- Batasi Akses: Batasi akses ke spreadsheet Google dan skrip Google Apps Script Anda hanya kepada pengguna yang berwenang.
- Gunakan Kata Sandi yang Kuat: Gunakan kata sandi yang kuat dan unik untuk akun Google Anda.
- Jangan Menyimpan Informasi Sensitif: Hindari menyimpan informasi sensitif (misalnya, kata sandi, nomor kartu kredit) di spreadsheet Google.
- Tinjau Izin: Tinjau izin yang diminta oleh skrip Google Apps Script Anda dengan cermat dan berikan hanya akses yang diperlukan.
7.2 Penanganan Kesalahan: Menerapkan Penanganan Kesalahan yang Tepat untuk Mencegah Masalah
- Gunakan Blok Coba-Tangkap: Gunakan blok coba-tangkap untuk menangani pengecualian dan mencegah skrip Anda mogok.
- Catat Kesalahan: Catat kesalahan ke sheet terpisah atau layanan pencatatan kesalahan sehingga Anda dapat mendiagnosis dan memperbaiki masalah dengan cepat.
- Validasi Input: Validasi input pengguna untuk mencegah kesalahan dan memastikan bahwa data tersebut diformat dengan benar.
7.3 Optimalisasi: Mengoptimalkan Kode untuk Kinerja
- Gunakan Cache: Gunakan cache untuk menyimpan data yang sering diakses dan mengurangi jumlah panggilan ke spreadsheet Google.
- Hindari Perulangan: Hindari perulangan jika memungkinkan. Gunakan fungsi bawaan untuk memproses data dalam jumlah besar.
- Kurangi Panggilan API: Kurangi jumlah panggilan API yang dibuat oleh skrip Anda. Gabungkan panggilan API sebanyak mungkin.
7.4 Dokumentasi: Mendokumentasikan Kode dan Konfigurasi Anda
- Komentari Kode: Komentari kode Anda untuk menjelaskan apa yang dilakukannya.
- Buat Dokumentasi: Buat dokumentasi untuk sistem ticketing Anda, termasuk informasi tentang cara mengonfigurasi, menggunakan, dan memeliharanya.
8. Troubleshooting
Berikut adalah beberapa masalah umum dan solusinya saat membangun sistem ticketing DIY dengan Google Apps Script:
- Skrip Tidak Berjalan: Pastikan bahwa pemicu diatur dengan benar dan bahwa Anda telah memberikan izin yang diperlukan. Periksa log eksekusi skrip untuk kesalahan.
- Email Tidak Diproses: Pastikan bahwa alamat email dukungan sudah benar dan bahwa email tersebut tidak difilter sebagai spam.
- Data Tidak Disimpan ke Spreadsheet: Pastikan bahwa ID Spreadsheet sudah benar dan bahwa skrip tersebut memiliki izin untuk menulis ke spreadsheet.
- Notifikasi Email Tidak Dikirim: Pastikan bahwa alamat email penerima sudah benar dan bahwa skrip tersebut memiliki izin untuk mengirim email.
Tips Debugging Google Apps Script:
- Gunakan Logger: Gunakan layanan `Logger.log()` untuk mencetak variabel dan pesan debug ke log eksekusi.
- Gunakan Debugger: Gunakan debugger bawaan di editor skrip untuk menelusuri kode Anda selangkah demi selangkah dan memeriksa variabel.
- Periksa Log Eksekusi: Periksa log eksekusi untuk melihat apakah ada kesalahan atau pengecualian yang terjadi.
9. Kesimpulan
Membangun sistem ticketing DIY dengan Google Apps Script adalah cara yang hemat biaya dan fleksibel untuk mengelola permintaan dukungan pelanggan Anda. Dengan mengikuti langkah-langkah yang diuraikan dalam posting blog ini, Anda dapat membuat sistem ticketing yang disesuaikan dengan kebutuhan spesifik bisnis Anda.
Langkah Selanjutnya:
- Bereksperimen dengan Fitur Tingkat Lanjut: Jelajahi fitur tingkat lanjut seperti otomatisasi penugasan tiket, integrasi chatbot, dan pelaporan.
- Bagikan Sistem Anda: Bagikan sistem ticketing Anda dengan tim dukungan Anda dan dapatkan umpan balik.
- Terus Tingkatkan: Terus tingkatkan sistem ticketing Anda berdasarkan umpan balik dan kebutuhan bisnis yang berubah.