25 Jun 2016

Membuat Template Surat Online

Salam.

Saya sudah lama memikirkan kemungkinan pembuatan surat online. yang dimaksud surat online disini adalah: kita isi data-data tertentu di formulir online, kemudian secara otomatis sebuah template surat akan terisi dengan data-data kita tersebut.

saya berpikir, google form pasti bisa melakukan ini. dan, benar saja, kita bisa menginstall plug-in untuk menjalankan fungsi tersebut. sayangnya, plug-in itu hanya free untuk 100 formulir setiap bulannya. saya khawatir itu tidak cukup, karena rencana saya membuat sistem surat online ini untuk dimasukkan dalam sistem di prodi kampus, yang kebutuhan akan surat menyuratnya pasti tinggi.

so, saya berpikir lagi, kalau plugin itu ada, maka pasti kita bisa membuat scriptnya. akhirnya, dengan kemampuan terbatas, saya bisa comot script dari sana sini.

dan berikut contoh hasilnya.

***

cara membuatnya:

1. buatlah template surat di google docs.
surat tersebut memuat key-key tertentu, yang akan digantikan otomatis melalui pengisian google form.



2. kemudian, buatlah sebuah google form, dengan form isian sesuai yang kita butuhkan. (lihat contoh di link atas)

3. buat response google sheet dari form tersebut.

4. buka response (google sheet), dan buka TOOLS > SCRIPT EDITOR



5. masukkan script dgn contoh di bawah ini.

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// adaptasi dari tjhouston, by incefurqan@gmail.com

// Get template from Google Docs and name it
var docTemplate = "IDTEMPLATEGOOGLEDOC"; // *** isi dengan ID template surat ***
var docName = "SuratOnline"; // *** isi dengan nama file yang diinginkan surat ketika dikirim email ***

// perintah trigger submit form
function onFormSubmit(e) {

//isian dari form yang ingin dimasukkan
var email_address = e.values[1]; // *** [1] adl posisi urutan isian form ***
var nama = e.values[2];
var nomorim = e.values[3];
var tujuan = e.values[4];
var alamat_tujuan = e.values[5];
var tanggal_surat = e.values[6];

// Get document template, copy it as a new temp doc, and save the Doc’s id
var copyId = DriveApp.getFileById(docTemplate)
.makeCopy(docName+' for '+nama)
.getId();
  
// Perintah untuk membuka temporary document
var copyDoc = DocumentApp.openById(copyId);

// Get the document’s body section
var copyBody = copyDoc.getActiveSection();

// Key di google doc yang ingin diganti dengan variabel form
copyBody.replaceText('keyNama', nama);
copyBody.replaceText('keyNim', nomorim);
copyBody.replaceText('keyTujuan', tujuan);
copyBody.replaceText('keyAlamatTujuan', alamat_tujuan);
copyBody.replaceText('keyTanggal', tanggal_surat);

// Save and close the temporary document
copyDoc.saveAndClose();

// Convert temporary document ke PDF
var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");

// Attach PDF and send the email
var subject = "Surat Online"; // judul subjek email
var body = "Berikut Permintaan Surat atas nama " + nama + ""; // isi body email
MailApp.sendEmail(email_address, subject, body, {htmlBody: body, attachments: pdf});

// Delete temp file, biar tidak penuh di drive kita
DriveApp.getFileById(copyId).setTrashed(true);
}

PERHATIKAN:

- ID Template Google Doc adalah id di google form. jika anda membuka google docs, maka ada ID Docs tersebut di adress bar diatas.


- e.values[1] adalah isian pertama dari form anda, dst. lihat gambar di bawah.


- setelah code tersebut diubah seperlunya sesuai kebutuhan, maka klik RESOURCES > ALL YOUR TRIGGERS. disini kita akan mengaktifkan trigger dari script code ini. pilih jalur trigger seperti gambar di bawah.


- lalu klik notification, dan setting seperti gambar di bawah, lalu klik ok.



- selama pengaturan resources, akan muncul pop-up bahwa gdrive meminta izin otoritas, dan itu penting untuk dilakukan. jadi, izinkan script ini utk mengakses gdrive anda.

Selamat mencoba ya. jika masih ada yang dibingungkan, silakan contact me via email.

Good luck.








Previous Post
Next Post