Peran Pengguna
Peran Pengguna
OmniStream menggunakan Role-Based Access Control (RBAC) dengan tiga peran: Agent, Supervisor, dan Admin. Peran dihitung saat login dan disematkan di token JWT agent. Setiap endpoint REST dan halaman frontend memvalidasi peran sebelum memberikan akses.

Ringkasan matriks akses
| Area | Agent | Supervisor | Admin |
|---|---|---|---|
| Melihat inbox (assigned to me) | Ya | Ya | Ya |
| Melihat inbox divisi | Tidak | Ya | Ya |
| Melihat inbox seluruh workspace | Tidak | Tidak | Ya |
| Membalas percakapan | Ya (yang assigned ke saya) | Ya (di divisi) | Ya (semua) |
| Transfer percakapan sendiri | Ya | Ya | Ya |
| Transfer percakapan orang lain | Tidak | Ya (di divisi) | Ya |
| Membuat catatan internal | Ya | Ya | Ya |
| Membuat/menghapus tag percakapan | Ya | Ya | Ya |
| Membuka halaman Dashboard | Tidak | Ya | Ya |
| Membuka halaman Analytics | Tidak | Ya | Ya |
| Membuat campaign | Tidak | Ya | Ya |
| Mengelola quick reply (global) | Tidak (hanya favorit pribadi) | Ya | Ya |
| Mengelola agent dan divisi | Tidak | Tidak | Ya |
| Mengelola integrasi (WhatsApp, Instagram, Email) | Tidak | Tidak | Ya |
| Mengelola kebijakan SLA | Tidak | Tidak | Ya |
| Mengelola outgoing webhook | Tidak | Tidak | Ya |
| Mengelola CSAT | Tidak | Tidak | Ya |
| Melihat Activity Log | Tidak | Ya (divisi) | Ya (semua) |
Agent
Agent adalah front-liner yang langsung berinteraksi dengan
pelanggan. Mereka menghabiskan sebagian besar waktu di
/inbox, membalas pesan, membuat catatan, dan
mentransfer percakapan saat diperlukan.
Halaman yang dapat diakses agent
/inbox— kotak masuk percakapan ditugaskan/contacts— direktori kontak (hanya baca untuk yang tidak terkait dengan percakapan aktif mereka)/quick-replies— daftar quick reply workspace + favorit pribadi/profile— profil pribadi, ganti password
Yang tidak bisa dilakukan agent
- Tidak dapat melihat percakapan milik agent lain kecuali divisi yang sama dan supervisor sudah mengizinkan.
- Tidak dapat membuka dashboard analytics atau laporan kinerja.
- Tidak dapat menghapus quick reply global atau mengelola integrasi.
- Tidak dapat melihat pesan pelanggan di divisi lain.
Supervisor
Supervisor memimpin sebuah atau beberapa divisi. Mereka memantau kinerja agent, menangani eskalasi, membuat campaign broadcast, dan menjaga SLA tetap terpenuhi.
Halaman yang dapat diakses supervisor
- Semua halaman agent, plus:
/dashboard— metrik real-time/analytics— laporan jangka panjang/campaigns— broadcast WhatsApp/sla-policies— baca saja, tidak dapat mengubah/agents— daftar agent di divisinya (baca saja)
Yang ditambahkan dari agent
- Menerima semua event WebSocket untuk divisinya — bukan hanya percakapan yang ditugaskan kepadanya.
- Dapat men-transfer percakapan milik agent lain di divisi.
- Dapat melihat Activity Log divisi (siapa mengubah apa, kapan).
- Dapat melihat leaderboard kinerja agent.
Yang tidak bisa dilakukan supervisor
- Tidak dapat menambah/menghapus agent, divisi, atau integrasi channel.
- Tidak dapat mengubah kebijakan SLA, CSAT, atau outgoing webhook.
- Tidak dapat melihat percakapan di divisi lain.
Admin
Admin memiliki akses penuh ke workspace. Peran ini dialokasikan untuk pemilik sistem atau operator IT yang bertanggung jawab atas konfigurasi teknis dan kepatuhan.
Halaman khusus admin
/user-management— CRUD agent/integrations— konfigurasi channel/sla-policies— buat/edit kebijakan SLA/outgoing-webhooks— webhook ke sistem eksternal/settings— pengaturan umum workspace- Activity Log lengkap (seluruh workspace)
Tanggung jawab tipikal admin
- Onboarding agent baru dan assign ke divisi.
- Konfigurasi awal integrasi WhatsApp (kredensial Meta Cloud API), Instagram (OAuth), dan Email (SMTP).
- Menetapkan kebijakan SLA dan mengaktifkan CSAT.
- Men-setup campaign broadcast dan memvalidasi template WhatsApp.
- Mengaudit Activity Log saat terjadi insiden.
- Mengelola outgoing webhook ke sistem downstream (data warehouse, CRM eksternal, BI tool).
Bagaimana peran divalidasi
Setiap permintaan REST ke api-gateway harus menyertakan token JWT
di header Authorization: Bearer <token> atau cookie access_token.
Token berisi klaim role. Middleware di api-gateway akan menolak
permintaan dengan HTTP 403 jika peran tidak mencukupi.
Untuk detail teknis cara memvalidasi di backend, lihat RBAC developer.
Mengubah peran agent
Admin dapat mengubah peran seorang agent dari
/user-management:
- Klik nama agent.
- Pilih peran baru dari dropdown.
- Klik Save.
Endpoint:
PATCH /api/agents/{id} dengan body
{ "role": "supervisor" }.
Agent harus logout dan login ulang agar JWT baru dengan peran baru terbentuk. Token lama tetap valid hingga kedaluwarsa (default 24 jam), jadi untuk perubahan mendesak, admin dapat memaksa logout via endpoint invalidasi token.
Catatan: Jangan memberikan peran Admin ke lebih dari 2–3 orang. Semakin sedikit akun admin, semakin kecil risiko kompromi. Gunakan supervisor untuk kebutuhan monitoring harian.
Pengalaman WebSocket per peran
WebSocket server menyalurkan event berdasarkan peran:
- Admin menerima semua event dari semua divisi.
- Supervisor menerima event untuk divisi yang disupervisinya.
- Agent hanya menerima event untuk percakapan yang ditugaskan kepadanya sendiri.
Detail di WebSocket developer.
Baca selanjutnya: Login pertama.