# Pelanggan

Menu **CRM > Pelanggan** adalah basis data seluruh kontak Anda. Di sini Anda menambah, mengimpor, mengekspor, merapikan duplikat, mengatur consent (persetujuan pesan), dan membuka profil lengkap seorang pelanggan.

## Sebelum mulai

- **Peran:** Owner, Admin, dan Agent dapat membuka halaman ini. Hapus pelanggan, merge duplikat, dan ubah consent hanya untuk Owner dan Admin. Untuk Agent, menu tetap tampil tetapi server menolak aksi tersebut.
- Hubungkan minimal satu nomor [WhatsApp](/hubungkan-channel/whatsapp) agar kartu statistik terisi penuh.

![Empat kartu statistik di bagian atas halaman Pelanggan](/images/pelanggan-ringkasan.png)

## Kartu statistik

Empat angka di atas tabel: **Total Pelanggan**, **Menyetujui**, **Window Aktif**, dan **Diblokir**. Pilih nomor WhatsApp di pemilih kiri atas untuk melihat angka satu nomor.

Kartu hanya menghitung pelanggan yang terkait nomor WhatsApp terhubung. Pelanggan hasil impor CSV, atau dari Instagram dan Messenger tanpa nomor WhatsApp, tetap tampil di tabel tetapi tidak masuk hitungan kartu.

## Membaca daftar pelanggan

Tabel memuat satu halaman data dari server, jadi tetap cepat walau kontak Anda puluhan ribu.

1. Baca kolom: Customer, Consent, Payment, Channel, Message Window, Tags, Score, Last Contact, dan Added.
2. Klik judul kolom untuk mengurutkan. Bawaannya, pelanggan terbaru ada di atas.
3. Di bagian bawah, pilih jumlah baris per halaman: 10, 20, 50, 100, 250, atau 500 (bawaan 50). Pilihan ini diingat per peramban, bukan per akun.
4. Gunakan **View** untuk menyembunyikan atau menampilkan kolom.

Badge Score berwarna abu-abu di bawah 50, biru mulai 50, dan hijau mulai 80.

## Mencari dan memfilter

1. Ketik di kolom **Search customers…** untuk mencari nama, nomor telepon, email, atau username Instagram/WhatsApp.
2. Buka filter **Consent**, **Payment**, **Channel** (WhatsApp, Instagram, Messenger, Telegram, TikTok), dan **Message Window** (Active atau Inactive).
3. Pilih **Dasar tanggal** (Dibuat atau Pesan terakhir), lalu rentang tanggalnya.
4. Klik **Reset** untuk menghapus semua filter dan pencarian.

Filter tanggal Pesan terakhir hanya mencakup pelanggan yang pernah mengirim pesan. Filter Channel dan Consent hanya memakai pilihan pertama bila Anda mencentang lebih dari satu. Ekspor memakai filter yang sama.

## Menambah pelanggan

1. Klik **Add Customer**.
2. Isi **Full Name** dan **WhatsApp Phone Number**. Nomor diawali `+` dan kode negara, tanpa spasi, misalnya `+628123456789`.
3. Pilih **WhatsApp Account** (nomor bisnis yang akan memiliki kontak ini).
4. Pilih **Initial Consent Status**. Pilih Consented hanya bila kontak benar-benar setuju. Not Consented berarti hanya pesan transaksional.
5. Klik **Add Customer** untuk menyimpan.

Formulir tambah saat ini hanya menyimpan nama, nomor, akun WhatsApp, dan consent awal. Isi email dan tahap pipeline lewat **Edit Pelanggan**, dan tag lewat **Bulk edit** atau panel pelanggan di OneInbox. Nomor yang sama pada akun WhatsApp yang sama ditolak sebagai duplikat.

## Menu aksi per baris

Klik menu di ujung baris untuk: **Lihat Detail**, **Edit Pelanggan**, **Kirim Pesan** (membuka [OneInbox](/fitur-utama/oneinbox) untuk nomor itu), **Merge duplikat**, **Tandai setuju** atau **Tandai tidak setuju**, dan **Hapus Pelanggan**.

Saat mengubah pelanggan, Anda bisa mengganti nama, email, dan tahap pipeline. Nomor telepon terkunci setelah dibuat. Daftar tahap di formulir ini hanya berisi tahap pipeline default; pindahkan ke pipeline lain lewat [papan Pipeline](/crm/pipeline).

## Detail pelanggan

