Leads Pipeline — Prospek Mahasiswa Baru
Tujuan
Halaman ini menjelaskan cara kerja Leads Pipeline HUPH: bagaimana
prospek calon mahasiswa dikumpulkan otomatis dari percakapan
WhatsApp, bagaimana stage-nya dikelola, dan cara menggunakan halaman
/leads-v2 untuk follow-up. Target pembaca: counselor dan marketing
staff yang tugasnya mengubah lead jadi enrolled student.
Prasyarat
- Login dengan role counselor atau marketing
- Channel WhatsApp aktif (Web & Telegram tidak lagi dipakai per April 2026)
LEAD_CAPTURE_ENABLED=truedi env (default, tidak perlu diubah)
Lead vs Conversation
Lead bukan sama dengan conversation. Perbedaan:
- Conversation = rangkaian pesan antara user dan bot/counselor
- Lead = record terstruktur berisi kontak user (nama, phone, email, program interest) yang diekstrak dari conversation
Satu conversation bisa menghasilkan 0 atau 1 lead. Satu lead bisa punya banyak conversations (kalau user WA chat beberapa kali).
Lead Stages
Real enum di database: incomplete | new | contacted | qualified |
enrolled | lost.
| Stage | Arti | Kapan tercapai |
|---|---|---|
| incomplete | Capture belum lengkap | Hanya nama terdeteksi, email/phone belum |
| new | Data dasar lengkap, belum dihubungi counselor | Nama + phone/email ada, baru terbentuk |
| contacted | Counselor sudah reach out | Counselor klik "Mark Contacted" di detail |
| qualified | Lead serius, layak follow-up intens | Sudah dihubungi + menunjukkan intent register/visit |
| enrolled | Sudah resmi daftar | Update manual oleh admin admisi setelah submit form |
| lost | Tidak tertarik / tidak bisa dihubungi | Manual mark oleh counselor |
Langkah-langkah
1. Buka Leads Pipeline
Klik Leads di sidebar, pilih sub-menu Leads v2 (URL:
/admin/leads-v2). Anda akan lihat list leads dengan polling 30
detik — data auto-refresh tanpa reload.
┌────────────────────────────────────────────────────┐
│ Filter: [actionable] [all] [new] [qualified] … │
│ Search: [_________] │
│ │
│ Name Phone Stage Updated │
│ ────────────────────────────────────────────────── │
│ Budi Santoso +628123… new 5m ago │
│ Siti Aulia +628567… qualified 1h ago │
│ Rudi Hartono +628901… contacted 3h ago │
└────────────────────────────────────────────────────┘
2. Filter & search
Filter chips: actionable (non-enrolled, non-lost), all, atau
per-stage (new, qualified, dll). Default actionable — fokus ke
lead yang perlu action.
Search: ketik nama, phone, atau email → filter instan.
3. Buka detail lead
Klik row → halaman detail /admin/leads-v2/[id]. Detail berisi:
- Info kontak lengkap (nama, phone formatted, email, program interest jika ada)
- Status actions — tombol Mark Contacted, Mark Qualified, Mark Enrolled, Mark Lost
- Source conversation — link ke conversation asal
- Capture metadata — kapan nama/phone/email pertama kali terdeteksi, dari pesan mana
4. Update stage
Klik tombol action yang sesuai — misal Mark Contacted setelah Anda reply ke user via WhatsApp. Stage berubah, polling auto-update di list view juga.
5. Bagaimana capture bekerja di belakang layar
Ekstraktor kontak HUPH pakai 4-tier hybrid:
- Regex Layer 1 (selalu jalan) — mendeteksi pola bahasa Indonesia seperti "nama saya X", "panggil X", phone format 62xxx
- LLM Layer 2 (gated) — Claude Haiku dipanggil saat sedang capture
aktif, atau intent
share_personal_infoterdeteksi, atau regex hit lemah - State machine untuk slot filling multi-turn (awaiting_name → awaiting_email → captured), TTL 6 jam
- Lead store atomic upsert berbasis
(user_id, channel)
Counselor tidak perlu trigger manual — semua otomatis sejak user pertama WA.
6. Analytics overview
Dari sidebar Leads → Analytics v2 (/admin/analytics-v2), Anda
akan lihat ±13 chart: lead growth, stage distribution, funnel
conversion, source breakdown, counselor performance, dll. Semua
grafik real-time (30s polling).
Contoh kasus
Follow-up lead qualified pagi ini. Buka /admin/leads-v2, filter
qualified, lihat ada 6 lead baru. Counselor buka satu per satu,
reply via WhatsApp dengan template perkenalan + undangan info
session. Setelah kirim, klik Mark Contacted di halaman detail.
Dalam 1 menit, data ter-refresh di list counselor lain.
Analisa mingguan Senin pagi. Marketing buka /admin/analytics-v2
→ lihat chart Lead Growth weekly: Sen–Min total 127 lead baru, 34 di
qualified. Export CSV untuk laporan ke head of admission.
Troubleshooting
Lead stuck di "incomplete" meskipun user sudah kasih semua info.
Gejala: list menunjukkan lead dengan status incomplete padahal user
chat lengkap "nama saya Rudi, phone 081234, email rudi@..". Penyebab:
LLM extractor mungkin gagal atau timeout. Solusi: klik detail → cek
capture metadata → kalau nama/phone/email semua ada, klik manual
Advance Stage ke new. Kalau masih error, lapor dev team — bisa
jadi feature flag LEAD_CAPTURE_ENABLED off.
Lead baru tidak muncul setelah 5 menit user chat. Gejala: user
sudah WA dan kasih nama, tapi tidak muncul di /leads-v2. Penyebab:
kemungkinan webhook delay atau state machine stuck. Solusi: refresh
halaman (Ctrl+Shift+R), cek filter (mungkin all tersembunyi oleh
default actionable), lalu cek Conversations apakah percakapan
memang terbentuk.
Angka di Analytics v2 tidak konsisten dengan count di list. Gejala: list menunjukkan 26 lead, tapi Analytics bilang 28. Penyebab: polling 30s + delay aggregate — ada lag beberapa detik antara list dan chart. Solusi: refresh setelah 1 menit, biasanya sinkron.
Tidak bisa "Mark Enrolled". Gejala: tombol Mark Enrolled disabled atau tidak muncul. Penyebab: stage enrolled hanya boleh di-set oleh admin admisi (role-gated). Solusi: escalate ke admin untuk update.
Lihat juga
- Inbox — lihat conversation asal dari lead
- Follow-up — otomasi re-engagement ke lead
- Escalation — bagaimana cluster ownership mempengaruhi akses lead counselor