Status Pelanggan¶
Tiap pelanggan punya status yang menentukan apakah mereka bisa connect internet, terima tagihan, atau tampil di laporan. Memahami lifecycle status penting untuk operasional yang clean.
Lifecycle Status¶
Status Detail¶
1. 🆕 Trial¶
Pelanggan baru daftar, biasanya bulan pertama gratis atau diskon.
Karakteristik:
- Bisa connect internet penuh
- Tidak generate invoice (atau invoice Rp 0)
- Auto-transition ke Active setelah trial period habis
- Atau auto-terminate kalau pelanggan tidak commit subscribe
Use case:
- Bulan promo "gratis 30 hari"
- Onboarding piloting sebelum komit
2. ✅ Active¶
Pelanggan reguler — bayar tepat waktu, internet jalan.
Karakteristik:
- Connect penuh sesuai paket
- Invoice generated bulanan
- Reminder otomatis sebelum jatuh tempo
Transition ke Active:
- Dari Trial → otomatis setelah pembayaran pertama
- Dari Overdue/Isolated → setelah bayar tagihan tertunggak
- Dari Suspended → admin re-aktivasi
3. ⏰ Overdue¶
Tagihan lewat jatuh tempo, tapi masih dalam grace period (biasanya 1-3 hari).
Karakteristik:
- Internet masih jalan
- Reminder WhatsApp/email lebih sering (harian)
- Status warning di dashboard
- Auto-transition ke Isolated kalau grace period habis tanpa bayar
Default grace period: 1 hari setelah due date (configurable di Settings → Billing Rules).
4. 🚫 Isolated (Isolir)¶
Tagihan tidak dibayar setelah grace period. Internet diputus.
Karakteristik:
- Connect ke WiFi/PPPoE → langsung redirect ke landing page isolir
- Landing page menampilkan: total tagihan + link bayar
- Tidak bisa akses internet sampai bayar
- Sesi aktif diputus paksa via PoD (Disconnect Request)
Penyebab Isolir:
- Auto: cron
isolir-overduejalan tiap 02:00 WIB — isolir pelanggan dengan invoice overdue > grace - Manual: admin klik "Isolir Manual" di pelanggan
Cara recovery:
- Pelanggan bayar tagihan → status auto-kembali Active dalam 1-5 menit
- Sesi internet auto-resume
5. ⏸️ Suspended¶
Pelanggan non-aktif sementara, biasanya request sendiri.
Karakteristik:
- Internet diputus (sama dengan Isolated)
- TIDAK generate invoice
- TIDAK kirim reminder
- Status manual dari admin (bukan auto)
Use case:
- Pelanggan request "berhenti sementara" karena pergi keluar kota
- Pelanggan komplain & request hold sambil masalah resolve
- Internal hold (mis. teknis investigation)
Cara kembali Active:
- Admin manual klik "Aktivasi"
- Generate invoice baru kalau perlu (untuk bulan ini)
6. 🛑 Terminated¶
Pelanggan berhenti permanen (cancel subscription).
Karakteristik:
- Internet diputus
- TIDAK generate invoice
- TIDAK tampil di dashboard utama (tampil di filter "Terminated only")
- Data tetap di DB untuk audit
- Bisa restore (reaktivasi) kalau pelanggan kembali
Use case:
- Pelanggan pindah rumah (luar coverage)
- Beralih ke provider lain
- Tidak bisa bayar long-term
Cara recovery:
- Edit pelanggan → status Terminated → Active
- Generate invoice baru
- Sync ulang ke RADIUS
Matrix Transition¶
| Dari → Ke | Active | Overdue | Isolated | Suspended | Terminated |
|---|---|---|---|---|---|
| Trial | ✅ otomatis (setelah bayar pertama) | — | — | — | ✅ kalau abandon |
| Active | — | ✅ otomatis (lewat due) | — (lewat grace) | ✅ manual | ✅ manual |
| Overdue | ✅ kalau bayar | — | ✅ otomatis (grace habis) | ✅ manual | ✅ manual |
| Isolated | ✅ kalau bayar | — | — | ✅ manual | ✅ manual |
| Suspended | ✅ manual | — | — | — | ✅ manual |
| Terminated | ✅ manual (reaktivasi) | — | — | — | — |
Indikator Visual di Dashboard¶
Dashboard menampilkan badge warna per status:
- 🟦 Trial (biru) — masa trial
- 🟢 Active (hijau) — sehat
- 🟡 Overdue (kuning) — telat bayar, grace period
- 🔴 Isolated (merah) — internet diputus
- ⚪ Suspended (abu-abu) — hold manual
- ⚫ Terminated (hitam) — non-aktif permanen
Best Practices¶
Set grace period yang masuk akal
Grace period terlalu pendek → pelanggan kaget langsung isolir. Terlalu panjang → cashflow Anda terganggu.
Saran:
- 1 hari = strict (cocok kalau pelanggan disiplin / bisnis B2B)
- 3 hari = standar (default kebanyakan ISP)
- 7 hari = lenient (untuk komunitas / area dengan literasi keuangan rendah)
Reminder berlapis
Sebelum isolir, kirim reminder bertingkat:
- H-3 due: WA reminder pertama (friendly)
- H-1 due: WA reminder kedua (lebih tegas, sebutkan akan isolir)
- H+0 due: WA "hari ini jatuh tempo, mohon segera bayar"
- H+1 (overdue): WA "tagihan overdue, akan isolir besok"
- H+2 (grace habis): Isolir + WA "akun diisolir, bayar untuk reaktivasi"
Hindari "ghost isolir"
Selalu ada reminder sebelum isolir. Isolir mendadak tanpa pemberitahuan = pelanggan marah, churn risk tinggi, reputasi rusak.
Suspend != Isolate
Manual suspend (admin action) berbeda dengan auto-isolate (sistem action):
- Suspend → admin pilih (alasan personal pelanggan)
- Isolate → sistem pilih (akibat menunggak)
Pakai status yang tepat untuk reporting akurat.
Auto-Isolir Configuration¶
Aktifkan / atur auto-isolir di Settings → Isolir Rules:
| Setting | Default | Deskripsi |
|---|---|---|
| Enabled | ON | Aktifkan auto-isolir |
| Grace period (hari) | 1 | Berapa hari setelah due tanpa bayar baru isolir |
| Isolir time (jam:menit) | 02:00 | Jam cron isolir jalan (off-peak hours) |
| Landing page | default | Custom landing page isolir (dengan branding & link bayar) |
| Reminder before isolir | ON | Kirim WA "akan isolir besok" |
Detail: Isolir Otomatis
Troubleshooting¶
Pelanggan bayar tapi status tidak auto-kembali Active
Penyebab umum:
- Payment gateway webhook delay — tunggu 5-10 menit
- Webhook gagal terima — cek log webhook di dashboard
- Invoice belum di-mark paid — manual update di dashboard
- Status pelanggan masih "Suspended" bukan "Isolated" — Suspended butuh manual aktivasi (bukan auto)
Auto-isolir tidak jalan
Cek:
- Cron
isolir-overdueaktif (menu Settings → Cron Log) - Auto-isolir enabled di Settings
- Grace period sesuai ekspektasi
- Pelanggan benar-benar overdue (cek due date invoice)
Status terus berubah-ubah (flapping)
Mungkin webhook payment di-trigger berulang (mis. pelanggan refresh halaman bayar berulang). Cek log webhook untuk duplicate event. TB Radius dedupe by transaction_id, tapi pastikan tidak ada bug.
Reaktivasi pelanggan Terminated
- Filter pelanggan "Terminated only"
- Klik pelanggan
- Edit → ubah status ke Active
- Generate invoice baru kalau perlu (sebelumnya akun gratis)
FAQ¶
Q: Apakah pelanggan Suspended dihitung di laporan revenue? A: Tidak. Suspended TIDAK generate invoice → tidak hitung di MRR (Monthly Recurring Revenue).
Q: Pelanggan Isolated tetap dihitung di total pelanggan aktif? A: Tergantung definisi. Default dashboard hitung Isolated sebagai pelanggan aktif (mereka masih subscribe, hanya temporarily diputus). Bisa diatur di Settings → Report Definitions.
Q: Grace period bisa beda per pelanggan? A: Bisa. Pelanggan korporasi/premium bisa kasih grace lebih panjang via Per-Customer Override di edit pelanggan.
Q: Apakah ada notif ke admin saat pelanggan diisolir? A: Bisa diaktifkan di Settings → Notifikasi Admin. Saran: aktifkan digest harian (summary semua isolir hari itu) — bukan per-isolir notif (spam).