Pilih **Lihat Detail** untuk membuka panel samping. Header menampilkan Pipeline Stage dan Lead Score. Panel punya tab:

- **Details:** Contact Information, panel atribusi iklan (bila ada), Marketing Consent, jendela 24 jam, Tags, Custom Fields, Next Follow Up, dan ringkasan aktivitas.
- **Activity:** timeline kejadian dan catatan.
- **Payments:** riwayat link pembayaran pelanggan.

Lead Score dihitung dari kelengkapan profil, jumlah pesan, tag, custom field, dan tahap pipeline. Nilainya dihitung ulang saat pesan masuk atau keluar dan saat profil berubah.

![Panel detail pelanggan, tab Details, dengan tahap pipeline, skor lead, dan persetujuan pemasaran](/images/pelanggan-detail.png)

## Mengimpor dari CSV

1. Siapkan berkas `.csv` dengan baris judul dan kolom nomor telepon.
2. Klik **Import CSV**, lalu (opsional) **Download Template** untuk contoh format.
3. Susun kolom: `phoneNumber` (wajib, minimal 10 karakter), `name`, `consentStatus`, dan `consentSource`.
4. Seret berkas ke kotak unggah atau klik untuk memilih. Periksa pratinjau (5 baris pertama dan jumlah kontak).
5. Klik **Import N Kontak**.

Notifikasi menampilkan jumlah kontak yang berhasil dan gagal. Kontak yang sudah ada dihitung gagal.

- Kolom `consentStatus` yang kosong dianggap Consented. Isi `false`, `no`, `0`, atau `n` bagi kontak yang belum setuju. Impor hanya untuk kontak yang sudah memberi izin.
- Pemisah hanya koma sederhana. Nilai berisi koma di dalam tanda kutip tidak didukung.
- Satu nomor yang kurang dari 10 karakter membuat seluruh impor ditolak. Perbaiki lalu unggah ulang.
- Nomor yang sudah tersimpan lewat akun WhatsApp tidak dianggap sudah ada, sehingga bisa tertambah sebagai duplikat. Jalankan scan duplikat setelahnya.

## Mengekspor kontak dan chat

1. Terapkan filter (nomor, channel, rentang tanggal) bila hanya butuh sebagian data.
2. Opsional: centang baris tertentu untuk mengekspor yang dipilih saja.
3. Klik **Export Kontak + Chat**. Berkas CSV terunduh dan pemberitahuan **Export siap** muncul.

Ekspor dibatasi 2.000 pelanggan per unduhan. Bila melebihi, muncul pemberitahuan **Export dipotong**. Persempit rentang tanggal lalu ulangi. Berkas berisi data pribadi dan isi chat, jadi simpan dan bagikan dengan hati-hati.

## Bulk edit

1. Centang baris pelanggan (atau kotak header untuk satu halaman).
2. Klik **Bulk edit (N)** lalu pilih aksi: tandai setuju, tandai tidak setuju, pindahkan ke stage, tambah tag, tandai diblokir, atau hapus blokir.
3. Untuk stage, pilih tahapnya (atau **Tanpa pipeline stage**). Untuk tag, ketik tag dipisah koma.
4. Baca konfirmasi, lalu klik **Update pilihan**.

Hanya pelanggan yang memang perlu berubah dihitung. Seleksi baris hanya berlaku untuk halaman yang sedang dimuat, bukan seluruh hasil filter.

## Tag

Tag dapat ditambahkan lewat Bulk edit, panel pelanggan di OneInbox, atau otomatis oleh aturan [Auto Tagging](/crm/otomasi). Lead Score menambah nilai untuk setiap tag.

## Consent

Consent mencatat apakah kontak setuju menerima pesan pemasaran, beserta sumber dan riwayatnya.

1. Lihat status di kolom **Consent** atau di tab Details (Marketing Consent): Consented atau Not Consented. Pelanggan yang berhenti (opt-out) juga tampil sebagai Not Consented.
2. Ubah lewat menu baris (**Tandai setuju** atau **Tandai tidak setuju**) atau lewat Bulk edit.

Setiap perubahan tersimpan di log consent dengan sumber Admin Dashboard. Agent tidak dapat mengubah consent. Saat memilih penerima dari daftar pelanggan, [Broadcast](/fitur-utama/broadcast) hanya menyertakan pelanggan Consented yang tidak diblokir.

## Blacklist

Blacklist menandai kontak yang tidak boleh lagi menerima pesan massal dan follow-up otomatis.

