Cara Kirim WhatsApp Otomatis dari Google Sheets
Cara mengirim pesan WhatsApp otomatis dari data Google Sheets memakai Google Apps Script, lengkap dengan kode dan catatan soal API resmi WhatsApp.
Banyak bisnis kecil di Indonesia sudah punya data pelanggan di Google Sheets, tapi masih mengirim pengingat satu per satu lewat WhatsApp. Kalau jumlah pelanggannya sudah ratusan, ini jadi pekerjaan yang melelahkan: Faktanya Anda harus bolak-balik antara spreadsheet dan WhatsApp. Ada beberapa cara mengotomisasi ini, dan cara terbaik bergantung pada skala Anda.
Tiga pilihan, dari paling mudah
| Pilihan | Biaya | Cocok untuk |
|---|---|---|
| Google Sheets Add-on (WA Sender) | Sebagian gratis, sebagian berbayar | Sedikit ratus pelanggan, ingin cepat |
| Google Apps Script + WA Business API | Gratis untuk 1000 percakapan/bulan | Volume sedang, butuh solusi jangka panjang |
| n8n + WA Business API | n8n gratis, perlu VPS kecil | Alur kompleks dengan banyak aplikasi |
Cara paling umum: Apps Script + WhatsApp Business API
WhatsApp Business API adalah cara resmi beriklan dan mengirim pesan lewat WhatsApp dengan izin dari Meta. Anda butuh WhatsApp Business Account dan token akses dari Meta for Developers. Setelah itu, Apps Script bisa mengirim pesan langsung dari data Google Sheets.
Menyiapkan data di Google Sheets
Siapkan satu sheet dengan kolom No, Nama, Nomor WhatsApp, dan Pesan. Nomor WhatsApp harus format internasional tanpa tanda plus atau spasi, contoh: 6281234567890.
Menulis kode Apps Script
function kirimPesan() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var token = "TOKEN_ANDA";
var idPhoneNumber = "ID_WA_NUMBER_ANDA";
// Baris 1 adalah header, jadi mulai dari baris kedua
for (var i = 1; i < data.length; i++) {
var nomor = data[i][2];
var pesan = data[i][3];
if (!nomor || !pesan) continue;
var url = "https://graph.facebook.com/v19.0/" + idPhoneNumber + "/messages";
var payload = {
messaging_product: "whatsapp",
to: nomor,
type: "text",
text: { preview_url: false, body: pesan }
};
var options = {
method: "post",
contentType: "application/json",
headers: { Authorization: "Bearer " + token },
payload: JSON.stringify(payload)
};
try {
var response = UrlFetchApp.fetch(url, options);
if (response.getResponseCode() !== 200) {
sheet.getRange(i + 1, 5).setValue("Gagal: " + response.getContentText());
} else {
sheet.getRange(i + 1, 5).setValue("Terkirim");
}
} catch (err) {
sheet.getRange(i + 1, 5).setValue("Error: " + err.message);
}
}
}Menjalankan otomatis setiap hari
Kode di atas berjalan saat tombol ditekan atau dari menu. Untuk menjalankannya otomatis setiap pagi jam 8, buat trigger: klik ikon Jam di editor Apps Script, pilih pemicu berkala, lalu hubungkan ke fungsi kirimPesan.
Batas kuota yang perlu diketahui
WhatsApp Business API gratis untuk percakapan yang dimulai oleh pelanggan, dan percakapan pertama punya quota 1000 per bulan. Melebihi itu, tarif per pesan berlaku. Jadi kalau Anda mengirim ke ribuan pelanggan sekaligus tanpa mereka pernah membalas, itu sudah masuk kategori broadcast dan wajar kalau ditolak.
Kalau memang butuh kirim ke banyak orang sekaligus
Kalau kebutuhan Anda adalah mengirim informasi ke banyak nomor sekaligus, cara yang benar bukan broadcast WhatsApp, tapi broadcast newsletter: kirim ke orang yang mendaftarkan nomor dan ingin menerima kabar. Untuk pesan yang memang diminta atau memang relevan, WhatsApp jauh lebih dipercaya daripada pesan broadcast yang terlihat seperti spam.
Pertanyaan yang sering muncul
- Apakah bisa kirim WhatsApp otomatis tanpa API resmi?
- Secara teknis ada cara memakai perangkat kedua yang menjalankan WhatsApp Web, tapi itu melanggar ketentuan WhatsApp dan risikonya nomor Anda diblokir permanen. Untuk penggunaan yang bertahan lama, WhatsApp Business API resmi adalah satu-satunya jalan yang aman.
- Berapa biaya WhatsApp Business API?
- Percakapan pertama yang dimulai pelanggan gratis sampai 1000 per bulan. Setelah itu tarif per percakapan berlaku, dan besarnya tergantung kategori pesan. Untuk pengingat dan konfirmasi pesanan, biayanya umumnya kecil.
- Apakah nomor saya bisa diblokir kalau mengirim massal?
- Bisa, kalau mengirim ke nomor yang tidak pernah memberi izin. WhatsApp membedakan pesan yang diminta penerima dari pesan broadcast. Utamakan hanya mengirim ke pelanggan yang memang bertransaksi atau mendaftar sendiri.
- Apakah Google Sheets cukup untuk data pelanggan saya?
- Untuk ratusan sampai beberapa ribu pelanggan, Sheets masih cukup dan gratis. Kalau datanya sudah puluhan ribu baris atau perlu banyak orang mengakses bersamaan, sebaiknya pindah ke database seperti Supabase dan pakai n8n untuk alurnya.
Butuh bantuan untuk masalah Anda sendiri?
Konsultasi gratis, tanpa ikatan. Jelaskan kebutuhan Anda, dan kami bantu tentukan pendekatan yang paling masuk akal, termasuk kalau jawabannya ternyata tidak perlu diotomasi.