Cara menggunakan google forms api-python

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

  • 2. Membuat Kode dengan Script

0. Persiapan

Terdapat beberapa hal yang perlu dipenuhi sebelum mengikuti tutorial ini.

  • Sudah memiliki API Token dari API KirimWA.id jika belum maka silahkan daftar di https://developer.kirimwa.id/
  • Memiliki akun Google untuk membuat Google Form
  • Memiliki HP dan Nomor WhatsApp yang berfungsi
  • Telah mengikuti tutorial Kirim WhatsApp dengan API KirimWA.id dan Node.js.

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.

Cara menggunakan google forms api-python
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.

Cara menggunakan google forms api-python
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 .

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

var question = items[i].getItem().getTitle().toLowerCase().replace(/[\W\-_]/g, ' ').trim().replace(/ /g, '_').toLowerCase();
0 dengan nomor admin dalam format yang diterima API KirimWA.id misal
var question = items[i].getItem().getTitle().toLowerCase().replace(/[\W\-_]/g, ' ').trim().replace(/ /g, '_').toLowerCase();
1.

  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.

Cara menggunakan google forms api-python
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.

Cara menggunakan google forms api-python
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.

Cara menggunakan google forms api-python
Izinkan permission untuk script (2)

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

Cara menggunakan google forms api-python
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.

Cara menggunakan google forms api-python
Pesan untuk responden

Kedua adalah WhatsApp untuk admin seperti berikut.

Cara menggunakan google forms api-python
Pesan untuk Admin

Share

  • Programming
  • #api-kirimwa
  • #kirimwa
  • #whatsapp
  • #whatsapp-api
  • #whatsapp-api-gateway
  • #whatsapp-google-form

Cara menggunakan google forms api-python

Rio Astamal Follow Adalah penulis utama di TeknoCerdas.com. Rio Astamal seorang yang sangat antusias dengan web development sejak 2003. Sejak November 2021 Rio Astamal bekerja di Amazon Web Services (AWS) sebagai Developer Advocate untuk Indonesia. Dia mengelola TeknoCerdas.com di waktu senggangnya sebagai salah satu sarana untuk ikut mencerdaskan pembaca dalam dunia IT.