Portal Admin Widget Chat

Portal ini digunakan untuk mengelola konfigurasi widget chatbot multi-tenant, termasuk pengaturan produk, tools, knowledge base, tenant, dan konfigurasi widget.

Fungsi Portal
Konfigurasi di portal ini menentukan perilaku widget yang di-embed ke aplikasi klien, termasuk widget key, sumber knowledge, dan integrasi tools.
Output SDK Widget
Bundle widget berbentuk IIFE tersedia pada path build dist/widget.js. Setelah script termuat, elemen chat-widget otomatis ditambahkan ke document.body dengan isolasi Shadow DOM.

Cara Menggunakan Widget di Klien

1) Sematkan Script

Tambahkan script widget pada halaman host, lalu isi data-widget-key menggunakan widget key yang di-generate dari portal admin.

2) Kontrol Widget dari Global API

SDK menyediakan API global di window.ChatWidget dengan method: init(), open(), close(), resetSession(), clearUserSession(), dan destroy().

Referensi Method Widget

Semua method berikut tersedia melalui window.ChatWidget setelah script widget berhasil termuat.

window.ChatWidget?.init()Mount atau inisialisasi widget secara manual, berguna untuk halaman SPA.
window.ChatWidget?.open()Membuka panel chat widget.
window.ChatWidget?.close()Menutup panel chat widget.
window.ChatWidget?.resetSession(): Promise<void>Mengakhiri session percakapan aktif, menghapus session lokal, history widget, unread count, dan last-read state.
window.ChatWidget?.clearUserSession(): Promise<void>Mengakhiri session aktif lalu membersihkan user identity dan auth token lokal. Gunakan saat user logout.
window.ChatWidget?.setAuthToken(token: string)Menyetel auth token untuk session chat terautentikasi dan menyimpannya per widget key.
window.ChatWidget?.clearAuthToken()Menghapus auth token session dari backend jika masih ada session aktif, lalu membersihkan token lokal.
window.ChatWidget?.setUserIdentity(identity: UserIdentity)Menyetel identity user untuk session, dengan userId wajib dan name, customerId, email, phoneNumber, company opsional.
window.ChatWidget?.clearUserIdentity()Menghapus identity user dari backend jika masih ada session aktif, lalu membersihkan identity lokal.
window.ChatWidget?.setZIndex(value: number | string)Menyetel z-index host widget. Beri nilai kosong untuk kembali ke default.
window.ChatWidget?.destroy()Menghapus elemen widget dari DOM, berguna untuk cleanup saat route SPA di-unmount.
3) Auth Token & User Identity

Setel auth token untuk sesi chat terautentikasi, dan/atau set user identity untuk personalisasi dan tracking.

  • Auth token mengaktifkan tools berbasis role. Identity menghubungkan userId, name, customerId, email, phoneNumber, dan company ke sesi.
  • Keduanya disimpan per widget key di localStorage dan bertahan setelah refresh halaman.

Auth Token

User Identity

4) Cleanup Widget Saat Ganti Route (SPA)

Untuk SPA, panggil window.ChatWidget.destroy() saat komponen unmount agar elemen widget dihapus dari DOM.

Catatan Produksi
  • Gunakan nama file berversi di S3, contoh: widget@1.2.3.js. Simpan widget.js sebagai alias latest/stable.
  • Jangan timpa file berversi (widget@x.y.z.js) agar rollback dan cache tetap aman.
  • Gunakan cache header immutable untuk file berversi. Gunakan TTL pendek atau no-cache untuk widget.js (latest).