Kebijakan SLA (Admin)
Kebijakan SLA (Admin)
Ringkasan
Halaman SLA Policies (/sla-policies) diakses baik oleh supervisor maupun admin. Di sisi supervisor, halaman ini digunakan untuk memantau breach harian dan membuat policy ad-hoc. Di sisi admin, pendekatannya lebih strategis: merancang struktur policy yang konsisten untuk seluruh organisasi, memastikan tidak ada konflik prioritas, dan memelihara daftar yang tidak membesar tanpa kendali.
Halaman ini melengkapi Pemantauan SLA yang lebih fokus pada monitoring harian.
Hak akses: Admin dan supervisor dapat membuat/mengubah SLA policy. Best practice: admin yang menentukan blueprint awal, supervisor yang menyesuaikan pada level operasional.
Blueprint rekomendasi
Untuk organisasi berukuran sedang (5–20 agent), struktur policy yang biasanya bekerja dengan baik:
| Policy | Channel | Division | FRT | Resolution | Is Default |
|---|---|---|---|---|---|
| Organization Default | — | — | 30 min | 4 jam | Yes |
| WhatsApp Standard | whatsapp | — | 10 min | 2 jam | No |
| Email Standard | email | — | 60 min | 8 jam | No |
| VIP WhatsApp | whatsapp | VIP | 3 min | 30 min | No |
Scheduler akan memilih kombinasi terbaik untuk setiap percakapan:
- Percakapan WhatsApp dari divisi VIP → VIP WhatsApp (score 4)
- Percakapan WhatsApp dari divisi lain → WhatsApp Standard (score 2)
- Percakapan Email → Email Standard (score 2)
- Percakapan dari kanal lain → Organization Default (score 1)
Detail algoritma ada di crates/api-gateway/src/scheduler.rs:372 — fungsi find_policy.
Prioritas matching
Ulang dari Pemantauan SLA:
| Kombinasi | Score |
|---|---|
| Channel + Division | 4 |
| Division-only | 2 |
| Channel-only | 2 |
Default (is_default = true) | 1 |
Perhitungan score ada di tiga titik spesifik di scheduler.rs: channel match (scheduler.rs:387, score += 2), division match (scheduler.rs:399, score += 2), dan default flag (scheduler.rs:409, score += 1). Channel + division yang keduanya cocok menjumlahkan 2 + 2 = 4, menjadikannya prioritas tertinggi.
Pastikan admin memeriksa bahwa setiap organisasi memiliki tepat satu policy is_default = true — tanpa policy default, percakapan dari kanal/divisi yang tidak ter-cover akan kehilangan tracking SLA.
Langkah-langkah admin
Menyiapkan blueprint awal
- Buka
/sla-policies. - Klik + New Policy dan buat Organization Default terlebih dahulu:
- Nama:
Organization Default - Channel: kosong
- Division: kosong
- FRT: 30 menit
- Resolution: 240 menit (4 jam)
- Warning Threshold: 80%
- Is Default: centang
- Is Active: centang
- Nama:
- Ulangi untuk policy channel-only dan channel+division sesuai kebutuhan.
Audit berkala
- Review daftar policy setiap minggu atau saat ada perubahan struktur tim.
- Cari policy yang:
- Duplikat (dua policy dengan kombinasi channel+division yang sama) — satukan atau nonaktifkan salah satu.
- Tidak pernah cocok (score selalu 0) — kemungkinan scoping salah, hapus atau perbaiki.
- Bertabrakan dengan default — pastikan hanya satu yang
is_default.
- Pantau breach log lewat
GET /api/sla-policies/{id}/breaches(tag SLA). Breach yang berulang di satu policy menandakan target tidak realistis atau tim kekurangan kapasitas.
Menonaktifkan policy
Lebih baik menonaktifkan (is_active = false) daripada menghapus — breach history tetap memiliki referensi ke policy_id. Menghapus policy yang sudah memiliki breach history dapat menyebabkan FK constraint error tergantung konfigurasi migrasi.

Endpoint (tag SLA)
| Aksi | Endpoint |
|---|---|
| List policy | GET /api/sla-policies |
| Detail | GET /api/sla-policies/{id} |
| Buat | POST /api/sla-policies |
| Update | PUT /api/sla-policies/{id} |
| Hapus | DELETE /api/sla-policies/{id} |
| Audit breach | GET /api/sla-policies/{id}/breaches |
Skema lengkap di API Reference — SLA.
Rute terkait
- Pemantauan SLA (Supervisor) — operasi harian
- Divisi — konfigurasi divisi yang dipakai di SLA scoping
- Activity Logs — audit siapa mengubah policy