# Kinerja Agent & Review CSAT


## Ringkasan

Halaman ini membahas bagaimana supervisor mengevaluasi kinerja harian dan mingguan tim agent. Ada tiga sumber data utama yang dipakai: **tabel Agent Performance** di halaman Analytics (metrik kuantitatif), **panel CSAT** di halaman yang sama (metrik kualitatif dari customer), dan **inbox supervisor** (untuk transfer manual dan takeover saat agent menumpuk beban).

Meskipun OmniStream mendukung auto-assignment berbasis load balancing, supervisor tetap sering perlu mengambil keputusan manual: mem-*transfer* percakapan dari agent yang overloaded, mengambil alih (*takeover*) percakapan yang dibalas tidak tepat, atau menutup percakapan yang sudah tidak aktif.

:::info
**Hak akses:** Tabel Agent Performance dan CSAT hanya terlihat untuk **supervisor** dan **admin**. Transfer dan takeover juga dibatasi ke peran supervisor; agent reguler hanya dapat mentransfer percakapan miliknya sendiri.
:::

## Melihat kinerja individu

1. Buka menu **Analytics** → gulir ke tabel **Agent Performance**.
2. Setiap baris menampilkan delapan kolom. Fokus utama review:

| Kolom | Apa yang harus diperhatikan |
|---|---|
| **Status** | Apakah agent online saat jam sibuk? Agent offline berulang saat shift aktif perlu diklarifikasi. |
| **Open** | Beban saat ini. > 15 open sekaligus biasanya menyebabkan FRT memburuk. |
| **Resolved** | Volume total yang diselesaikan selama periode laporan. |
| **Resolution %** | Rasio produktivitas. < 70% bisa menandakan penumpukan. |
| **Avg FRT** | Kecepatan balasan pertama. Bandingkan antar-agent untuk deteksi outlier. |
| **Avg AHT** | Rata-rata durasi handle. AHT yang terlalu pendek (< 1 menit) untuk volume tinggi bisa berarti balasan template yang tidak personal. |

3. Untuk data lebih granular, gunakan endpoint `GET /api/analytics/agents` via [API Reference](/api).

## Review CSAT

1. Di halaman Analytics, gulir ke bagian **Customer Satisfaction (CSAT)**.
2. Panel ringkasan menampilkan:
   - **Average Rating** (1–5 bintang)
   - **Total Surveys** (dikirim)
   - **Rated** (jumlah yang dijawab)
   - **Response Rate** (rated/total)
3. Gunakan **Rating Distribution** untuk melihat sebaran rating 1–5 — dominasi rating 1–2 menandakan masalah yang harus ditelusuri.
4. Tabel **Agent CSAT Scores** di bawahnya menampilkan rata-rata rating per-agent. Klik nama agent untuk melompat ke daftar survei yang relevan (endpoint `GET /api/csat/surveys?agent_id={id}` — tag **CSAT**).

:::tip
Hubungan AHT yang rendah dengan rating 1–2 biasanya menandakan *"balasan cepat tapi tidak membantu"*. Sebaliknya, AHT tinggi dengan rating 5 adalah pola *"lambat tapi teliti"* — keduanya perlu konteks sebelum coaching.
:::

## Transfer dan assignment

### Transfer manual dari inbox

1. Buka `/inbox`, klik percakapan yang ingin di-transfer.
2. Klik menu aksi di header percakapan → **Transfer**.
3. Pilih agent tujuan dan (opsional) tulis catatan internal (akan tampil di halaman [Kontak & Catatan Internal](/panduan/agent/catatan-internal)).
4. Backend memanggil `POST /api/conversations/{id}/transfer` (tag **Transfers**) dan mencatat entri di `conversation_transfers`. Agent lama akan kehilangan akses real-time ke percakapan; agent baru akan menerima event WebSocket `conversation.assigned`.

### Takeover

Jika supervisor ingin langsung menjawab percakapan tertentu (mis. eskalasi pelanggan VIP), klik **Take Over** di header percakapan. Tindakan ini sama dengan transfer ke ID supervisor sendiri dan tercatat di activity log (`action = takeover_conversation`).

### Override auto-assignment

OmniStream menggunakan load balancing sederhana berbasis jumlah percakapan open per agent. Supervisor dapat mem-bypass ini dengan:

1. Menetapkan percakapan ke agent spesifik lewat transfer manual.
2. Mengubah flag `can_broadcast` / `max_concurrent_chats` pada record agent via halaman [Manajemen Pengguna](/panduan/admin/manajemen-pengguna).
3. Menonaktifkan sementara agent (`PATCH /api/agents/{id}/status`) agar tidak menerima assignment baru.

![Screenshot tabel agent performance](/screenshots/agents.png)

## Endpoint yang dipakai

| Data / Aksi | Endpoint | Tag |
|---|---|---|
| Metrik per-agent | `GET /api/analytics/agents` | **Analytics** |
| Ringkasan CSAT + per-agent | `GET /api/analytics/csat?period={7d\|30d\|90d}` | **Analytics** / **CSAT** |
| Survei CSAT individu | `GET /api/csat/surveys` | **CSAT** |
| Transfer percakapan | `POST /api/conversations/{id}/transfer` | **Transfers** |
| Update status agent | `PATCH /api/agents/{id}/status` | **Agents** |
| Audit log | `GET /api/activity-logs` | **Activity Logs** |

Detail skema di [API Reference](/api).

## Praktik terbaik

- **Review mingguan**, bukan harian. Noise harian terlalu tinggi untuk keputusan coaching.
- **Bandingkan AHT, FRT, dan CSAT bersamaan** — satu metrik saja mudah menipu.
- **Gunakan activity logs** ([Activity Logs admin](/panduan/admin/activity-logs)) untuk audit trail saat perlu investigasi insiden pelanggan.
- **Rotasi penugasan** dengan mengatur ulang divisi lewat halaman [Divisi](/panduan/admin/divisi) jika load antar-agent sangat tidak seimbang.

## Rute terkait

- [Dashboard Supervisor](/panduan/supervisor/dashboard)
- [Analytics & Laporan](/panduan/supervisor/analytics)
- [Pemantauan SLA](/panduan/supervisor/pemantauan-sla)
- [Activity Logs](/panduan/admin/activity-logs) — audit trail tindakan supervisor
