HomeDocumentationIntegrasi Google Form ke WhatsApp Otomatis

Integrasi Google Form ke WhatsApp Otomatis

Tutorial integrasi Google Form dengan Alat WA. Setiap submission form otomatis kirim WhatsApp notif ke admin + konfirmasi ke responden via Apps Script.

Tutorial lengkap menghubungkan Google Form dengan Alat WA. Setiap kali ada submission baru, otomatis kirim WhatsApp ke admin (notifikasi lead masuk) dan ke responden (konfirmasi terima) - tanpa perlu integrasi rumit.

Cocok untuk:

  • Form pendaftaran event / webinar
  • Form lead generation
  • Form keluhan / customer support
  • Form RSVP undangan
  • Form order sederhana

Hasil Akhir

Setiap kali ada user submit Google Form:

  • Admin dapat WA notifikasi: "Lead baru: Budi (08123456789) - tertarik produk Hoodie"
  • Responden dapat WA konfirmasi: "Halo Budi, terima kasih sudah mendaftar. Tim kami akan kontak dalam 24 jam."

Langkah 1 - Siapkan API Key & Device

  1. Login ke app.alatwa.com
  2. Buka Profile → API Key → klik Generate kalau belum ada → copy
  3. Pastikan ada minimal 1 device WA yang Connected (Menu Device → indikator hijau)
  4. Catat Device ID dari menu Device (bukan nomor WA - ID device-nya, misal 628111111111)

Langkah 2 - Buat Google Form

Buka forms.new dan buat field minimal:

FieldTipeWajib
Nama LengkapShort answerYa
Nomor WhatsAppShort answer (validasi: angka, min 10)Ya
EmailShort answerOpsional
Pesan / PertanyaanParagraphOpsional

Tips validasi nomor WA: klik titik 3 di field → Response validation → Number → Greater than → 1000000000 (10 digit minimum). Ini cegah responden ngetik nomor invalid.

Langkah 3 - Buat Spreadsheet Response

  1. Di Google Form, klik tab Responses
  2. Klik icon Sheets hijau → Create new spreadsheet → kasih nama bebas
  3. Tutup form, buka spreadsheet baru tersebut
  4. Klik Extensions → Apps Script

Langkah 4 - Tempel Apps Script

Hapus semua kode default Code.gs, copy paste kode berikut:

// ============== KONFIGURASI ==============
const ALATWA_URL  = "https://api.alatwa.com/send/text";
const API_KEY     = "PASTE_API_KEY_DISINI";   // dari Profile -> API Key di app.alatwa.com
const DEVICE_ID   = "628111111111";            // Device ID dari menu Device (bukan nomor WA)
const ADMIN_PHONE = "628123456789";            // Nomor admin yang nerima notifikasi (format 62)
const COMPANY     = "Toko XYZ";                // Nama brand kamu

// Mapping nama kolom Google Form ke field
// Sesuaikan dengan label pertanyaan di form kamu
const FIELD_NAMA   = "Nama Lengkap";
const FIELD_PHONE  = "Nomor WhatsApp";
const FIELD_EMAIL  = "Email";
const FIELD_PESAN  = "Pesan / Pertanyaan";

