Contoh

Seperti yang dikatakan mas Taufik Nurrohman, bahwa sbenarnya Google Doc bukan merupakan layanan semacam ini, namun dengan memanfaatkan fiturnya Formulir Kontak Google Doc kita bisa membuat form kontak untuk blogger.
Sebenarnya cara kerja dari sistim ini ialah mengirimkan data dari tabel spreadsheet yang masuk dari Formulir Kontak Google Doc ke Email kita.
Dan hal ini juga menjadi salah satu solusi bagi para pengguna Blogspot yang telah menyembunyikan JS Bloggernya namun ingin menggunakan fitur Kontak Form, karena seperti yang kita ketahui, apabila JS bawaan blogspot kita sembunyikan maka beberapa fiturnya tidak dapat bekerja lagi,

Okelah kembali ke topik, kali ini saya akan memberikan panduan lengkap membuat Kontak Form ini dari awal sampai akhir,


Membuat Formulir Kontak


Langkah pertama, anda harus membuat formulir kontak menggunakan Google Doc.
Silahkan menuju halaman dasboard Google Drive anda, dan buatlah sebuah formulir

Membuat Formulir

Silahkan setting judul dan deskripsi formulir, serta buatlah beberapa kotak pertanyaan yang umum terdapat pada formulir kontak di web. Contohnya anda bisa menggunakan ini: Perihal, Nama, Email, Alamat Web dan Pesan, untuk menambahkan kotak pertanyaan, klik Tambahkan Item dan set Jenis Pertanyaannya menjadi Teks:

Mengisi Formulir

Pada bagian Laman Konfirmasi, tuliskan pesan terima kasih yang ingin Anda tampilkan ketika pesan telah berhasil terkirim:

google-drive-sent-message-text-setup

Sekarang, pilih menu tab Tanggapan dan pilih lagi Pilih Tujuan Tanggapan lalu cek opsi Spreasheet baru. Berikan judul, misalnya Data1 Tanggapan, dan uncek Selalu buat spreadsheet baru:

Data1 Tanggapan

Klik tombol Buat. dan tunggu sampai tombol Lihat Tanggapan muncul. tombol Lihat Tanggapan akan muncul untuk menggantikan tombol Pilih Tujuan Tanggapan. Klik tombol tersebut untuk melihat spreadsheet formulir kontak Anda.

Mengelola Data yang Masuk


Setelah spreadsheet selesai dibuat, sekarang adalah saatnya untuk mengelola data yang masuk agar setiap kali data baru terkirim ke dokumen, maka salinan data tersebut bisa langsung masuk ke kotak pesan email.

Pada Halaman Data1 Tanggapan yang anda buat pada langkah pertama, Pilih menu Alat » Editor skrip:

Data Tanggapan

Anda akan dibawa menuju halaman proyek tak berjudul. Pada formulir bernama Kode.gs tempelkan JavaScript ini:

function sendFormByEmail(e) {

  // Tentukan teks subjek/perihal yang nantinya akan muncul pada pesan masuk email setiap kali pesan baru terkirim
  var emailSubject = "PESAN BARU!";

  // Tentukan alamat email di sini atau beberapa alamat email sekaligus yang dipisahkan dengan tanda koma
  var yourEmail = "email@domain.com";

  // Masukkan kunci spreadsheet yang terhubung dengan formulir kontak ini
  // Bisa ditemukan pada URL ketika Anda melihat spreadsheet tersebut
  var docKey = "1rSY38gC56-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

  // Jika Anda menginginkan skrip ini mengirim data secara otomatis ke semua editor sheet, set nilainya menjadi `1`
  // Jika Anda hanya ingin mengirimkan data ke `yourEmail`, set nilainya menjadi `0`
  var useEditors = 1;

  // Apakah Anda telah menambahkan kolom yang ternyata tidak Anda gunakan pada formulir?
  // Jika ya, set nilai ini ke nomor urut kolom terakhir yang Anda tambahkan pada spreadsheet.
  // Sebagai contoh: Kolom `C` ada pada nomor urut ke 3
  var extraColumns = 0;

  if (useEditors) {
    var editors = DocsList.getFileById(docKey).getEditors();
    var notify = (editors) ? editors.join(',') : yourEmail;
  } else {
    var notify = yourEmail;
  }

  // Variabel `e` memegang semua data di dalam array.
  // Loop semua data di dalam array dan sisipkan nilainya ke pesan.
  var s = SpreadsheetApp.getActive().getSheetByName("Data1");
  if (extraColumns) {
    var headers = s.getRange(1, 1, 1, extraColumns).getValues()[0];
  } else {
    var headers = s.getRange(1, 1, 1, s.getLastColumn()).getValues()[0];
    var message = "";
  }
  for (var i in headers) {
    message += headers[i] + ' = ' + e.values[i].toString() + '\n';
  }
  MailApp.sendEmail(notify, emailSubject, message);
}

Tentukan subjek email yang akan masuk ke kotak masuk pesan, alamat email anda dan kunci/ID spreadsheet yang tadi Anda buat. ID spreadsheet bisa Anda temukan pada URL spreadsheet terkait:

https://docs.google.com/spreadsheets/d/9wTZ19gC56-XXXXXXXXXXXXXXXXXX/edit#gid=3


