Auto Reply Data Kelulusan Spreadsheet ke Whatsapp Sesuai Kategori Permintaan
1. Copy Spreadsheet (Klik Disini)
2. Buatlah folder pada Google Drive dan siapkan file pendukung (Contoh : File/Berkas)
3. Pada Spreadsheet yang telah dicopy di atas terdapat 2 sheet yaitu :
- Sheet Data (Akan terisi otomatis dari pesan Whatsapp)
- Kolom (A) Kode Cheking
- Kolom (B) Nomor Ujian
- Kolom (C) Nama
- Kolom (D) Nomor Absen
- Sheet Nilai (Lengkapi data-data untuk di kirim ke Whatsapp sesuai permintaan)
- Kolom (A) Nomor Ujian
- Kolom (B) Nama Siswa
- Kolom (C) Nilai 1
- Kolom (D) Nilai 2
- Kolom (E) Nilai 3
- Kolom (F) Nilai 4
- Kolom (G) Status
- Kolom (H) URL File
4. Buatlah server untuk mengkonesikan ke Whatsapp menggunakan Google Apps Script, dengan cara klik menu Ekstensi/Extension lalu pilih Apps Script.
5. Pada lembar kerja Apps Script terdapat file default yaitu
- Server.gs
6. Copy dan pastekan script di bawah ini ke Server.gs
Masukkan Password Untuk Melihat Script (Password ada di dalam video)
//Source code www.javabitpro.com
function doPost(e) {
let sheetUrl = "URL_SPREADSHEET"; //Ganti URL Spreadsheet
let file = SpreadsheetApp.openByUrl(sheetUrl);
let dataSheet = file.getSheetByName("Data");
let nilaiSheet = file.getSheetByName("Nilai");
let req = JSON.stringify(e).replace(/\\/g, "").replace("}\"", "}").replace("\"{", "{");
let reqJson = JSON.parse(req);
let senderMessage = JSON.stringify(reqJson["postData"]["contents"]["senderMessage"]);
// Pemisah Pesan #
let parsedMessage = senderMessage.split("#");
let nomorujian = parsedMessage[1].trim();
let nama = parsedMessage[2].trim();
let kelas = parsedMessage[3].trim();
let noabsen = parsedMessage[4].trim().slice(0, -1);
// Kode Cheking
let row = dataSheet.getLastRow() + 1;
let prefixKodeChecking = 2024000;
let kodeCheking = `ID-${prefixKodeChecking + row - 1}`;
// Insert data
dataSheet.getRange(`A${row}`).setValue(kodeCheking);
dataSheet.getRange(`B${row}`).setValue(nomorujian);
dataSheet.getRange(`C${row}`).setValue(nama);
dataSheet.getRange(`D${row}`).setValue(kelas);
dataSheet.getRange(`E${row}`).setValue(noabsen);
// Mengambil nilai dari sheet Nilai sesuai dengan nomorujian
let nilaiRange = nilaiSheet.getRange("A:H");
let nilaiData = nilaiRange.getValues();
let nilaiIndex = nilaiData.findIndex(row => row[0] === nomorujian);
let namasiswa = nilaiIndex !== -1 ? nilaiData[nilaiIndex][1] : "Tidak ditemukan";
let nilai1 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][2] : "Tidak ditemukan";
let nilai2 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][3] : "Tidak ditemukan";
let nilai3 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][4] : "Tidak ditemukan";
let nilai4 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][5] : "Tidak ditemukan";
let status = nilaiIndex !== -1 ? nilaiData[nilaiIndex][6] : "Tidak ditemukan";
let urlFile = nilaiIndex !== -1 ? nilaiData[nilaiIndex][7] : "Tidak ditemukan";
// Respon
let response = {
data: [
{
message: `📢 *Pengumuman Nilai Ujian.*\nKode Cheking : ${kodeCheking} \nNomor Ujian : ${nomorujian} \nNama Siswa: ${namasiswa} \nKelas : ${kelas} \nNomor Absen: ${noabsen} \n\n📝 Nilai1: ${nilai1} \n📝 Nilai2: ${nilai2} \n📝 Nilai3: ${nilai3} \n📝 Nilai4: ${nilai4} \n\n*_Status: ${status}_* \n\n👉 Donwload File Hasil Ujian: ${urlFile}`
// Simbol \n adalah "Baris Baru atau New Line"
// Simbol * adalah "Membuat Teks Tebal atau Bold"
// Simbol _ adalah "Membuat Teks Miring atau Italic"
}
]
};
return ContentService.createTextOutput(JSON.stringify(response));
}
//Source code www.javabitpro.com
function doPost(e) {
let sheetUrl = "URL_SPREADSHEET"; //Ganti URL Spreadsheet
let file = SpreadsheetApp.openByUrl(sheetUrl);
let dataSheet = file.getSheetByName("Data");
let nilaiSheet = file.getSheetByName("Nilai");
let req = JSON.stringify(e).replace(/\\/g, "").replace("}\"", "}").replace("\"{", "{");
let reqJson = JSON.parse(req);
let senderMessage = JSON.stringify(reqJson["postData"]["contents"]["senderMessage"]);
// Pemisah Pesan #
let parsedMessage = senderMessage.split("#");
let nomorujian = parsedMessage[1].trim();
let nama = parsedMessage[2].trim();
let kelas = parsedMessage[3].trim();
let noabsen = parsedMessage[4].trim().slice(0, -1);
// Kode Cheking
let row = dataSheet.getLastRow() + 1;
let prefixKodeChecking = 2024000;
let kodeCheking = `ID-${prefixKodeChecking + row - 1}`;
// Insert data
dataSheet.getRange(`A${row}`).setValue(kodeCheking);
dataSheet.getRange(`B${row}`).setValue(nomorujian);
dataSheet.getRange(`C${row}`).setValue(nama);
dataSheet.getRange(`D${row}`).setValue(kelas);
dataSheet.getRange(`E${row}`).setValue(noabsen);
// Mengambil nilai dari sheet Nilai sesuai dengan nomorujian
let nilaiRange = nilaiSheet.getRange("A:H");
let nilaiData = nilaiRange.getValues();
let nilaiIndex = nilaiData.findIndex(row => row[0] === nomorujian);
let namasiswa = nilaiIndex !== -1 ? nilaiData[nilaiIndex][1] : "Tidak ditemukan";
let nilai1 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][2] : "Tidak ditemukan";
let nilai2 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][3] : "Tidak ditemukan";
let nilai3 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][4] : "Tidak ditemukan";
let nilai4 = nilaiIndex !== -1 ? nilaiData[nilaiIndex][5] : "Tidak ditemukan";
let status = nilaiIndex !== -1 ? nilaiData[nilaiIndex][6] : "Tidak ditemukan";
let urlFile = nilaiIndex !== -1 ? nilaiData[nilaiIndex][7] : "Tidak ditemukan";
// Respon
let response = {
data: [
{
message: `📢 *Pengumuman Nilai Ujian.*\nKode Cheking : ${kodeCheking} \nNomor Ujian : ${nomorujian} \nNama Siswa: ${namasiswa} \nKelas : ${kelas} \nNomor Absen: ${noabsen} \n\n📝 Nilai1: ${nilai1} \n📝 Nilai2: ${nilai2} \n📝 Nilai3: ${nilai3} \n📝 Nilai4: ${nilai4} \n\n*_Status: ${status}_* \n\n👉 Donwload File Hasil Ujian: ${urlFile}`
// Simbol \n adalah "Baris Baru atau New Line"
// Simbol * adalah "Membuat Teks Tebal atau Bold"
// Simbol _ adalah "Membuat Teks Miring atau Italic"
}
]
};
return ContentService.createTextOutput(JSON.stringify(response));
}
7. Klik ikon Save.
8. Klik tombol Terapkan/Deploy lalu pilih Deployment baru/New deployment.
9. Pastikan jenisnya adalah Aplikasi web, hak aksesnya adalah Siapa saja/Anyone lalu klik Terapkan/Deploy.
10. Salin dan simpan URL yang sudah di Deploy.
11. Persiapkan Handphone Admin sebagai server, dan pastikan sudah menginstall 2 Aplikasi dari Playstore yaitu :
1) Klik I AGREE
2) Aftikan notifikasi
3) Hapus semua Rules yanga ada
4) Klik tanda (+)
5) Pastikan Rule nya di Centang/Aktif
6) Pilihlah jenis Whatsapp yang terinstal di handphone
7) Isikan Pattern dengan "Chek" (Pattern ini adalah pesan harus dimulai dengan teks "Chek")
8) Pilih Start With (Berfungsi untuk Pattern adalah teks paling depan)
9) Centang konek Server
10) Pastekan URL yang sudah di Deploy
11) Pilih Centng/Buat
12) Rule yang aktif hanya ada satu.
13) Refresh dan pastikan Auto Reply aktif.
14) Pastikan pada layar notofikasi Auto Reply Chat Bot sudah aktif.