// ============== TRIGGER ON FORM SUBMIT ==============
function onFormSubmit(e) {
  try {
    const data = e.namedValues;
    const nama  = (data[FIELD_NAMA]  || [""])[0].trim();
    const phone = (data[FIELD_PHONE] || [""])[0].trim();
    const email = (data[FIELD_EMAIL] || [""])[0].trim();
    const pesan = (data[FIELD_PESAN] || [""])[0].trim();

    if (!nama || !phone) {
      Logger.log("Skip: nama atau phone kosong");
      return;
    }

    // 1. Kirim notifikasi ke ADMIN
    const adminMsg =
      "*Lead Baru Masuk*

" +
      "Nama: " + nama + "
" +
      "WA: " + phone + "
" +
      (email ? "Email: " + email + "
" : "") +
      (pesan ? "
Pesan:
" + pesan + "
" : "") +
      "
_via Google Form " + COMPANY + "_";
    sendWA(ADMIN_PHONE, adminMsg);

    // 2. Kirim konfirmasi ke RESPONDEN
    const replyMsg =
      "Halo " + nama + "

" +
      "Terima kasih sudah menghubungi *" + COMPANY + "*. " +
      "Data kamu sudah kami terima dan tim kami akan menghubungi kamu dalam 1x24 jam.

" +
      "Salam hangat,
Tim " + COMPANY;
    sendWA(phone, replyMsg);

  } catch (err) {
    Logger.log("Error: " + err);
  }
}

// ============== HELPER: Kirim ke API Alat WA ==============
function sendWA(toPhone, message) {
  const url = ALATWA_URL +
    "?token="     + encodeURIComponent(API_KEY) +
    "&device_id=" + encodeURIComponent(DEVICE_ID) +
    "&to="        + encodeURIComponent(toPhone) +
    "&msg="       + encodeURIComponent(message);

  const res = UrlFetchApp.fetch(url, {
    method: "get",
    muteHttpExceptions: true
  });
  Logger.log(toPhone + " -> " + res.getResponseCode() + " " + res.getContentText());
}

// ============== TEST MANUAL (jalankan dari editor) ==============
function testKirimAdmin() {
  sendWA(ADMIN_PHONE, "Test dari Apps Script - kalau pesan ini sampai berarti integrasi sukses!");
}

Langkah 5 - Pasang Trigger Auto

Apps Script tidak otomatis jalan saat form di-submit - perlu dipasang trigger:

  1. Di Apps Script, klik icon Triggers (jam, sidebar kiri)
  2. Klik + Add Trigger (kanan bawah)
  3. Isi:
    • Choose function: onFormSubmit
    • Event source: From spreadsheet
    • Event type: On form submit
  4. Klik Save → Google minta authorize → Allow

Penting: Pilih On form submit, BUKAN On change atau On edit. Trigger On form submit hanya nyala saat ada submission baru (bukan saat row di-edit manual).

Langkah 6 - Test

Test 1 - Kirim manual ke admin

  1. Di Apps Script editor, pilih function testKirimAdmin dari dropdown
  2. Klik Run
  3. Cek WA admin - harus ada pesan test masuk

Kalau test 1 gagal:

  • Cek API_KEY, DEVICE_ID, ADMIN_PHONE (format 62, bukan 08)
  • Cek device di dashboard masih connected
  • Lihat log di Executions sidebar - biasanya ada error message detail

Test 2 - Submit form sungguhan

  1. Buka form (tab Send → link)
  2. Submit dengan data dummy: nama, nomor WA kamu sendiri, pesan test
  3. Tunggu 5-10 detik
  4. Cek 2 WA: admin dan nomor responden - keduanya harus dapat pesan

Customisasi

Tambah field baru

Misal mau tambah field "Produk yang diminati":

const FIELD_PRODUK = "Produk yang diminati";

// di onFormSubmit:
const produk = (data[FIELD_PRODUK] || [""])[0].trim();

const adminMsg =
  "*Lead Baru*

" +
  "Nama: " + nama + "
" +
  "WA: " + phone + "
" +
  "Produk: " + produk + "
";

Conditional message berdasarkan jawaban

let replyMsg;
if (produk === "Hoodie") {
  replyMsg = "Halo " + nama + ", ada promo Hoodie bulan ini! Cek di toko kami...";
} else {
  replyMsg = "Halo " + nama + ", terima kasih sudah daftar...";
}
sendWA(phone, replyMsg);

Skip kirim ke admin saat tes

// di awal onFormSubmit:
if (email && email.endsWith("@yourcompany.com")) {
  Logger.log("Skip notif untuk submission internal");
  return;
}

Throttle / hindari spam

Kalau form publik dan takut di-spam, simpan timestamp pengiriman per nomor di sheet:

function isAllowed(phone) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SentLog")
    || SpreadsheetApp.getActiveSpreadsheet().insertSheet("SentLog");
  const last = sheet.getRange("A:B").getValues()
    .filter(function(r){ return r[0] === phone; })
    .map(function(r){ return new Date(r[1]).getTime(); })
    .sort().pop();
  if (last && (Date.now() - last) < 60000) return false; // 1 menit cooldown
  sheet.appendRow([phone, new Date()]);
  return true;
}

// di onFormSubmit, sebelum sendWA:
if (!isAllowed(phone)) { Logger.log("Throttled: " + phone); return; }

Troubleshooting

GejalaPenyebabSolusi
401 Unauthorized di logAPI Key salah / paket trialPastikan paket Standard/Professional, regenerate API Key
400 Unknown deviceDEVICE_ID salah / device disconnectCek menu Device, pastikan hijau, copy ID device dengan benar
Pesan kirim tapi tidak sampaiFormat nomor salahPakai format 628xxx, bukan 08xxx atau +62 xxx
Trigger tidak jalanBelum dipasang / pilih event type salahCek menu Triggers, pastikan On form submit
Pesan dobelTrigger ke-pasang 2xHapus trigger lama, sisakan satu
Quota Apps Script habisFree Google account limit 6 jam/hari script executionUpgrade ke Workspace, atau pindah trigger ke server (webhook)
Pesan masuk ke spam adminPesan dari nomor sama, terlalu seringPakai device berbeda, atau kasih jeda dengan Utilities.sleep(2000)

Alternatif: Webhook (lebih reliable)

Untuk volume tinggi (>100 submission/hari), Apps Script sering kena rate limit Google. Alternatif:

  1. Pakai Zapier / Make.com / n8n - terima Google Form trigger → POST ke Alat WA endpoint
  2. Atau buat webhook receiver sendiri (PHP/Node.js) - pasang URL webhook di Apps Script, parse di server, baru kirim ke Alat WA

Use Case Lanjutan

  • Kombinasi Form + Sheet broadcast: Form untuk daftar event → seminggu sebelum event, broadcast reminder via Google Sheets Broadcast
  • Form survey kepuasan: Setelah CS close ticket, kirim link Google Form via WA → user isi → otomatis kirim "terima kasih atas feedbacknya"
  • Form order sederhana: Form pilih produk + alamat → otomatis kirim invoice transfer manual ke pelanggan + notif ke admin

Lihat juga: Integrasi Google Sheets ke Broadcast WhatsApp

Terakhir diperbarui: 27 Apr 2026

Footer Ads Info alatwa.com
shape

Tingkatkan Produktivitas Anda Sekarang!

Rasakan sensasi produktivitas yang lebih baik dengan menggunakan Alat WA, Anda tidak perlu membalas secara manual satu persatu karena sudah dihandle oleh robot. Anda cukup follow up customer yang membutuhkan hal spesifik yang tidak bisa dilayani oleh robot.

Anda tidak perlu menyiapkan server, anda hanya perlu berlangganan dan bisa langsung digunakan, cukup scan qrcode whatsapp maka whatsapp anda akan terhubung dengan sistem Alat WA

WhatsApp