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
- 1. Membuat Formulir dengan Google Form
- 2. Membuat Kode dengan Apps Script
- 3. Menambah Trigger
- 4. Uji Coba Form
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.
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.
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.
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.
Mungkin akan muncul window baru lagi yang menyatakan bahwa script ini belum diverifikasi oleh Google. Klik tombol Advanced untuk membuka opsi.
Kemudian pilih Go to Untitled project (Unsafe) untuk mengizinkan script ini tetap dijalankan.
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.
Kedua adalah WhatsApp untuk admin seperti berikut.