---
title: "Cara Kirim Pesan WhatsApp Otomatis dari Google Sheets"
description: "Langkah mengirim pesan WhatsApp otomatis dari Google Sheets memakai Apps Script dan WhatsApp Cloud API resmi, plus aturan template dan opt-in."
url: "https://nivelva.com/insight/cara-kirim-pesan-whatsapp-otomatis-google-sheets"
category: "AI \u0026 Otomasi"
tags: ["whatsapp","google sheets","apps script","whatsapp cloud api","otomasi"]
author: "Theresia Candiawan"
published: "2026-11-07T13:59:00+07:00"
updated: "2026-11-07T13:59:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Cara Kirim Pesan WhatsApp Otomatis dari Google Sheets

> **Jawaban singkat:** Simpan daftar penerima di Google Sheets, buat template pesan yang disetujui Meta, lalu pakai Apps Script untuk memanggil WhatsApp Cloud API per baris dan mencatat statusnya. Pastikan penerima sudah setuju dihubungi, karena di luar jendela 24 jam hanya pesan template yang boleh dikirim.

Punya daftar pelanggan di Google Sheets dan ingin mengirim pengingat atau konfirmasi lewat WhatsApp tanpa menyalin nomor satu per satu? Caranya: hubungkan spreadsheet ke WhatsApp Cloud API (API resmi dari Meta) dengan Google Apps Script, lalu biarkan skrip mengirim pesan untuk setiap baris dan menandai mana yang sudah terkirim.

Panduan ini memakai jalur resmi supaya nomor bisnismu aman. Ada juga jalur lewat alat otomasi seperti n8n, yang dibahas singkat di akhir.

## Apa yang perlu disiapkan?

- Akun Meta Business dan aplikasi di Meta for Developers dengan produk WhatsApp aktif.
- Nomor telepon bisnis yang didaftarkan ke WhatsApp Business Platform. Nomor ini tidak bisa sekaligus dipakai di aplikasi WhatsApp Business biasa kecuali lewat fitur koeksistensi, jadi pakai nomor khusus bila ragu.
- **Phone number ID** dan **access token** dari dasbor aplikasi. Untuk pemakaian rutin, pakai token permanen dari system user, bukan token sementara.
- Google Sheets berisi data penerima.

> **Aturan main yang wajib dipahami:**
>
> Per dokumentasi Meta yang dicek 7 November 2026, kamu hanya boleh mengirim pesan ke pengguna yang sudah memberi izin (opt-in). Pesan bebas hanya boleh dikirim dalam 24 jam sejak pengguna terakhir mengirim pesan atau menelepon. Di luar jendela itu, kamu hanya bisa mengirim **template** yang sudah disetujui Meta. Pengiriman otomatis dari spreadsheet hampir selalu jatuh ke kategori ini.

## Langkah mengirim WhatsApp dari Google Sheets

### 1. Susun spreadsheet

Buat satu sheet bernama `Kirim` dengan kolom berikut:

| Kolom | Isi | Contoh |
|:--|:--|:--|
| A: nomor | Format internasional tanpa tanda + dan tanpa spasi | 6281234567890 |
| B: nama | Nama penerima untuk variabel template | Rina |
| C: info | Data yang mau disisipkan | INV-0123 |
| D: status | Diisi skrip | terkirim / gagal |

Format nomor sering jadi sumber masalah. Nomor yang diawali `08` harus diubah menjadi `628`. Atur kolom A sebagai teks agar Sheets tidak menghapus angka atau mengubahnya jadi format ilmiah.

### 2. Buat dan ajukan template pesan

Di WhatsApp Manager, buat template dengan kategori yang sesuai, misalnya **utility** untuk konfirmasi pesanan atau pengingat tagihan, dan **marketing** untuk promosi. Contoh isi template berbahasa Indonesia:

```
Halo {{1}}, pesanan {{2}} sudah kami terima dan sedang diproses. Balas pesan ini bila ada pertanyaan.
```

`{{1}}` dan `{{2}}` adalah variabel yang nanti diisi dari kolom B dan C. Tunggu sampai status template disetujui sebelum lanjut. Pilih kategori dengan jujur, karena kategori memengaruhi biaya dan aturan pengiriman.

### 3. Simpan token di Script Properties

Buka spreadsheet, pilih **Extensions > Apps Script**. Jangan menulis token langsung di kode. Buka **Project Settings > Script Properties**, lalu tambahkan:

- `WA_TOKEN`: access token.
- `WA_PHONE_ID`: phone number ID.

### 4. Tempel skrip pengirim

Ganti isi `Code.gs` dengan skrip berikut. Sesuaikan nama template dan versi Graph API dengan yang tertera di dasbor Meta milikmu.

