Email Dunning: Cara Menagih Pembayaran Gagal Tanpa Jadi Spam — Panduan untuk Startup Indonesia
Churn karena pembayaran gagal itu diam-diam. Customer tidak marah, tidak kirim email komplain — mereka cuma berhenti bayar. Kartu kredit expired, saldo GoPay habis, virtual account tidak dibayar. Startup SaaS Indonesia rata-rata kehilangan 1–2% MRR bulanan karena involuntary churn ini, dan hampir semuanya bisa dicegah dengan satu hal: email dunning yang benar.
Email dunning = rangkaian email otomatis yang menagih pembayaran gagal. Kedengarannya sederhana, tapi mayoritas startup mengerjakannya dengan salah: satu email generik "payment failed, please update" lalu diam. Hasilnya customer berhenti tanpa sadar, dan kamu kehilangan revenue yang seharusnya bisa diselamatkan.
Anatomi dunning sequence yang bekerja
Standar industri adalah 3–4 email dalam 10–14 hari:
| Tahap | Waktu | Tujuan | Tone |
|---|---|---|---|
| 1 — Informasi | Hari 0 (saat gagal) | Beri tahu, minta perbaiki | Netral, helpful |
| 2 — Pengingat | Hari 3–4 | Reminder + link update kartu | Netral |
| 3 — Peringatan | Hari 7 | Akun akan di-suspend tanggal X | Tegas |
| 4 — Suspen | Hari 10–14 | Konfirmasi suspen + cara reaktivasi | Tegas, sopan |
Aturan penting:
- Jangan pernah bayangin user selalu bersalah. Seringkali bank issue atau provider payment timeout. Tahap 1 harus netral: "kami gagal memproses pembayaranmu", bukan "kamu gagal bayar".
- Satu CTA per email: link ke halaman update metode pembayaran (bukan link ke dashboard "cari sendiri").
- Retry + email berbarengan. Setiap kali retry pembayaran gagal lagi, kirim email itu hari itu juga — jangan tunggu jadwal tahap berikutnya.
Kasus nyata di Indonesia
SaaS B2B Jakarta (akuntansi): pelanggan bayar via virtual account BCA. VA expired, invoice tidak dibayar. Tanpa dunning, tim finance manual follow-up via WhatsApp — makan 10 jam/minggu. Dengan dunning otomatis, 60% pembayaran tertunggak selesai tanpa intervensi manusia.
Platform kelas online (Yogyakarta): langganan bulanan via kartu kredit — chargeback rate rendah tapi expired card tinggi. Email tahap 1 dengan tombol "Perbarui kartu" langsung di body email menyelamatkan ~70% kasus.
Aplikasi food delivery (Surabaya) B2B merchant invoicing: invoice WhatsApp blast manual diganti email otomatis. Merchat langsung punya paper trail yang bisa dibaca ulang — tidak hilang di 47 chat WhatsApp lain.
Contoh implementasi: 3-tahap dengan MailAnvil API
Kirim dunning email dari server kamu (bukan dari Gmail tim support — reputasi domain email transaksional penting untuk deliverability).
// dunning.js — Node.js/Express
const API_KEY = process.env.MAILANVIL_API_KEY;
async function sendDunningEmail(customer, stage) {
const templates = {
1: { subject: `Pembayaran untuk ${customer.plan} gagal diproses`, days: 0 },
2: { subject: `Reminder: metode pembayaran ${customer.plan} perlu diperbarui`, days: 3 },
3: { subject: `Aksi diperlukan: langganan ${customer.plan} akan dijeda ${customer.suspendDate}`, days: 7 },
};
const t = templates[stage];
const res = await fetch('https://api.mailanvil.com/v1/send', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
// Idempotency-Key mencegah double-send kalau cron jalan 2x
'Idempotency-Key': `dunning-${customer.id}-stage-${stage}`,
},
body: JSON.stringify({
from: '[email protected]',
to: [customer.email],
subject: t.subject,
html: renderDunningTemplate(customer, stage), // template kamu
text: renderDunningText(customer, stage),
}),
});
return res.status === 202; // queued
}
Cron harian kamu tinggal: cari invoice gagal, cek berapa hari sejak gagal, tentukan stage, kirim. Idempotency-Key penting — kalau cron tumpang tindih atau retry, email yang sama tidak terkirim dua kali.
Deliverability untuk dunning: email tagihan berisiko tinggi masuk spam karena mirip phishing. Trik:
- Kirim dari subdomain khusus, misalnya
billing.domainkamu.com— kalau reputasinya jatuh, email OTP dan notifikasi dari domain utama tetap aman. - Sertakan amount, invoice number, dan tanggal — detail spesifik menaikkan trust score di Gmail.
- Pantau bounce/complaint via webhook MailAnvil. Complaint rate di atas 0,3% artinya tone atau frekuensi kamu salah — turunkan.
Kepatuhan UU PDP
Email penagihan adalah komunikasi atas kontrak — dasar hukumnya performance of contract, bukan consent marketing, jadi kamu tidak butuh opt-in eksplisit. Tapi tetap wajib:
- Identitas pengirim jelas (nama PT di footer)
- Link unsubscribe dari email penagihan wajib tetap ada (boleh khusus: berhenti dari email tagihan, bukan dari akun)
- Data kartu tidak boleh lewat email kamu — hanya link ke halaman pembayaran yang PCI-compliant
Checklist sebelum jalan
- [ ] Template 3 tahap ditulis (netral → reminder → tegas)
- [ ] CTA tunggal: link update pembayaran
- [ ] Idempotency-Key per (customer, stage)
- [ ] Subdomain billing terpisah + DKIM verified
- [ ] Webhook MailAnvil untuk bounce/complaint → stop sequence kalau hard bounce
- [ ] Cron harian + log setiap email yang terkirim (untuk audit)
Total effort: 1–2 hari kerja engineer. Dampak: memulihkan 1–2% MRR yang bocor diam-diam setiap bulan. Tidak banyak proyek dengan ROI segitu.
Coba MailAnvil gratis di mailanvil.com — 500 email/bulan gratis, bayar pakai QRIS/GoPay mulai Rp149rb/bulan.