Tampilan & Laporan
Halaman ini membahas empat fitur yang mengontrol cara tim Anda memfilter inbox, menyusun widget dashboard, menerima laporan berkala via email, dan menelusuri riwayat pengiriman massal.
Tampilan Bersama (Shared Inbox Views)
Rute: /settings/shared-views
Shared inbox views adalah filter inbox yang dapat digunakan bersama oleh seluruh tim — atau dibatasi ke divisi tertentu. Setiap view menyimpan sekumpulan filter dalam format JSON (mis. status, prioritas, kanal) sehingga agent tidak perlu mengulang konfigurasi filter secara manual setiap kali membuka inbox.
Cara kerja
Code
Membuat atau mengedit view
- Buka Settings → Shared Views.
- Klik New View di pojok kanan atas.
- Isi formulir:
- Name — wajib diisi, tidak boleh kosong.
- Description — opsional, keterangan singkat untuk tim.
- Filters (JSON) — objek JSON berisi kriteria filter, mis.
{"status":"open","channel":"whatsapp"}. - Division ID — UUID divisi jika view hanya untuk satu divisi; kosongkan untuk semua divisi.
- Sort Order — urutan tampil (default
0); nilai lebih kecil muncul lebih dulu.
- Klik Create atau Update.
Hanya view dengan is_active = true yang dikembalikan oleh API. Untuk menonaktifkan view tanpa menghapusnya, set is_active ke false melalui edit form atau langsung via API.
Menghapus view
Klik ikon tempat sampah di baris view, lalu konfirmasi. Penghapusan permanen — tidak ada soft-delete.
Endpoint (tag Shared Inbox Views)
| Aksi | Endpoint |
|---|---|
| List view aktif | GET /api/shared-inbox-views |
| Buat view | POST /api/shared-inbox-views |
| Update view | PATCH /api/shared-inbox-views/{id} |
| Hapus view | DELETE /api/shared-inbox-views/{id} |
Skema lengkap di API Reference.
Gunakan sort_order untuk mengurutkan view paling sering dipakai di bagian atas. View dengan sort_order sama diurutkan secara alfabet berdasarkan name.
Tata Letak Dashboard
Rute: /settings/dashboard-layout
Setiap agent dapat menyusun widget mana yang muncul di dashboard mereka dan urutan tampilannya. Konfigurasi disimpan per-agent — perubahan Anda tidak mempengaruhi tampilan agent lain.
Widget yang tersedia
| Tipe widget | Label |
|---|---|
conversations_overview | Conversations Overview |
response_time | Response Time |
csat_score | CSAT Score |
active_agents | Active Agents |
channel_distribution | Channel Distribution |
sla_compliance | SLA Compliance |
recent_activity | Recent Activity |
my_conversations | My Conversations |
Mengatur tata letak
- Buka Settings → Dashboard Layout.
- Panel Available Widgets di kanan menampilkan semua widget yang belum aktif.
- Klik
+ Label Widgetuntuk menambahkan ke daftar Active Widgets. - Gunakan tombol ▲ / ▼ untuk mengubah urutan.
- Klik Remove untuk mengeluarkan widget dari layout.
- Klik Save Layout untuk menyimpan.
Setiap tipe widget hanya dapat ditambahkan satu kali. Tombol di panel Available Widgets akan dinonaktifkan (grayed out) jika widget sudah ada di layout aktif.
Penyimpanan
Layout disimpan ke tabel dashboard_layouts dengan upsert pada agent_id. Jika belum ada layout tersimpan, API mengembalikan array kosong sebagai default.
Endpoint (tag Dashboard)
| Aksi | Endpoint |
|---|---|
| Ambil layout | GET /api/dashboard/layout |
| Simpan layout | PUT /api/dashboard/layout |
Skema lengkap di API Reference.
Laporan Terjadwal
Rute: /settings/reports
Fitur ini memungkinkan admin dan supervisor membuat laporan analitik berkala yang dikirim otomatis via email. Halaman memiliki tiga tab: Scheduled Reports, Quick Reports, dan Report History.
Tab: Scheduled Reports
Laporan terjadwal dieksekusi oleh background scheduler (scheduler.rs) yang berjalan setiap 30 detik — scheduler mengambil semua laporan dengan next_run_at <= NOW() dan is_active = true, lalu mengirim email HTML, kemudian memperbarui last_sent_at dan menghitung next_run_at berikutnya.
Membuat laporan terjadwal:
- Buka Settings → Reports → Scheduled Reports.
- Klik New Report.
- Isi formulir:
- Report Name — nama laporan, wajib diisi.
- Frequency —
Daily,Weekly, atauMonthly. - Report Type — lihat tabel di bawah.
- Recipients — alamat email dipisah koma, titik koma, atau baris baru. Minimal satu email valid.
- First Send / Next Run — waktu pertama laporan dikirim (datetime-local). Setelah terkirim, jadwal berikutnya dihitung otomatis.
- Active — centang untuk mengaktifkan; hapus centang untuk menjeda tanpa menghapus.
- Klik Create Report.
Tipe laporan:
| Nilai | Label | Isi laporan |
|---|---|---|
overview | Conversations Summary | Total, open, resolved conversations; contacts; agents online |
agent_performance | Agent Performance | Per-agent: open, resolved, total, avg FRT, avg AHT (maks. 50 agent) |
channel_metrics | Channel Analytics | Per-kanal: jumlah kontak dan percakapan |
full | Full Report | Gabungan ketiga bagian di atas |
Jadwal pengiriman berikutnya:
| Frekuensi | Interval |
|---|---|
daily | +1 hari |
weekly | +7 hari |
monthly | +30 hari (perkiraan) |
Aksi cepat per laporan:
- Power icon — aktifkan / jedakan laporan.
- Send icon — kirim sekarang (
POST /api/scheduled-reports/{id}/send) tanpa menunggu jadwal. - Edit icon — buka form edit.
- Hapus — klik ikon tempat sampah, konfirmasi dengan Confirm.
Tab: Quick Reports
Unduh laporan on-demand sebagai file CSV tanpa perlu membuat jadwal.
- Pilih rentang tanggal (From / To) atau gunakan preset Last 7 days, Last 30 days, Last 90 days.
- Klik Download CSV pada salah satu kartu laporan.
Jenis quick report:
| Kartu | Data yang diunduh |
|---|---|
| Conversations Report | Metrik overview dari GET /api/analytics/overview |
| Agent Performance | Metrik per-agent dari GET /api/analytics/agents |
| CSAT Report | Ringkasan dan per-agent dari GET /api/analytics/csat?period=30d |
| Channel Analytics | Breakdown per-kanal dari GET /api/analytics/channels |
Quick report diunduh langsung ke browser sebagai .csv. Tidak ada data yang dikirim ke server — file dibuat di sisi klien dari respons API analytics yang sudah ada.
Tab: Report History
Log lokal dari laporan yang telah dikirim atau diunduh dalam sesi halaman saat ini. History tidak disimpan ke server — membuka ulang halaman akan mengosongkan daftar.
Hak akses
Semua endpoint scheduled-reports memerlukan permission settings.manage (hanya admin dan supervisor).
Endpoint (tag Scheduled Reports)
| Aksi | Endpoint |
|---|---|
| List laporan | GET /api/scheduled-reports |
| Detail laporan | GET /api/scheduled-reports/{id} |
| Buat laporan | POST /api/scheduled-reports |
| Update laporan | PATCH /api/scheduled-reports/{id} |
| Hapus laporan | DELETE /api/scheduled-reports/{id} |
| Kirim sekarang | POST /api/scheduled-reports/{id}/send |
Skema lengkap di API Reference.
SMTP harus dikonfigurasi via environment variable (SMTP_HOST, SMTP_PORT, SMTP_FROM_ADDRESS, SMTP_USERNAME, SMTP_PASSWORD, SMTP_ENCRYPTION) agar pengiriman email berhasil. Jika SMTP_HOST kosong, sistem mencoba pengiriman ke localhost:1025 (Mailpit untuk development). Laporan dengan daftar penerima kosong akan ditolak dengan error validasi.
Riwayat Bulk Send
Rute: /settings/bulk-send-history
Halaman ini menampilkan log historis dari semua operasi pengiriman massal (bulk send) template WhatsApp yang pernah dijalankan di platform. Berguna untuk memantau status kampanye broadcast, mendeteksi kegagalan pengiriman, dan mengaudit penggunaan template.
Kolom tabel
| Kolom | Deskripsi |
|---|---|
| Template | Nama template (template_name) atau 8 karakter pertama dari template_id jika nama tidak tersedia |
| Status | pending, in_progress, completed, atau failed |
| Total | Jumlah kontak yang ditargetkan (total_contacts) |
| Sent | Jumlah pesan berhasil dikirim (sent_count) |
| Failed | Jumlah pesan gagal (failed_count) |
| Date | Waktu operasi dibuat (created_at) |
Memuat data
Halaman memuat hingga 100 log terbaru saat pertama kali dibuka, diurutkan dari yang terbaru. Tidak ada auto-refresh — muat ulang halaman untuk melihat entri baru.
Endpoint
| Aksi | Endpoint |
|---|---|
| List log | GET /api/bulk-send-logs |
| Statistik agregat | GET /api/analytics/bulk-sends |
Parameter query untuk GET /api/bulk-send-logs:
limit— jumlah record (default50, maks200)offset— offset untuk paginasi
Endpoint GET /api/analytics/bulk-sends mengembalikan statistik agregat termasuk delivery_rate dan breakdown per-template, berguna untuk tampilan ringkasan di dashboard analytics.
Skema lengkap di API Reference.
Untuk menelusuri detail setiap penerima dalam satu operasi bulk send (siapa yang berhasil, siapa yang gagal), gunakan halaman Kampanye Broadcast yang menampilkan tabel campaign_recipients.
Rute terkait
- Kampanye Broadcast — membuat dan memantau kampanye broadcast
- Analytics & Laporan — grafik tren dan tabel metrik lengkap
- Kebijakan SLA — konfigurasi SLA yang muncul di widget
sla_compliance - Divisi — UUID divisi untuk scope shared inbox views