Pemantauan SLA
Pemantauan SLA
Ringkasan
Service Level Agreement (SLA) adalah target waktu respons dan penyelesaian yang wajib dipatuhi oleh tim agent untuk setiap percakapan. OmniStream mendukung kebijakan SLA berlapis: satu organisasi dapat memiliki banyak policy aktif sekaligus — misalnya kebijakan ketat untuk kanal WhatsApp divisi VIP dan kebijakan standar untuk email umum. Scheduler backend akan memilih policy yang paling cocok untuk setiap percakapan baru berdasarkan kombinasi kanal dan divisi yang terkait.
Halaman SLA Policies berada di rute /sla-policies dan dapat diakses oleh supervisor dan admin. Dari sini Anda dapat membuat, mengubah, menandai sebagai default, atau menonaktifkan kebijakan SLA.
Hak akses: Halaman /sla-policies memeriksa authStore.isSupervisor. Peran agent akan melihat layar "Access Restricted".
Konsep SLA di OmniStream
Setiap kebijakan memiliki empat parameter utama:
| Parameter | Arti | Satuan di DB |
|---|---|---|
| First Response Time (FRT) | Waktu maksimum sejak percakapan masuk hingga agent mengirim balasan pertama | detik (first_response_time_secs) |
| Resolution Time | Waktu maksimum sejak percakapan masuk hingga status berubah menjadi resolved | detik (resolution_time_secs) |
| Warning Threshold % | Persen dari durasi SLA yang memicu peringatan dini (mis. 80% → warning saat 80% waktu telah terlewat) | integer (warning_threshold_pct) |
| Priority | Angka manual yang dapat dipakai untuk tie-breaker antar policy dengan score sama | integer (priority) |
Setiap policy juga dapat di-scoping ke:
- Channel (
whatsapp,instagram,email, atau kosong untuk semua kanal) - Division (ID divisi atau kosong untuk semua divisi)
- Is Default (flag yang membuat policy dipakai sebagai fallback saat tidak ada yang cocok)
Prioritas pencocokan policy
Scheduler (crates/api-gateway/src/scheduler.rs:372 — fungsi find_policy) menghitung score untuk setiap policy aktif berdasarkan aturan berikut, lalu memilih yang score-nya tertinggi:
| Kombinasi cocok | Score | Keterangan |
|---|---|---|
| Channel + Division (keduanya cocok eksak) | 4 | Prioritas tertinggi |
| Division-only (policy tanpa channel, division cocok) | 2 | |
| Channel-only (policy tanpa division, channel cocok) | 2 | |
Default (is_default = true, tanpa channel, tanpa division) | 1 | Fallback umum |
Kode perhitungan score dapat dibaca langsung di scheduler.rs:387 (channel match +2), scheduler.rs:399 (division match +2), dan scheduler.rs:409 (default flag +1). Jadi kombinasi channel + division menghasilkan total 4 = 2 + 2, channel-only atau division-only 2, dan default 1.
Jika tidak ada policy aktif yang cocok sama sekali (score < 0), percakapan tidak akan memiliki SLA tracking dan tidak akan dihitung sebagai breach.
Jika dua policy menghasilkan score yang sama (mis. dua channel-only untuk WhatsApp), yang pertama ditemukan di list akan dipilih. Gunakan kolom priority dan pastikan hanya satu policy per kombinasi channel+division yang aktif.
Langkah-langkah mengelola SLA
Membuat policy baru
- Buka
/sla-policiesdari sidebar. - Klik tombol + New Policy.
- Isi form:
- Name (wajib) — contoh:
VIP WhatsApp Fast Track - Description — konteks singkat untuk tim
- First Response Time — dalam menit, contoh
5untuk 5 menit - Resolution Time — dalam menit, contoh
60untuk 1 jam - Warning Threshold % — default
80(peringatan pada 80% waktu terpakai) - Priority — biasanya
0, naikkan hanya jika perlu tie-breaker - Channel — pilih
whatsapp,instagram,email, atau kosongkan - Division — pilih dari dropdown divisi atau kosongkan
- Is Default — centang jika ini fallback organisasi
- Is Active — centang untuk mengaktifkan
- Name (wajib) — contoh:
- Klik Save. Backend akan memanggil
POST /api/sla-policies(tag SLA).
Mengubah atau menonaktifkan policy
- Temukan baris policy di tabel.
- Klik ikon pensil untuk mengedit atau trash untuk menghapus. Menonaktifkan lewat toggle
Is Activelebih aman daripada menghapus — data breach lama tetap punya referensi ke policy_id. - Backend menggunakan
PUT /api/sla-policies/{id}danDELETE /api/sla-policies/{id}.
Memantau breach
Percakapan yang sudah atau hampir melewati SLA muncul sebagai event Redis sla_breaches yang diteruskan lewat WebSocket ke supervisor yang online. Supervisor biasanya melihat badge peringatan di sidebar inbox. Breach tercatat di tabel sla_breach_logs dan dapat diaudit lewat endpoint GET /api/sla-policies/{id}/breaches.

Endpoint terkait (tag SLA)
| Aksi | Endpoint |
|---|---|
| List semua policy | GET /api/sla-policies |
| Detail satu policy | GET /api/sla-policies/{id} |
| Buat policy baru | POST /api/sla-policies |
| Update policy | PUT /api/sla-policies/{id} |
| Hapus policy | DELETE /api/sla-policies/{id} |
| Audit breach | GET /api/sla-policies/{id}/breaches |
Detail parameter dan skema respons tersedia di API Reference — SLA.
Praktik terbaik
- Mulai dengan satu policy default yang longgar (mis. FRT 15 menit, resolution 4 jam) sebelum menambah policy ketat per kanal/divisi.
- Selalu set
is_default = truepada tepat satu policy sehingga setiap percakapan selalu punya SLA tracking. - Uji kombinasi channel+division dengan membuat percakapan test dan cek log breach — scheduler berjalan setiap 30 detik, jadi hasil muncul setelah siklus berikutnya.
- Pantau tren breach di halaman Analytics untuk mendeteksi pola chronic understaffing.
Rute terkait
- Dashboard Supervisor — melihat ringkasan KPI termasuk resolution rate
- Kinerja Agent — lihat apakah breach terkonsentrasi di agent tertentu