WA Insights
Ringkasan
WA Insights (/wa-insights) menampilkan metrik performa WhatsApp Business langsung dari Meta Graph API — bukan dari database internal OmniStream. Tiga kategori metrik tersedia secara bersamaan:
- Message Delivery — pengiriman pesan harian (sent, delivered, read, failed)
- Conversation Billing — jumlah percakapan yang dikenai tagihan Meta, dikelompokkan per tipe dan arah
- Template Performance — statistik delivery + engagement per template yang terkirim
Hak akses: Halaman ini hanya dapat diakses oleh peran supervisor dan admin (izin wa_insights.view). Agent reguler akan mendapat respons 403 Forbidden.
Data bergantung sepenuhnya pada ketersediaan Meta Graph API. Jika akun WhatsApp Business belum terhubung di Integrations, halaman ini akan menampilkan pesan "No WhatsApp Account Connected" dan tidak akan ada data yang dimuat.
Sumber data
Ketiga endpoint backend (GET /api/wa-insights/messages, /conversations, /templates) tidak membaca PostgreSQL atau MongoDB — setiap request langsung meneruskan panggilan ke Meta Graph API menggunakan WABA ID dan access token dari tabel integration_accounts. Jika tidak ada akun spesifik yang dipilih, sistem jatuh kembali ke variabel lingkungan META_WABA_ID dan META_ACCESS_TOKEN.
Filter yang tersedia
| Filter | Nilai | Keterangan |
|---|---|---|
| Date Range | 7d, 30d, 90d | Preset otomatis dihitung mundur dari hari ini |
| Custom Range | tanggal start + end | Format YYYY-MM-DD; klik Apply setelah memilih |
| Account | dropdown akun aktif | Hanya muncul jika ada lebih dari satu akun WhatsApp aktif; akun default dipilih otomatis |
Tanggal dikirim ke Meta API sebagai Unix timestamp UTC (konversi dilakukan di backend).
Metrik yang tersedia
A. Message Delivery
Data harian dari analytics Meta Graph API dengan granularitas DAY dan metrik SENT, DELIVERED, READ, FAILED.
| Metrik | Deskripsi |
|---|---|
| Total Sent | Total pesan terkirim dalam periode |
| Delivery Rate | delivered / sent × 100% — dihitung di frontend dari agregat harian |
| Read Rate | read / delivered × 100% |
| Failed | Pesan yang gagal terkirim |
Bar chart harian menumpuk tiga layer: Sent (biru muda), Delivered (hijau), Read (ungu) — proporsi dihitung relatif terhadap nilai sent tertinggi dalam periode.
B. Conversation Billing
Data dari conversation_analytics Meta Graph API, granularitas DAILY, dimensi CONVERSATION_TYPE dan CONVERSATION_DIRECTION.
| Metrik | Deskripsi |
|---|---|
| Total Conversations | Semua percakapan dalam periode |
| User-Initiated | Percakapan yang dimulai oleh pelanggan (direction mengandung user) |
| Business-Initiated | Selisih total dikurangi user-initiated |
Breakdown per tipe percakapan ditampilkan sebagai badge berwarna:
| Tipe | Warna | Keterangan |
|---|---|---|
MARKETING | Oranye | Kampanye promosi |
UTILITY | Biru | Notifikasi transaksional |
SERVICE | Hijau | Balasan dalam jendela layanan 24 jam |
AUTHENTICATION | Ungu | OTP / verifikasi |
FREE_TIER | Abu | Di bawah batas gratis bulanan |
FREE_ENTRY_POINT | Abu muda | Masuk dari iklan Click-to-WhatsApp |
Tipe FREE_TIER dan FREE_ENTRY_POINT tidak dikenai biaya Meta. Pantau proporsi tipe MARKETING karena kategori ini memiliki tarif tertinggi.
C. Template Performance
Data dari endpoint /{waba_id}/template_analytics Meta Graph API, granularitas DAILY, metrik SENT, DELIVERED, READ, CLICKED.
| Kolom | Deskripsi |
|---|---|
| Template | Nama template |
| Sent | Total terkirim dalam periode |
| Delivered | Berhasil diterima perangkat tujuan |
| Read | Dibuka oleh penerima |
| Clicked | Tombol CTA diklik |
| Click Rate | clicked / sent × 100% |
Klik judul kolom (Sent, Delivered, Read, Clicked) untuk mengurutkan secara descending atau ascending.
Cara membaca data
- Delivery Rate rendah (< 85%) biasanya menandakan banyak nomor tidak aktif atau pesan terblokir di sisi penerima. Periksa log
FAILEDharian di chart untuk melihat lonjakan. - Read Rate tinggi tapi Click Rate rendah pada template: konten CTA perlu direvisi, atau tombol tidak relevan dengan konteks percakapan.
- Lonjakan
MARKETINGdi Conversation Billing tanpa campaign yang berjalan: kemungkinan ada pengiriman template marketing yang tidak tercatat di OmniStream — periksa halaman Kampanye Broadcast. - Data kosong / semua nol: pastikan WABA ID dan access token di akun integrasi masih valid. Token Meta bisa kedaluwarsa; perbarui di halaman Channels → WhatsApp.
Endpoint backend
| Tujuan | Endpoint | Sumber data |
|---|---|---|
| Pengiriman pesan harian | GET /api/wa-insights/messages | Meta Graph API — analytics |
| Billing percakapan | GET /api/wa-insights/conversations | Meta Graph API — conversation_analytics |
| Performa template | GET /api/wa-insights/templates | Meta Graph API — template_analytics |
Parameter kueri untuk ketiga endpoint:
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
start | string | Ya | Tanggal awal format YYYY-MM-DD |
end | string | Ya | Tanggal akhir format YYYY-MM-DD |
integration_account_id | uuid | Tidak | Jika tidak dikirim, backend pakai konfigurasi global |
Contoh pemanggilan langsung:
Code
Code
Skema respons lengkap tersedia di API Reference.
Rute terkait
- Analytics & Laporan — metrik operasional internal (percakapan, agent, CSAT)
- Kampanye Broadcast — pengiriman template WhatsApp massal
- Kebijakan SLA — aturan waktu respons per kanal