Integrasi Google Form dan WhatsApp Menggunakan API KirimWA.id

3 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Integrasi Google Form dan WhatsApp
Integrasi Google Form dan WhatsApp (Logo adalah hak cipta masing-masing pemilik)

TeknoCerdas.com – Salam cerdas untuk kita semua. Ketika membuat sebuah formulir online dengan Google Form kadang kita ingin mengintegrasikannya dengan WhatsApp. Dimana ketika pengguna selesai mengisi form maka otomatis responden dan admin akan mendapatkan notifikasi. Pada tulisan kali ini kita melakukan integrasi Google Form dan WhatsApp menggunakan API KirimWA.id.

 API KirimWA.id adalah layanan Unofficial WhatsApp API Gateway untuk mengirimkan pesan WhatsApp dengan menggunakan REST API. API KirimWA.id dapat digunakan untuk mengirim link konfirmasi, OTP, alert, dan berbagai notifikasi yang sesuai dengan keingingan.

Baca Juga
API KirimWA.id – Unofficial WhatsApp API Gateway Indonesia

Daftar Isi

0. Persiapan

Terdapat beberapa hal yang perlu dipenuhi sebelum mengikuti tutorial ini.

1. Membuat Formulir dengan Google Form

Buat sebuah formulir baru pada Google Form dengan minimal memiliki dua pertanyaan yaitu Nama dan Nomor WhatsApp. Keduanya bertipe Short Answer. Berikut adalah gambaran form yang akan dibuat.

Contoh Form untuk Integrasi WhatsApp Google Form
Contoh Form untuk Integrasi WhatsApp Google Form

2. Membuat Kode dengan Apps Script

Langkah berikutnya adalah menambahkan kode untuk memproses formulir yang telah diisi oleh responden. Kode ini akan dieksekusi oleh Apps Script ketika form telah di-submit.

Klik menu titik tiga pada pojok kanan atas kemudian pilih Script Editor untuk membuka editor kode.

Open Script Editor - Integrasi WhatsApp Google Form
Membuka Script Editor

Berikut ini adalah kode yang diperlukan. Copy dan paste kode berikut kedalam Script Editor.

function teknocerdasFormSubmit(e) {
  var formResponse = e.response;
  var items = formResponse.getItemResponses();

  var answer = {};

  for (var i = 0; i < items.length; i++) {
    var question = items[i].getItem().getTitle().toLowerCase().replace(/[\W\-_]/g, ' ').trim().replace(/ /g, '_').toLowerCase();
    var response = items[i].getResponse();

    answer[question] = response;
    answer['timestamp'] = formResponse.getTimestamp().toISOString();

    Logger.log(answer);
  }

  var data = {
    message: `Hello *${answer.nama}*,\n\nTerima kasih telah mendaftar. Mohon tunggu konfirmasi dari Admin untuk langkah selanjutnya.`,
    phone_number: answer.nomor_whatsapp
  }
  sendWhatsAppResponse(data);

  var adminData = {
    message: `*Terdapat Registrasi Baru*\n\nNama: ${answer.nama}\nWhatsApp: ${answer.nomor_whatsapp}\nBuka chat: https://kirimwa.id/` + toInternationalFormat(answer.nomor_whatsapp),
    phone_number: 'YOUR_ADMIN_PHONE_NUMBER'
  }
  sendWhatsAppResponse(adminData);
}

/**
 * https://developer.kirimwa.id/api/v1/
 */
function sendWhatsAppResponse(data)
{
  var api = {
    url: "https://api.kirimwa.id/v1/messages",
    token: "YOUR_API_TOKEN"
  }

  var payload = {
    message: data.message,
    phone_number: toInternationalFormat(data.phone_number),
    device_id: YOUR_DEVICE_ID,
    // optional parameters
    message_type: "text",
    send_at: "now",
    is_group_message: false,
  }

  var response = UrlFetchApp.fetch(api.url, {
    method: "post",
    contentType: "application/json",
    headers: {
      authorization: "Bearer " + api.token
    },
    payload: JSON.stringify(payload)
  });

  Logger.log(response);
}

