Skip to content
All articles
Panduan

Cara Kirim WhatsApp dari Google Sheets dengan Apps Script

WhatsApp dikirim dari Google Sheets dengan Apps Script yang membaca setiap baris, lalu memanggil API WhatsApp lewat UrlFetchApp. Hasil pengiriman ditulis kembali ke kolom status agar tidak ada pesan ganda.

Tim ChatKomodo5 min read
Kirim WhatsApp dari Google Sheets dengan Apps Script
Table of contents
  1. Apa saja yang perlu disiapkan?
  2. Bagaimana kode Apps Script untuk kirim WhatsApp?
  3. Bagaimana cara mengirim pesan terjadwal dari Google Sheets?
  4. Berapa batas kuota Apps Script untuk kirim pesan?
  5. Bagaimana cara mencatat balasan WhatsApp ke Google Sheets?
  6. FAQ
  7. Apakah WhatsApp bisa dikirim dari Google Sheets tanpa API?
  8. Apakah Apps Script berbayar?
  9. Apakah skrip tetap jalan saat komputer dimatikan?
  10. Skrip Google Sheets siap pakai
  11. Sumber

Apps Script adalah platform skrip berbasis JavaScript dari Google yang bisa membaca baris spreadsheet dan mengirim permintaan ke API WhatsApp. Cara kirim WhatsApp dari Google Sheets adalah menghubungkan Apps Script Google Sheets dengan penyedia API WhatsApp, lalu menjalankan skrip secara manual atau terjadwal. Tim yang mencatat pesanan, tagihan, atau jadwal di spreadsheet bisa mengirim pengingat tanpa menyalin nomor satu per satu. Panduan ini membahas persiapan, kode skrip, jadwal otomatis, batas kuota Google, dan pencatatan balasan.

Apa saja yang perlu disiapkan?

Persiapan untuk mengirim WhatsApp dari Google Sheets adalah akun Google, spreadsheet berisi nomor dan pesan, serta akses ke API WhatsApp. API WhatsApp tersedia dari Meta lewat WhatsApp Business Platform atau dari penyedia gateway. Setiap penyedia API memberi alamat endpoint dan kunci API untuk otentikasi.

Buat sheet bernama Kirim dengan empat kolom berikut:

A: Nomor | B: Pesan | C: Status | D: Waktu kirim

Tulis nomor berformat internasional, misalnya 6281234567890. Format kolom Nomor sebagai teks biasa agar angka di depan nomor tidak hilang.

Bagaimana kode Apps Script untuk kirim WhatsApp?

Kode Apps Script untuk kirim WhatsApp membaca baris yang kolom statusnya kosong, mengirim setiap pesan lewat UrlFetchApp, lalu menulis hasilnya ke kolom status. Buka menu Ekstensi > Apps Script di spreadsheet, hapus isi editor, lalu tempel kode berikut. Sesuaikan API_URL dan isi payload dengan dokumentasi penyedia API Anda.

const API_URL = 'https://api.penyedia-anda.com/send'; // ganti sesuai penyedia
const MAX_PER_RUN = 50;

function kirimPending() {
  const key = PropertiesService.getScriptProperties().getProperty('API_KEY');
  const sheet = SpreadsheetApp.getActive().getSheetByName('Kirim');
  const rows = sheet.getDataRange().getValues();
  let sent = 0;
  for (let i = 1; i < rows.length && sent < MAX_PER_RUN; i++) {
    const [nomor, pesan, status] = rows[i];
    if (!nomor || !pesan || status) continue;
    const res = UrlFetchApp.fetch(API_URL, {
      method: 'post',
      contentType: 'application/json',
      headers: { Authorization: 'Bearer ' + key },
      payload: JSON.stringify({ to: String(nomor), text: String(pesan) }),
      muteHttpExceptions: true,
    });
    const ok = res.getResponseCode() < 300;
    sheet.getRange(i + 1, 3, 1, 2).setValues([[ok ? 'terkirim' : 'gagal ' + res.getResponseCode(), new Date()]]);
    sent++;
    Utilities.sleep(1000);
  }
}

Simpan kunci API di Project Settings > Script Properties dengan nama API_KEY. Kunci yang disimpan di properti skrip tidak terlihat oleh orang yang hanya membuka spreadsheet.