```javascript
function kirimWhatsApp() {
  const props = PropertiesService.getScriptProperties();
  const token = props.getProperty('WA_TOKEN');
  const phoneId = props.getProperty('WA_PHONE_ID');
  const url = 'https://graph.facebook.com/v27.0/' + phoneId + '/messages';

  const sheet = SpreadsheetApp.getActive().getSheetByName('Kirim');
  const data = sheet.getDataRange().getValues();

  for (let i = 1; i < data.length; i++) {
    const [nomor, nama, info, status] = data[i];
    if (!nomor || status === 'terkirim') continue;

    const body = {
      messaging_product: 'whatsapp',
      to: String(nomor),
      type: 'template',
      template: {
        name: 'konfirmasi_pesanan',
        language: { code: 'id' },
        components: [{
          type: 'body',
          parameters: [
            { type: 'text', text: String(nama) },
            { type: 'text', text: String(info) }
          ]
        }]
      }
    };

    const res = UrlFetchApp.fetch(url, {
      method: 'post',
      contentType: 'application/json',
      headers: { Authorization: 'Bearer ' + token },
      payload: JSON.stringify(body),
      muteHttpExceptions: true
    });

    const ok = res.getResponseCode() === 200;
    sheet.getRange(i + 1, 4).setValue(ok ? 'terkirim' : 'gagal: ' + res.getContentText().slice(0, 200));
    Utilities.sleep(300);
  }
}
```

Opsi `muteHttpExceptions: true` membuat skrip tidak berhenti saat satu nomor gagal, sehingga pesan error dari API bisa dicatat di kolom status. Baris yang sudah `terkirim` dilewati, jadi skrip aman dijalankan ulang.

### 5. Uji dengan satu nomor

Isi satu baris dengan nomormu sendiri, lalu jalankan fungsi `kirimWhatsApp` dari editor. Google akan meminta izin akses spreadsheet dan koneksi eksternal. Periksa kolom status: bila gagal, pesan error dari Meta biasanya cukup jelas, misalnya nama template salah, jumlah variabel tidak cocok, atau token kedaluwarsa.

### 6. Jadwalkan atau picu otomatis

Di menu **Triggers** (ikon jam), tambahkan pemicu **time-driven**, misalnya setiap jam atau setiap pagi. Skrip akan memproses baris baru yang statusnya masih kosong. Apps Script punya batas waktu eksekusi per jalan dan kuota harian, jadi untuk daftar yang sangat panjang, proses bertahap per kelompok.

## Bagaimana jika ingin tanpa kode?

Alur yang sama bisa dibuat di alat otomasi seperti n8n: node Google Sheets membaca baris, node WhatsApp Business Cloud mengirim template, lalu node Google Sheets lagi memperbarui status. Keuntungannya, kamu mendapat riwayat eksekusi yang rapi dan mudah menambah langkah lain, misalnya mengirim ringkasan ke email. Pengenalan alatnya ada di [apa itu n8n](https://nivelva.com/insight/apa-itu-n8n).

Ada juga gateway tidak resmi yang meniru WhatsApp Web. Cara ini tidak memerlukan persetujuan template, tetapi tidak didukung Meta dan berisiko nomor diblokir, terutama untuk pengiriman massal. Untuk komunikasi bisnis yang penting, jalur resmi jauh lebih aman.

Contoh penerapan yang sering dipakai adalah [pengingat tagihan pelanggan otomatis lewat WhatsApp](https://nivelva.com/insight/pengingat-tagihan-pelanggan-otomatis-lewat-whatsapp). Bila ingin melangkah lebih jauh sampai membalas pesan pelanggan secara otomatis, lihat [chatbot WhatsApp AI untuk toko online](https://nivelva.com/insight/chatbot-whatsapp-ai-toko-online).

## Pertanyaan yang sering diajukan

### Apakah bisa mengirim pesan bebas tanpa template?

Hanya bila penerima mengirim pesan atau menelepon nomor bisnismu dalam 24 jam terakhir. Untuk pengiriman terjadwal dari spreadsheet, gunakan template yang sudah disetujui.

### Apakah WhatsApp Cloud API berbayar?

Meta mengenakan biaya untuk jenis pesan tertentu, dengan tarif yang berbeda per kategori dan negara. Skema dan tarifnya pernah berubah, jadi cek halaman harga resmi WhatsApp Business Platform sebelum menghitung biaya.

### Kenapa status menulis gagal padahal nomornya benar?

Penyebab umum: nama atau bahasa template tidak sama persis dengan yang disetujui, jumlah variabel tidak cocok, token kedaluwarsa, atau nomor tujuan tidak memakai WhatsApp. Baca pesan error yang tercatat di kolom status.

### Bolehkah memakai daftar nomor hasil membeli database?

Jangan. Selain melanggar kebijakan opt-in WhatsApp, data pribadi yang diperoleh tanpa izin juga berisiko dari sisi UU Pelindungan Data Pribadi. Kirim hanya ke pelanggan yang memberikan nomornya dan setuju dihubungi.

Checklist sebelum mengaktifkan pengiriman otomatis:

- Penerima sudah memberi izin dihubungi lewat WhatsApp.
- Template disetujui dan kategorinya sesuai.
- Token tersimpan di Script Properties, bukan di kode.
- Uji ke nomor sendiri berhasil.
- Kolom status terisi agar tidak ada pesan ganda.

## Sumber

- <https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages>
- <https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/cara-kirim-pesan-whatsapp-otomatis-google-sheets
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
