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