X

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);
}
adikiss: i'm just an ordinary person | Direktur PT. Adya Global Media | Telegram : <a href="https://t.me/adikiss">t.me/adikiss</a> | Whatsapp : <a href="https://wa.me/6285640206067">wa.me/6285640206067</a> | Facebook : <a href="https://fb.me/adikiswanto">fb.me/adikiswanto</a>
Related Post
X

Headline

You can control the ways in which we improve and personalize your experience. Please choose whether you wish to allow the following:

Privacy Settings