1. Centang pelanggan lalu buka **Bulk edit**.
2. Pilih **Tandai pilihan diblokir**, atau **Hapus blokir pilihan** untuk membukanya kembali.
3. Konfirmasi dengan **Update pilihan**.

Blacklist berbeda dengan consent. Ia tetap memblokir pengiriman massal walau consent-nya Consented.

## Jendela 24 jam

Aturan Meta: balasan bebas hanya boleh dikirim dalam 24 jam sejak pesan terakhir pelanggan. Setelah itu hanya template yang disetujui. Kolom **Message Window** menampilkan badge Active dengan sisa waktu, atau No Active Window bila sudah lewat. Saat jendela tutup, kirim lewat Template Message di OneInbox (lihat [Template](/fitur-utama/template)).

Status jendela diperbarui berkala, kira-kira tiap 5 menit, jadi angka Window Aktif bisa tertinggal sebentar.

## Catatan pelanggan

1. Buka detail pelanggan > tab **Activity**, atau panel pelanggan di OneInbox (bagian Notes).
2. Ketik catatan pada **Add a note about this customer…**, lalu klik **Add Note**.

Catatan terlihat oleh seluruh tim, tidak terlihat oleh pelanggan, dan dibatasi 5.000 karakter. Di timeline ia muncul sebagai Note added.

## Activity timeline

Tab **Activity** menampilkan riwayat kronologis: pesan terkirim dan diterima, Stage changed, Field updated, Note added, Customer created, Consent changed, serta rangkaian pembayaran. Dari sini Anda bisa menelusuri siapa mengubah apa dan kapan.

## Custom field

Custom field adalah data tambahan di luar kolom bawaan. Owner atau Admin membuat definisinya di **Pengaturan CRM > Field Kustom** (lihat [Pipeline dan Pengaturan CRM](/crm/pipeline)). Nilainya tampil di detail pelanggan dan di panel pelanggan OneInbox. Nilai diisi lewat API atau otomasi; belum ada formulir manual di halaman Pelanggan.

## Scan dan merge duplikat

1. Di kartu **Scan nomor telepon duplikat**, klik **Scan duplikat**.
2. Telusuri grup nomor (25 grup per batch). Klik **Muat batch berikutnya** untuk lanjutan.
3. Klik **Buka grup** untuk melihat kandidat dalam satu nomor.
4. Pilih catatan yang dipertahankan sebagai **Survivor**.
5. Centang **Source** yang akan digabung, baca peringatan, lalu klik **Merge pilihan**.

Anda juga bisa memulai dari menu baris > **Merge duplikat**.

Setelah merge, pesan, catatan, aktivitas, percakapan, follow-up, appointment, dan relasi lain pindah ke survivor. Catatan sumber dihapus. Aturan gabung:

- Nilai survivor yang sudah terisi menang. Yang kosong diisi dari sumber terlama.
- Tag digabung. Blacklist dan consent bernilai ya bila salah satu catatan ya.
- Lead Score memakai nilai tertinggi. Catatan digabung.
- Bila nilai custom field bentrok, nilai survivor dipertahankan.

Merge hanya untuk Owner dan Admin, dan tidak bisa dibatalkan. Semua catatan harus memakai nomor telepon ternormalisasi yang sama. Pindai ulang dengan **Refresh scan** setelah menggabungkan.

## Menghapus pelanggan

Hanya Owner dan Admin. Pilih menu baris > **Hapus Pelanggan**, baca daftar data yang hilang (semua pesan chat, riwayat consent, catatan, nilai custom field, riwayat aktivitas), lalu konfirmasi.

Penghapusan permanen dan tidak ada fitur batalkan. Bila Anda hanya ingin menghentikan pesan, gunakan blacklist atau consent.

## Hasil yang diharapkan

- Kontak tersimpan lengkap dengan consent, tag, dan tahap pipeline.
- Tabel, jumlah total, dan ekspor mengikuti filter yang Anda pilih.
- Duplikat nomor tergabung menjadi satu pelanggan.

## Masalah umum

- **Total di kartu lebih kecil dari baris tabel.** Kartu hanya menghitung pelanggan yang terkait nomor WhatsApp terhubung.
- **Impor gagal sebagian.** Baris gagal satu per satu bila nomornya sudah pernah diimpor. Periksa notifikasi hasil impor.
- **Pesan bebas ditolak.** Jendela 24 jam sudah tutup. Kirim memakai template.
- **Agent ditolak saat mengubah consent, merge, atau hapus.** Minta Owner atau Admin melakukannya.
