18 Mei 2024
Study kasus form PPDB, insert google form ke sheet create pdf dan kirim ke WA tanpa autocrat, autogenerate nomor pendaftaran.
study kasus form PPDB, insert google form ke sheet create pdf dan kirim ke WA tanpa autocrat, autogenerate nomor pendaftaran.
template form https://docs.google.com/forms/d/1Hace4XNqc9_rzla3Cn663LS6Qx1mHBUAN1YkNciEzMU/copy
template formulir pdf https://docs.google.com/document/d/1TeTh3EUdrxubpw4YL6iUcjE5OZBkeIKmuV-RnQB2qPw/copy
script :
function generatePDF() {
// ID dari Google Form, Google Docs Template, dan Google Sheet
var form = FormApp.openById('xxx'); // ID dari Google Form
var templateId = 'xxx'; // Template ID dari formulir
var folderId = 'xxx'; // folder ID dari folder yang menyimpan file pdf
var sheetId = 'xx'; // ID dari Google Sheet yang menyimpan tanggapan
// Ambil tanggapan terbaru dari formulir
var responses = form.getResponses();
var latestResponse = responses[responses.length - 1];
var items = latestResponse.getItemResponses();
// Buat objek data dari tanggapan formulir
var data = {};
items.forEach(function(item) {
data[item.getItem().getTitle()] = item.getResponse();
});
// Ambil nomor baris terakhir dari Google Sheet
var sheet = SpreadsheetApp.openById(sheetId).getSheets()[0];
var lastRow = sheet.getLastRow();
// Buat nomor pendaftaran dengan zero padding
var nomorPendaftaran = 'PPDB-' + ('000' + lastRow).slice(-4);
// Masukkan nomor pendaftaran ke dalam data
data['Nomor Pendaftaran'] = nomorPendaftaran;
// Buka template dokumen
var templateDoc = DriveApp.getFileById(templateId).makeCopy();
var doc = DocumentApp.openById(templateDoc.getId());
var body = doc.getBody();
// Ganti placeholder dengan data yang sesuai
body.replaceText('{nama}', data['Nama Lengkap']);
body.replaceText('{jenis_kelamin}', data['Jenis Kelamin']);
body.replaceText('{tempat_lahir}', data['Tempat Lahir']);
body.replaceText('{tanggal_lahir}', data['Tanggal Lahir']);
body.replaceText('{nisn}', data['NISN']);
body.replaceText('{nik}', data['NIK']);
body.replaceText('{agama}', data['Agama']);
body.replaceText('{alamat}', data['Alamat']);
body.replaceText('{nama_ayah}', data['Nama Ayah']);
body.replaceText('{nama_ibu}', data['Nama Ibu']);
body.replaceText('{alamat_ayah}', data['Alamat Ayah']);
body.replaceText('{alamat_ibu}', data['Alamat Ibu']);
body.replaceText('{no_telp_ayah}', data['No Telp. / HP Ayah']);
body.replaceText('{no_telp_ibu}', data['No Telp. / HP Ibu']);
body.replaceText('{pekerjaan_ayah}', data['Pekerjaan Ayah']);
body.replaceText('{pekerjaan_ibu}', data['Pekerjaan Ibu']);
body.replaceText('{pendidikan_terakhir_ayah}', data['Pendidikan Terakhir Ayah']);
body.replaceText('{pendidikan_terakhir_ibu}', data['Pendidikan Terakhir Ibu']);
body.replaceText('{nomor_pendaftaran}', data['Nomor Pendaftaran']);
body.replaceText('{nomor_hp}', data['Nomor HP']);
// Simpan dan tutup dokumen
doc.saveAndClose();
// Konversi dokumen ke PDF
var pdf = DriveApp.getFileById(templateDoc.getId()).getAs('application/pdf');
// Simpan PDF ke folder yang ditentukan dengan nama file sesuai nomor pendaftaran
var folder = DriveApp.getFolderById(folderId);
var pdfFile = folder.createFile(pdf).setName(nomorPendaftaran + ".pdf");
// Dapatkan ID file PDF yang baru disimpan
var pdfFileId = pdfFile.getId();
// Dapatkan URL file PDF yang baru disimpan
var pdfFileUrl = pdfFile.getUrl();
var targetCell = sheet.getRange(lastRow, 22); // Menggunakan kolom untuk menyimpan ID File
var targetCellURL = sheet.getRange(lastRow, 23); // Menggunakan kolom untuk menyimpan URL FILE
targetCell.setValue(nomorPendaftaran);
targetCellURL.setValue(pdfFileUrl);
// Hapus salinan template dokumen
DriveApp.getFileById(templateDoc.getId()).setTrashed(true);
var phoneNumber = data['Nomor HP'];
var message = 'terima kasih telah mengisi form';
var file = `https://drive.google.com/uc?id=${pdfFileId}&export=download`;
sendWaFile(phoneNumber, message, file);
sendWaText(phoneNumber, message);
}
function sendWaFile(number, message, file) {
var idDevice = "xxx"; // Ganti dengan ID perangkat Anda
var formdata = {
"device_id" : "" + idDevice,
"number" : "" + number,
"message" : "" + message,
"file" : "" + file,
};
var requestOptions = {
method: 'POST',
contentType: 'application/json',
payload: JSON.stringify(formdata),
redirect: 'follow'
};
var response = UrlFetchApp.fetch("https://app.whacenter.com/api/send", requestOptions);
Logger.log(response);
}
function sendWaText(number, message) {
var idDevice = "xxx"; // Ganti dengan ID perangkat Anda
var formdata = {
"device_id" : "" + idDevice,
"number" : "" + number,
"message" : "" + message,
};
var requestOptions = {
method: 'POST',
contentType: 'application/json',
payload: JSON.stringify(formdata),
redirect: 'follow'
};
var response = UrlFetchApp.fetch("https://app.whacenter.com/api/send", requestOptions);
Logger.log(response);
}
Komentar terbaru