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);
}