Data1 adalah nama dari spreadsheets yang anda buat tadi, untuk melihat nya ada dibawah di pojok kiri, apabila namanya bukan Data1, silahkan ubah nama nya menjadi Data1:

Data1

Sekarang pilih menu Sumber Daya » Pemicu proyek saat ini. Akan muncul kata “No triggers set up. Click to add one now”. Klik pada tautan tersebut untuk menambahkan trigger. Pada kolom Events, pastikan opsi yang terpilih adalah From spreadsheet dan On form submit.

Autorisasi

Klik pada tautan opsi notification. Pada opsi ke dua di kotak dialog Execution failure notifications, pilih immediately.

Klik OK.

Akan muncul pesan authorisasi skrip. Klik tombol Terima/Authorize. Ini akan menyetujui authorisasi untuk trigger yang Anda buat.

Anda akan dibawa kembali menuju layar editor. Klik Simpan/Save. Sekarang Anda sudah bisa mencoba mengirimkan pesan melalui formulir kontak buatan Anda. Pembuatan formulir kontak ini sudah selesai, untuk mencobanya bisa dilakukan dengan klik menu Lihat bentuk jadi .

Tidak Mengirimkan pesan apabila Email terdeteksi sebagai Spam

Karena formulir kontak Google Doc ini tidak memiliki captcha maka seringkali Anda akan mendapatkan pesan-pesan spam atau pesan yang aneh-aneh. Berikut ini adalah sebuah cara untuk membuat agar pesan spam tidak akan dikirimkan ke email Anda:

function sendFormByEmail(e) {

  // Tentukan teks subjek/perihal yang nantinya akan muncul pada pesan masuk email setiap kali pesan baru terkirim
  var emailSubject = "PESAN BARU!";

  // Tentukan alamat email di sini atau beberapa alamat email sekaligus yang dipisahkan dengan tanda koma
  var yourEmail = "email@domain.com";

  // Masukkan kunci spreadsheet yang terhubung dengan formulir kontak ini
  // Bisa ditemukan pada URL ketika Anda melihat spreadsheet tersebut
  var docKey = "0Ah0bOy8H_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

  // Jika Anda menginginkan skrip ini mengirim data secara otomatis ke semua editor sheet, set nilainya menjadi `1`
  // Jika Anda hanya ingin mengirimkan data ke `yourEmail`, set nilainya menjadi `0`
  var useEditors = 1;

  // Apakah Anda telah menambahkan kolom yang ternyata tidak Anda gunakan pada formulir?
  // Jika ya, set nilai ini ke nomor urut kolom terakhir yang Anda tambahkan pada spreadsheet.
  // Sebagai contoh: Kolom `C` ada pada nomor urut ke 3
  var extraColumns = 0;

  if (useEditors) {
    var editors = DocsList.getFileById(docKey).getEditors();
    var notify = (editors) ? editors.join(',') : yourEmail;
  } else {
    var notify = yourEmail;
  }

  // Cek pesan spam: `0` berarti tidak ada spam
  var isSpam = 0;

  // Isi dengan pola-pola spam yang ingin Anda blokir dalam format regular ekspresi
  var spamKeywords = [
  "bajingan",
  "sex",
  "www.nama_web_1.com",
  "www.nama_web_2.com",
  "cabe-cabean",
  "spam"
  ];

  // Variabel `e` memegang semua data di dalam array.
  // Loop semua data di dalam array dan sisipkan nilainya ke pesan.
  var s = SpreadsheetApp.getActive().getSheetByName("Data1");
  if (extraColumns) {
    var headers = s.getRange(1, 1, 1, extraColumns).getValues()[0];
  } else {
    var headers = s.getRange(1, 1, 1, s.getLastColumn()).getValues()[0];
    var message = "";
  }
  for (var i in headers) {
    message += headers[i] + ' = ' + e.values[i].toString() + '\n';
    for (var j = 0, sk = spamKeywords.length; j < sk; ++j) {
      // Jika data terdeteksi sebagai spam, tingkatkan nilai variabel `isSpam`
      if (spamKeywords[j].test(e.values[i].toString())) isSpam++;
    }
  }
  if (isSpam === 0) { // Kirimkan notifikasi jika nilai `isSpam` adalah `0`
    MailApp.sendEmail(notify, emailSubject, message);
  }
}

Anda bisa mengatur pola spam pada variabel spamKeywords sesuka hati dengan jumlah pola sebanyak yang Anda mau dalam bentuk regular ekspresi:
var spamKeywords = [
  "bajingan",
  "sex",
  "www.nama_web_1.com",
  "www.nama_web_2.com",
  "cabe-cabean",
  "spam"
  ];


Walaupun begitu, cara ini hanya bisa digunakan untuk mencegah terkirimnya ke pesan masuk email saja, dan tetap akan masuk pada data spreadsheet. Saya sarankan Anda untuk secara rutin membuka sheet terkait formulir kontak ini minimal setiap satu bulan sekali untuk menghapus data-data yang tidak diperlukan. Karena Saya tidak bisa menjamin tentang apa yang akan terjadi pada data Google Doc Anda jika jumlah data yang masuk nanti sudah terlalu besar.

Sumber sebagian gambar dan bacaan : www.dte.web.id/2013/09/membuat-formulir-kontak-google-doc-agar.html