6. Inbox / Percakapan WhatsApp
Buka Percakapan dari sidebar atau /inbox.
Layout 3 kolom: daftar percakapan (kiri) · thread chat (tengah) · panel kontak (kanan).
6.1 Memulai percakapan
Buka halaman Kontak → klik ikon chat (💬) di baris kontak. Percakapan baru dibuat dan langsung terbuka di Inbox.
Saat masuk halaman Percakapan tanpa lewat kontak, area chat akan kosong dengan pesan “Pilih percakapan” (seperti WhatsApp Web). Klik salah satu percakapan di daftar kiri untuk membukanya.
6.2 Filter daftar percakapan
Empat pill di atas daftar:
- Semua — semua percakapan workspace
- Saya — hanya yang ditugaskan ke Anda
- Belum dibalas — percakapan dimana pesan terakhir dari pelanggan (belum dibalas tim)
- Bot — belum aktif (v2)
6.3 Cari percakapan
Kotak “Cari percakapan…” mencari tiga hal sekaligus (case-insensitive):
- Nama kontak — mis. ketik
budiketemu semua percakapan dengan kontak yang mengandung “Budi”. - Nomor telepon — mis. ketik
62812ketemu kontak yang nomornya mengandung itu. - Isi pesan di percakapan — mis. ketik
resiketemu percakapan yang punya pesan berisi “RESI PENGIRIMAN JNT 12345”, atau ketiklebaranketemu percakapan yang pernah berbahas promo Lebaran.
Pencarian server-side, langsung query DB — aman dipakai meski riwayat pesan sudah ribuan.
6.4 Kirim balasan
Di thread chat (kolom tengah):
- Ketik pesan di kotak bawah (“Ketik balasan untuk…”).
- Tekan Enter untuk kirim, atau klik tombol “Kirim”.
- Bubble baru muncul (hijau, di kanan) dengan timestamp + status tick.
Status tick: ✓ = pesan diterima provider (terkirim); ✓✓ abu = sampai HP pelanggan (delivered); ✓✓ teal = dibaca pelanggan (read). Perubahan status realtime tanpa reload.
Saat WhatsApp belum tersambung, kotak balasan otomatis disabled dengan banner “WhatsApp tidak terkoneksi” + link Sambungkan ke Pengaturan → WhatsApp Business. Hubungkan dulu (lihat §12 Profil & WhatsApp setup) supaya bisa balas.
Thread otomatis scroll ke pesan terbaru saat membuka percakapan dan saat ada pesan baru — tidak perlu scroll manual.
Pesan media masuk (inbound)
Jika pelanggan kirim gambar, video, voice note, stiker, atau dokumen lewat WhatsApp, pesan tersebut otomatis di-download oleh Karibin dan tampil langsung di bubble:
- Gambar / stiker → ditampilkan inline; klik untuk membuka ukuran asli di tab baru.
- Video → pemutar video inline (controls native).
- Voice note / audio → pemutar audio inline (play/pause/scrub).
- Dokumen (PDF, DOC, XLS, …) → kotak unduhan dengan ikon dokumen, klik untuk unduh.
Caption pelanggan (jika ada) muncul di bawah media. Jika tidak ada caption, ditampilkan label generic dalam tanda kurung — (gambar), (video), (pesan suara), (stiker), (dokumen).
Kirim media (outbound)
Klik ikon 📎 (paperclip) di sisi kiri composer untuk pilih file. Dialog preview muncul:
- Preview — gambar/video/audio ditampilkan inline; dokumen muncul sebagai kartu placeholder.
- Caption (opsional) — tambahkan teks yang akan muncul di bawah media di WhatsApp pelanggan. Audio + stiker tidak mendukung caption (akan diabaikan).
- Klik Kirim untuk upload + kirim. Bubble baru langsung muncul di chat dengan preview yang sama.
Format yang didukung: gambar (JPG/PNG/WebP/GIF), video (MP4/3GP), audio (OGG/MP3/M4A/AMR), dokumen (PDF/DOC/DOCX/XLS/XLSX/PPT/TXT/CSV). Stiker dikirim otomatis kalau file image/webp di-upload.
Batas ukuran: 16 MB per file (sesuai limit video Meta).
Catatan teknis: media inbound & outbound disimpan di server Karibin (folder uploads/) selama 7 hari (cache header immutable, max-age=7d). Ini berlaku untuk kedua mode — Mode Resmi (Meta) dan Mode Cepat (Baileys QR). Cold-contact guard (Mode Cepat) juga berlaku — kirim media ke kontak yang belum pernah chat duluan akan minta konfirmasi.
6.5 Tugaskan / Lepas tugas
Di header thread chat, klik ikon “Tugaskan” (👥):
- Pertama klik → percakapan ditugaskan ke Anda. Ikon di-highlight teal.
- Klik lagi → lepas tugas (tidak ada agen ditugaskan).
Daftar di kiri menunjukkan nama agen (“Demo”, dll) di samping status.
6.6 Tandai sebagai selesai
Klik tombol “Selesai” di header thread. Status berubah jadi RESOLVED, tombol jadi “Buka lagi”. Klik lagi untuk membuka kembali ke status OPEN.
6.7 Pesan belum dibaca
Setiap percakapan menampilkan badge merah berisi jumlah pesan masuk yang belum dibaca:
- Di daftar (kolom kiri): chip ungu kecil dengan angka, muncul di sebelah kanan baris ketika ada pesan INBOUND baru.
- Di sidebar utama: angka total pesan belum dibaca seluruh workspace muncul di samping menu “Percakapan”.
Membuka percakapan secara otomatis menandainya sudah dibaca — badge hilang setelah satu kali klik. Tidak perlu tombol “tandai dibaca” terpisah.
6.8 Inbox realtime
Halaman Inbox terhubung ke server lewat koneksi streaming — Anda tidak perlu refresh ketika:
- Pesan masuk baru dari pelanggan tiba (badge unread, preview, dan urutan daftar otomatis ter-update)
- Anggota tim lain di workspace yang sama membuat percakapan baru atau mengirim balasan
- Status atau penugasan percakapan berubah
- Status pesan keluar berubah otomatis (✓ → ✓✓ delivered → ✓✓ teal read) saat pelanggan menerima/membaca — tanpa reload
Koneksi otomatis tersambung saat Anda masuk ke aplikasi dan terus terbuka selama tab browser aktif. Jika koneksi terputus (mis. ganti workspace, logout, restart server), aplikasi otomatis re-konek saat tab dibuka kembali.
6.9 Panel kontak (kanan)
Menampilkan ringkasan kontak yang sedang dibuka: avatar, nama, nomor, email, jumlah pesan, status percakapan. Klik “Buka di Kontak” untuk lompat ke halaman Kontak.
6.10 Shortcut keyboard
Saat fokus tidak di input/textarea (yaitu tidak sedang mengetik), shortcut ini aktif di halaman Inbox:
| Tombol | Aksi |
|---|---|
| j | Pindah ke percakapan berikutnya (turun di daftar kiri) |
| k | Pindah ke percakapan sebelumnya (naik di daftar kiri) |
| r | Fokus ke kotak balasan (siap ketik). Perlu WhatsApp tersambung. |
| e | Toggle status: Selesai ↔ Buka lagi (sama dengan tombol di header thread) |
Shortcut tidak aktif saat Anda sedang mengetik di input/textarea/dropdown — supaya j tidak hijack ketika Anda ngetik nama atau pesan.