Baris dengan kolom Status yang sudah terisi dilewati pada putaran berikutnya. Mekanisme tersebut mencegah pesan ganda saat skrip dijalankan ulang. MAX_PER_RUN membatasi jumlah pesan per putaran, dan Utilities.sleep(1000) memberi jeda 1 detik antarpesan.

Jalankan fungsi kirimPending sekali dari editor. Google meminta izin akses ke spreadsheet dan layanan eksternal pada eksekusi pertama.

Bagaimana cara mengirim pesan terjadwal dari Google Sheets?

Pesan terjadwal dari Google Sheets dikirim dengan trigger berbasis waktu yang menjalankan fungsi kirimPending secara berkala. Tambahkan fungsi berikut, lalu jalankan sekali dari editor.

function aktifkanJadwal() {
  ScriptApp.newTrigger('kirimPending').timeBased().everyMinutes(5).create();
}

Fungsi everyMinutes hanya menerima nilai 1, 5, 10, 15, atau 30 (dokumentasi ClockTriggerBuilder). Baris baru di sheet Kirim terkirim pada putaran berikutnya. Hapus trigger dari menu Triggers di editor untuk menghentikan pengiriman.

Berapa batas kuota Apps Script untuk kirim pesan?

Batas kuota Apps Script untuk akun Google gratis adalah 20.000 panggilan UrlFetchApp per hari. Batas lain yang berlaku untuk akun gratis menurut halaman kuota Apps Script:

  • Satu eksekusi skrip berhenti setelah 6 menit.
  • Total waktu jalan trigger dibatasi 90 menit per hari.
  • Satu skrip boleh memiliki maksimal 20 trigger per pengguna.

Akun Google Workspace mendapat kuota yang berbeda di halaman yang sama. Putaran berisi 50 pesan dengan jeda 1 detik memakan waktu sekitar 1 menit. Kuota 90 menit trigger cukup untuk sekitar 90 putaran penuh, atau sekitar 4.500 pesan per hari.

Batas pengiriman dari sisi WhatsApp berlaku terpisah dari kuota Google. Kirim pesan hanya ke nomor yang sudah memberi izin, dan baca panduan broadcast WhatsApp yang aman sebelum mengirim dalam jumlah besar.

Bagaimana cara mencatat balasan WhatsApp ke Google Sheets?

Balasan WhatsApp dicatat ke Google Sheets dengan fungsi doPost yang dipasang sebagai aplikasi web dan dipanggil oleh webhook penyedia API. Fungsi doPost menerima data pesan masuk, lalu menambahkan satu baris ke sheet Masuk.

function doPost(e) {
  const data = JSON.parse(e.postData.contents);
  SpreadsheetApp.getActive().getSheetByName('Masuk')
    .appendRow([new Date(), data.from, data.text]);
  return ContentService.createTextOutput('ok');
}

Pasang skrip lewat Deploy > New deployment > Web app, dengan akses Anyone. Tempel URL aplikasi web di pengaturan webhook penyedia API. Nama field seperti from dan text berbeda di setiap penyedia, jadi sesuaikan dengan contoh webhook di dokumentasinya.

URL aplikasi web bisa dipanggil siapa saja yang mengetahuinya. Tambahkan token acak di URL dan tolak permintaan tanpa token yang cocok di dalam doPost.

FAQ

Apakah WhatsApp bisa dikirim dari Google Sheets tanpa API?

Tidak untuk pengiriman otomatis. Tanpa API, spreadsheet hanya bisa membuat link WA per baris yang tetap harus diklik satu per satu.

Apakah Apps Script berbayar?

Tidak. Apps Script tersedia untuk akun Google gratis dengan kuota harian.

Apakah skrip tetap jalan saat komputer dimatikan?

Ya. Trigger berbasis waktu berjalan di server Google, bukan di komputer Anda.

Skrip Google Sheets siap pakai

ChatKomodo menyediakan skrip Apps Script siap pakai untuk kirim WhatsApp dari Google Sheets dan mencatat pesan masuk ke spreadsheet. Skrip membuat sheet Send, Inbox, Contacts, dan Leads, lalu menambahkan menu ChatKomodo di spreadsheet. Baris di sheet Send terkirim lewat menu atau otomatis setiap 5 menit. Status, waktu kirim, dan ID pesan ditulis kembali ke baris yang sama.

Pesan masuk, status pengiriman, dan perubahan lead masuk ke spreadsheet lewat webhook dengan token acak. Panduan pemasangannya ada di dokumentasi integrasi ChatKomodo.

Sumber