Peta Seluruh Alur
Halaman ini adalah indeks visual: satu diagram besar yang menunjukkan bagaimana semua alur saling terhubung, lalu tabel yang mengarahkan ke dokumen detail masing-masing.
Peta besar
Delapan alur, satu tabel
| # | Alur | Dipicu oleh | Hasil akhir | Detail |
|---|---|---|---|---|
| 1 | WhatsApp masuk → balasan AI | Pasien mengirim chat | Balasan AI terkirim + pesan tersimpan | Baca |
| 2 | Booking berbayar | AI/agen menerbitkan link | Janji temu terkonfirmasi setelah lunas | Baca |
| 3 | Chat Rooms (agen manusia) | Agen membuka panel | Balasan manual, takeover percakapan, label, link pembayaran manual | Baca |
| 4 | Sinkronisasi kontak | Webhook (real-time) + cron 10 menit | Tabel contacts selalu mutakhir | Baca |
| 5 | SIMRS Sync | Tombol manual atau cron 01:00 WIB | Pasien/dokter/poli/janji/tagihan tersalin | Baca |
| 6 | Antrian pasien | Pengunjung di kios | Nomor antrian dipanggil per loket | Baca |
| 7 | Hak akses | Login | Menu & data yang boleh dilihat per peran | Baca |
| 8 | Sapuan rekonsiliasi | Cron 5 menit | Booking terselamatkan / draft basi dimatikan | Baca |
Tiga jalur pesan keluar
Semua pesan WhatsApp yang keluar dari sistem berasal dari salah satu dari tiga jalur ini. Membedakannya penting saat menelusuri "kenapa pasien menerima/tidak menerima pesan X".
| Jalur | Isi pesan disusun oleh | Tercatat di whatsapp_messages? | sent_by |
|---|---|---|---|
| 1. Balasan AI | Model bahasa (LLM) | ✅ Ya, setelah gerbang menerima | ai |
| 2. Notifikasi pembayaran | Template tetap di kode (bukan AI) | ✅ Ya, setelah gerbang menerima | (kosong) |
| 3. Agen manusia | Diketik agen | ✅ Ya, semua jalur kirim | human + id agen |
whatsapp_messages adalah satu-satunya riwayat yang dilihat AI. Tanpa catatan balasan agen, AI tidak pernah tahu ada manusia yang sudah menjawab dan ikut membalas di percakapan yang sudah diambil alih. Lihat Siapa Memegang Percakapan.
Karena nominal, nama dokter, dan tanggal tidak boleh salah sebut. Template pesan pembayaran ditulis di kode, membaca nilai langsung dari baris Payment dan BookingRequest. AI tidak pernah menyusun kalimat konfirmasi lunas.
Prinsip lintas-alur yang wajib dipahami
1. Idempoten — semuanya boleh diulang
Hal yang sama berlaku untuk sapuan bookings:reconcile (tiap 5 menit), contacts:sync (tiap 10 menit), dan simrs:sync.
2. Uang masuk selalu menghasilkan sesuatu
Tidak ada satu jalur pun yang membuang callback lunas tanpa jejak. Kalau ada yang gagal:
3. AI tidak pernah melihat data pelanggan lain
Setiap tool AI mengambil identitas pasien dari nomor percakapan, bukan dari argumen model. Tidak ada tool yang menerima patient_id.
4. Kegagalan tidak boleh diam
Setiap jalur gagal meninggalkan satu baris log dengan pesan khas. Daftar pesan log penting ada di Pemantauan & Troubleshooting.