function toInternationalFormat(phone)
{
  return phone.replace(/[^0-9]/g, '').replace(/^0|^62/, 62);
}

Fungsi teknocerdasFormSubmit() adalah fungsi yang dieksekusi ketika form dikirimkan. Argumen e pada fungsi tersebut adalah Object yang dikirimkan oleh Apps Script seperti yang didokumentasikan pada dokumentasi Trigger Google Forms.

Pada fungsi tersebut semua pertanyaan akan diubah dalam bentuk lower case dan spasi akan diganti underscore. Sehingga pertanyaan “Nomor WhatsApp” akan diubah menjadi nomor_whatsapp.

var question = items[i].getItem().getTitle().toLowerCase().replace(/[\W\-_]/g, ' ').trim().replace(/ /g, '_').toLowerCase();

Fungsi sendWhatsAppResponse() adalah fungsi untuk mengirimkan pesan WhatsApp menggunakan API KirimWA.id. Ganti YOUR_API_TOKEN dan YOUR_DEVICE_ID sesuai dengan milik anda.

Fungsi toInternationalFormat() adalah fungsi untuk mengubah format nomor WhatsApp dari lokal ke internasional yang didukung oleh API KirimWA.id.

Script ini akan mengirimkan dua pesan WhatsApp satu untuk responden dan satu lagi untuk Admin. Oleh karena itu, ganti YOUR_ADMIN_PHONE_NUMBER dengan nomor admin dalam format yang diterima API KirimWA.id misal 6281234567890.

  var adminData = {
    message: `*Terdapat Registrasi Baru*\n\nNama: ${answer.nama}\nWhatsApp: ${answer.nomor_whatsapp}\nBuka chat: https://kirimwa.id/` + toInternationalFormat(answer.nomor_whatsapp),
    phone_number: 'YOUR_ADMIN_PHONE_NUMBER'
  }

3. Menambah Trigger

Script ini belum terhubung dengan formulir yang telah dibuat, untuk itu harus ditambahkan trigger terlebih dahulu untuk menghubungkan event submit dan kode yang dibuat.

Klik icon Triggers pada sisi kiri layar seperti yang ditunjukkan oleh gambar di bawah.

Membuat Triggers - Integrasi WhatsApp dan Google Form
Membuat Triggers

Kemudian akan muncul window konfigurasi Add Trigger. Disini kita menentukan kapan kode akan dijalankan. Paramater-parameter yang harus diubah adalah:

  • Choose which function to run: teknocerdasFormSubmit
  • Choose which deployment should run: Head
  • Select event source: From form
  • Select event type: On form submit

Kemudian lanjutkan dengan menekan tombol Save. Seharusnya akan muncul window permission untuk script ini. Klik Allow untuk memperbolehkan.

Allow Permission - Integrasi WhatsApp dan Google Form
Izinkan permission untuk script (1)

Mungkin akan muncul window baru lagi yang menyatakan bahwa script ini belum diverifikasi oleh Google. Klik tombol Advanced untuk membuka opsi.

Unverified - Integrasi WhatsApp dan Google Form
Izinkan permission untuk script (2)

Kemudian pilih Go to Untitled project (Unsafe) untuk mengizinkan script ini tetap dijalankan.

Tetap Izinkan - Integrasi WhatsApp dan Google Form
Izinkan permission untuk script (3)

4. Uji Coba Form

Lakukan preview pada formulir yang telah dibuat dan coba isi dengan nama dan nomor WhatsApp yang dimiliki. Misal nama “Budi Cerdas” dan nomor WhatsApp anda. Jika semua berjalan sukses maka akan ada dua pesan WhatsApp terkirim.

Pertama adalah WhatsApp untuk responden seperti berikut.

Pesan untuk responden
Pesan untuk responden

Kedua adalah WhatsApp untuk admin seperti berikut.

Pesan untuk Admin - Integrasi Google Form dan WhatsApp
Pesan untuk Admin