Manajemen Divisi
Manajemen Divisi
Ringkasan
Divisi adalah unit bisnis logis yang mengelompokkan agent ke tim yang sama. Satu organisasi dapat memiliki banyak divisi — misalnya Customer Support, Sales, Technical, VIP — dan seorang agent dapat menjadi anggota lebih dari satu divisi sekaligus.
Divisi bukan sekadar label kosmetik. Mereka mempengaruhi:
- Pencocokan SLA policy — policy yang di-scoping ke
division_idakan cocok hanya untuk percakapan yang dimiliki agent di divisi tersebut (lihat Pemantauan SLA). - Routing & auto-assignment — percakapan yang berasal dari integration tertentu dapat diarahkan ke divisi spesifik.
- Pelaporan — laporan analytics dapat difilter per-divisi untuk membandingkan performa tim.
Halaman Divisions adalah tab di dalam /user-management dan juga diakses dari komponen frontend/src/lib/components/user-management/DivisionsTab.svelte.
Hak akses: Pengelolaan divisi dibatasi ke peran admin. Supervisor dapat melihat daftar divisi tetapi tidak dapat membuat/mengubah/menghapus.
Atribut divisi
| Field | Arti |
|---|---|
| Name | Nama unik divisi |
| Description | Konteks tambahan untuk tim |
| Color | Warna hex untuk tag visual (opsional) |
| Member Count | Jumlah agent yang saat ini menjadi anggota |
Keanggotaan disimpan di tabel pivot agent_divisions — seorang agent dapat memiliki banyak entri divisi, dan satu divisi dapat memiliki banyak agent. Relasi many-to-many ini membuat load balancing lebih fleksibel.
Langkah-langkah
Membuat divisi baru
- Buka
/user-management, klik tab Divisions. - Klik tombol + New Division.
- Isi form:
- Name (wajib, unik)
- Description
- Color (opsional — default biru)
- Klik Save. Backend memanggil
POST /api/divisions(tag Divisions).
Menambah / menghapus anggota
- Klik baris divisi untuk membuka detail.
- Tab Members menampilkan daftar agent saat ini.
- Klik Add Members → pilih agent dari daftar → klik Save. Backend memanggil
POST /api/divisions/{id}/agentsdengan array agent IDs. - Untuk menghapus anggota, klik ikon X di sebelah nama →
DELETE /api/divisions/{id}/agents/{agent_id}.
Mengubah atau menghapus divisi
- Klik ikon pensil pada baris divisi untuk mengubah nama/deskripsi/warna (
PUT /api/divisions/{id}). - Klik ikon trash untuk menghapus (
DELETE /api/divisions/{id}).
Menghapus divisi akan menghapus semua relasi agent_divisions untuk divisi tersebut. Percakapan yang sebelumnya di-tag division_id akan kehilangan referensi (kolom tidak di-NULL secara otomatis — periksa dengan admin database sebelum menghapus).
Catatan tentang auto-assignment
OmniStream v1 menggunakan strategi load balancing sederhana: percakapan baru tanpa assigned_to yang berasal dari kanal tertentu dapat diarahkan ke agent yang tergabung di divisi terkait, lalu diprioritaskan berdasarkan jumlah percakapan open terkecil. Detail strategi ini ada di crates/api-gateway/src/routes/conversations/mod.rs dan dapat disesuaikan jika organisasi membutuhkan strategi berbeda (mis. round-robin strict).
Konfigurasi tipe routing per integrasi biasanya dilakukan pada record integrations di database, bukan di halaman Division.

Endpoint (tag Divisions)
| Aksi | Endpoint |
|---|---|
| List divisi | GET /api/divisions |
| Detail divisi | GET /api/divisions/{id} |
| Buat divisi | POST /api/divisions |
| Update divisi | PUT /api/divisions/{id} |
| Hapus divisi | DELETE /api/divisions/{id} |
| Tambah anggota | POST /api/divisions/{id}/agents |
| Hapus anggota | DELETE /api/divisions/{id}/agents/{agent_id} |
Skema lengkap di API Reference — Divisions.
Praktik terbaik
- Satu agent per divisi utama, tetapi boleh di-backup di divisi lain untuk kontinuitas.
- Sinkronkan dengan SLA policy — untuk setiap divisi bisnis kritis, buat SLA policy bertarget
division_idagar monitoring terpisah. - Gunakan warna yang berbeda untuk divisi agar mudah dibedakan di daftar.
Rute terkait
- Manajemen Pengguna — CRUD agent dan penugasan divisi
- Kebijakan SLA — SLA per-divisi
- Activity Logs — audit perubahan divisi