Lanjut ke konten
Samkarsa Logbook

BiZETO v1.0.0-004: Sinkronisasi Real-Time Inbox WhatsApp dan Normalisasi Whitelist Fleksibel

Pembaruan modul percakapan BiZETO: pelepasan filter query inbox untuk visibilitas chat menyeluruh, batas cutoff 11:00 WIB, dan parsing nomor whitelist fleksibel.

2mnt baca

Setelah perangkat WhatsApp berhasil dipasangkan (paired) ke sistem BiZETO, pesan masuk yang diterima server belum muncul pada tampilan Inbox Chat Web (/conversations/whatsapp) dan respons AI Sales Agent belum terpicu optimal. Investigasi mendalam menemukan:

  1. Filter Query Inbox Terlalu Ketat:
    • Endpoint GET /api/chats pada chat_handler.go menerapkan klausul EXISTS (SELECT 1 FROM whitelist w ...) di tingkat database.
    • Akibatnya, seluruh pesan percakapan dari nomor yang belum terdaftar di whitelist disembunyikan dari Inbox Web UI.
  2. Parsing Whitelist Belum Fleksibel:
    • Masukan nomor telepon dipisahkan menggunakan koma (,) atau spasi, namun sebelumnya hanya di-split berdasarkan baris baru (\n), sehingga tersimpan sebagai string tunggal yang tidak cocok dengan JID pengirim.
  3. Filter Batas Waktu Sinkronisasi (Cutoff):
    • Dibutuhkan batas waktu sinkronisasi agar hanya pesan aktif mulai 5 Oktober 2026 pukul 11:00:00 WIB (1791172800) yang diproses dan ditampilkan di Inbox CRM.

  • Visibilitas Lengkap: Query GetChats dan GetMessages kini menampilkan seluruh riwayat pesan masuk dan keluar untuk tenant terkait tanpa dibatasi oleh whitelist.
  • Cutoff Filter Timestamp: Menambahkan klausul AND m.timestamp >= 1791172800 pada GetChats dan GetMessages untuk membatasi pesan yang ditarik hanya mulai 5 Oktober 2026 jam 11:00 WIB.

  • Multi-Delimiter Parser: UpdateWhitelist kini memisahkan input nomor telepon berdasarkan baris baru (\n), koma (,), titik koma (;), spasi ( ), dan tab (\t).
  • Auto-Generation Variasi Nomor: Menyimpan nomor asli, nomor bersih tanpa format, format 08..., format 628..., dan JID WhatsApp @s.whatsapp.net secara otomatis ke tabel whitelist.

  • Pada event listener WhatsMeow handleMessage, pesan lawas dari riwayat sinkronisasi dengan timestamp sebelum cutoff 11:00 WIB langsung diabaikan sebelum disimpan ke database atau dikirim ke engine AI.

  • Binary backend telah di-cross compile ke target Linux AMD64 dan dideploy ke server VPS.
  • Container bizeto_backend dan bizeto_frontend berhasil direstart dan berjalan normal.
  • Percakapan masuk telah tersinkronisasi dan tampil pada halaman Inbox Chat BiZETO.