# 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:

1. **Pencocokan SLA policy** — policy yang di-scoping ke `division_id` akan cocok hanya untuk percakapan yang dimiliki agent di divisi tersebut (lihat [Pemantauan SLA](/panduan/supervisor/pemantauan-sla)).
2. **Routing & auto-assignment** — percakapan yang berasal dari integration tertentu dapat diarahkan ke divisi spesifik.
3. **Pelaporan** — laporan analytics dapat difilter per-divisi untuk membandingkan performa tim.

Halaman **Divisions** adalah tab di dalam `/user-management`.

:::info
**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 |

Seorang agent dapat menjadi anggota banyak divisi, dan satu divisi dapat memiliki banyak agent.

## Langkah-langkah

### Membuat divisi baru

1. Buka `/user-management`, klik tab **Divisions**.
2. Klik tombol **+ New Division**.
3. Isi form:
   - **Name** (wajib, unik)
   - **Description**
   - **Color** (opsional — default biru)
4. Klik **Save**. Backend memanggil `POST /api/divisions` (tag **Divisions**).

### Menambah / menghapus anggota

1. Klik baris divisi untuk membuka detail.
2. Tab **Members** menampilkan daftar agent saat ini.
3. Klik **Add Members** → pilih agent dari daftar → klik **Save**. Backend memanggil `POST /api/divisions/{id}/agents` dengan array agent IDs.
4. Untuk menghapus anggota, klik ikon **X** di sebelah nama → `DELETE /api/divisions/{id}/agents/{agent_id}`.

### Mengubah atau menghapus divisi

1. Klik ikon **pensil** pada baris divisi untuk mengubah nama/deskripsi/warna (`PUT /api/divisions/{id}`).
2. Klik ikon **trash** untuk menghapus (`DELETE /api/divisions/{id}`).

:::warning
Menghapus divisi akan menghapus semua keanggotaan agent dari divisi tersebut. Percakapan yang sebelumnya terkait dengan divisi ini akan kehilangan referensi divisi. Pastikan Anda telah menangani percakapan aktif sebelum menghapus.
:::

## Catatan tentang auto-assignment

OmniStream v1 menggunakan strategi load balancing sederhana: percakapan baru dapat diarahkan ke agent yang tergabung di divisi terkait, diprioritaskan berdasarkan jumlah percakapan open terkecil.

![Screenshot tab divisions](/screenshots/user-management.png)

## 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](/api).

## 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_id` agar monitoring terpisah.
- **Gunakan warna yang berbeda** untuk divisi agar mudah dibedakan di daftar.

## Rute terkait

- [Manajemen Pengguna](/panduan/admin/manajemen-pengguna) — CRUD agent dan penugasan divisi
- [Kebijakan SLA](/panduan/admin/kebijakan-sla) — SLA per-divisi
- [Activity Logs](/panduan/admin/activity-logs) — audit perubahan divisi
