Jawaban singkat: bot AI komplain = klasifikasi 4 tingkat (Ringan/Sedang/Berat/Kritis) → response empatetis otomatis → eskalasi ke admin dengan SLA → follow-up recovery → logging untuk analisis root cause. Semua visual n8n. Artikel ini implementasi lengkap: prompt empatetis, workflow eskalasi, SLA dashboard, dan analisis pola komplain.
Mengapa Komplain Butuh Penanganan Khusus (Bukan FAQ Biasa)?
- Emosi tinggi: Pelanggan marah, kecewa, merasa tidak dihargai → butuh empathy, bukan jawaban teknis.
- Risiko reputasi: 1 komplain tidak tertangani → review negatif, viral medsos, churn.
- Butuh keputusan cepat: Refund, ganti barang, diskon, escalasi manajemen → butuh authority.
- Root cause analysis: Pola komplain = sinyal perbaikan produk/proses → butuh logging terstruktur.
- Legal/compliance: Komplain tertentu (BPOM, halal, safety, data) butuh protokol khusus.
Klasifikasi 4 Tingkat Komplain (AI Classifier Output)
| Tingkat | Kriteria | Contoh | Response Bot | Eskalasi | SLA Admin |
|---|---|---|---|---|---|
| 1. RINGAN (Low) | Keluhan fungsional, solusi standar ada di KB | “Barang belum sampai”, “Salah ukuran”, “Manual tidak jelas” | Empatetik + solusi KB + “Admin follow-up <2 jam" | Notif Admin 🟡 LOW (queue) | <4 jam |
| 2. SEDANG (Medium) | Butuh keputusan: refund/ganti/diskon, bukan di KB | “Produk rusak”, “Tidak sesuai deskripsi”, “Garansi”, “Kualitas jelek” | Empatetik + “Saya turunkan ke admin untuk keputusan refund/ganti” + Notif 🟠 MEDIUM | Notif Admin 🟠 MEDIUM (priority) | <2 jam |
| 3. BERAT (High) | Emosi tinggi, ancaman review/legal, multi-channel | “Saya lapor ke BPOM”, “Ini penipuan”, “Saya hubungi konsumen”, “Viral di Twitter” | Empatetik tinggi + “Manajemen akan hubungi <1 jam" + Pause bot + Notif 🔴 HIGH | Notif Admin + Manajemen 🔴 HIGH (urgent) | <1 jam |
| 4. KRITIS (Critical) | Safety, legal, regulator, data breach, ancaman fisik | “Makanan beracun”, “Data bocor”, “Alat cayakan luka”, “Ancaman fisik ke staff” | Template legal + “Tim legal/hukum handle” + Notif 🚨 CRITICAL + Pause total | Notif Owner + Legal + Manajemen 🚨 CRITICAL | <15 menit |
AI Classifier Komplain Prompt (Node AI – Output JSON)
{
“is_complaint”: true/false,
“tingkat”: “RINGAN | SEDANG | BERAT | KRITIS”,
“kategori”: “PENGIRIMAN | PRODUK | KUALITAS | GARANSI | LAYANAN | BILLING | LEGAL | SAFETY | LAINNYA”,
“emosi”: “NETRAL | KECEWA | MARAH | SANGAT_MARAH | TRAUMA”,
“entities”: { “produk”: “kode/nama”, “nomor_order”: “xxx”, “bukti”: “foto/video/link” }
“urgency_keywords”: [“BPOM”, “lapor”, “polisi”, “advokat”, “viral”, “twitter”, “instagram”, “makanan”, “beracun”, “bocor”, “luka”, “mati”],
“confidence”: 0.0-1.0,
“reasoning”: “Alasan klasifikasi”
}
ATURAN TINGKAT:
– RINGAN: Keluhan standar, solusi di KB, emosi NETRAL/KECEWA, tanpa urgency_keywords
– SEDANG: Butuh keputusan refund/ganti, emosi KECEWA/MARAH, tanpa urgency_keywords
– BERAT: Ada urgency_keywords (lapor, advokat, viral, BPOM) ATAU emosi SANGAT_MARAH
– KRITIS: Kategori SAFETY/LEGAL ATAU urgency_keywords: makanan/beracun/bocor/luka/mati/ancaman fisik
CONTOH:
User: “Pesanan #12345 belum sampai sudah 5 hari” → {“is_complaint”:true,”tingkat”:”RINGAN”,”kategori”:”PENGIRIMAN”,”emosi”:”KECEWA”,”entities”:{“nomor_order”:”12345″},”urgency_keywords”:[],”confidence”:0.95,”reasoning”:”Keluhan pengiriman standar, solusi cek resi di KB” }
User: “Baju rusak di siku, saya minta ganti!” → {“is_complaint”:true,”tingkat”:”SEDANG”,”kategori”:”PRODUK”,”emosi”:”MARAH”,”entities”:{“produk”:”Baju”,”kerusakan”:”siku”},”urgency_keywords”:[],”confidence”:0.9,”reasoning”:”Butuh keputusan ganti barang, tidak di KB” }
User: “Makanan ini beracun! Anak saya sakit! Saya lapor BPOM!” → {“is_complaint”:true,”tingkat”:”KRITIS”,”kategori”:”SAFETY”,”emosi”:”TRAUMA”,”entities”:{“produk”:”Makanan”},”urgency_keywords”:[“beracun”,”BPOM”,”sakit”],”confidence”:1.0,”reasoning”:”Safety issue, legal threat, urgency keywords beracun+BPOM” }
Response Empatetis Template per Tingkat (Inject ke System Prompt)
## TINGKAT 1 – RINGAN (Empati + Solusi KB + ETA Admin)
“Maaf kak 😔 [Nama] mengalami [keluhan]. Saya cek: [solusi dari KB: cek resi/prosedur ganti/garansi]. Admin akan follow-up detail <2 jam ya. Nomor tiket: [TIKET-ID]."
## TINGKAT 2 – SEDANG (Empati + Eskalasi Keputusan + ETA Admin)
“Maaf sekali kak 😔 [Nama] menerima [produk] yang [rusak/tidak sesuai]. Ini tidak seharusnya terjadi. Saya turunkan ke admin untuk keputusan [refund/ganti barang/diskon] paling cepat. Admin hubungi <2 jam. Nomor tiket: [TIKET-ID]."
## TINGKAT 3 – BERAT (Empati Tinggi + Manajemen + Pause Bot)
“Maaf sangat dalam kak 😔 Aku benar-benar peduli dengan pengalaman [Nama]. Tim manajemen kami akan hubungi langsung <1 jam untuk risolusi ini. Saya pause balasan otomatis biar fokus ke kasus ini. Nomor tiket: [TIKET-ID-URGENT]."
## TINGKAT 4 – KRITIS (Template Legal + Total Eskalasi)
“Kami sangat serius tangani kasus ini. Tim legal & manajemen sudah dikontak. Akan hubungi <15 menit. Mohon simpan bukti (foto/video/produk). Kami commit risolusi transparan. Nomor tiket: [TIKET-ID-CRITICAL]."
## BANNED PHRASES UNTUK KOMPLAIN:
– “Sesuai prosedur…” / “Kebijakan kami…” (terasa dismissive)
– “Tidak bisa…” / “Tidak diizinkan…” (terasa menolak)
– “Harus…” / “Wajib…” (terasa memaksa)
– “Itu bukan tanggung jawab kami…” (terasa lari tanggung jawab)
– “Tenang saja…” (meminta emosi lawan = invalidating)
Workflow Eskalasi Otomatis (n8n Visual)
- Trigger → AI Classifier Komplain (prompt di atas)
- Switch (Tingkat):
- RINGAN: AI Response (Empati + KB) → Send → Notif Admin 🟡 LOW (Telegram) → Log Complaint_Log
- SEDANG: AI Response (Empati + Eskalasi) → Send → Notif Admin 🟠 MEDIUM (Telegram + Priority) → Pause Bot untuk nomor ini (flag PAUSE_COMPLAINT) → Log Complaint_Log
- BERAT: AI Response (Empati Tinggi + Manajemen) → Send → Notif Admin + Manajemen 🔴 HIGH (Telegram + Call/WA Blast) → Pause Bot + Flag URGENT → Log Complaint_Log
- KRITIS: AI Response (Legal Template) → Send → Notif Owner + Legal + Manajemen 🚨 CRITICAL (Multi-channel: Telegram, WA, Call, Email) → Pause Total Bot untuk nomor ini → Log Complaint_Log + Incident_Report
- Node Function (Generate Tiket ID): `TIKET-${tingkat}-${YYYYMMDD}-${NNN}` (auto-increment per tingkat per hari)
- Node Sheets Write (Complaint_Log): Kolom lengkap (lihat di bawah)
Format Google Sheets Complaint Management (3 Tab)
1. Tab “Complaint_Log” (Riwayat Semua Komplain)
| Kolom | Contoh |
|---|---|
| Tiket_ID | TIKET-SEDANG-20260115-003 |
| Nomor_WA | 628123456789 |
| Nama | Budi Santoso |
| Tingkat | SEDANG |
| Kategori | PRODUK |
| Emosi | MARAH |
| Ringkasan | Baju rusak di siku, minta ganti |
| Produk | Kaos Polos Premium |
| Nomor_Order | ORD-20260110-001 |
| Bukti | https://drive.com/bukti-rusak.jpg |
| Status | BARU / DITANGANI / RESOLVED / ESCALATED |
| Resolusi | Ganti barang + diskon 20% next order |
| Waktu_Masuk | 2026-01-15 14:30:00 |
| Waktu_Respons_Bot | 2026-01-15 14:30:02 |
| Waktu_Admin_Ambil | 2026-01-15 14:45:00 |
| Waktu_Resolved | 2026-01-15 15:20:00 |
| SLA_Target_Menit | 120 |
| SLA_Actual_Menit | 50 |
| SLA_Met | TRUE |
| Assigned_Admin | Admin2 |
| Root_Cause | Quality control packing |
| Preventive_Action | Tambah checklist packing foto |
2. Tab “Complaint_SLA_Dashboard” (Real-time Monitoring)
- Total Komplain / Hari, Minggu, Bulan (by Tingkat, Kategori)
- SLA Met Rate per Tingkat: RINGAN >95%, SEDANG >90%, BERAT >80%, KRITIS 100%
- Avg Response Time Bot (target <1 detik), Admin Ambil (target: RINGAN <4 jam, SEDANG <2 jam, BERAT <1 jam, KRITIS <15 menit)
- Avg Resolution Time (target: RINGAN <24 jam, SEDANG <4 jam, BERAT <2 jam, KRITIS <1 jam)
- Open Complaints > SLA (Alert real-time)
- Top 5 Root Cause (bahan perbaikan sistem)
- Recurring Complaints (Nomor_WA >1 komplain 30 hari)
- Sentiment Trend: Emosi distribution per minggu
3. Tab “Root_Cause_Analysis” (Bahan Perbaikan Produk/Proses)
| Kolom | Contoh |
|---|---|
| Root_Cause | Quality control packing |
| Kategori | PRODUK |
| Jumlah_Komplain_30_Hari | 12 |
| Impact_Revenue | Rp 2.400.000 (refund+ganti) |
| Preventive_Action | Tambah checklist packing foto + double check |
| PIC | Production Manager |
| Target_Selesai | 2026-02-01 |
| Status | IN_PROGRESS / DONE / VERIFIED |
| Verifikasi_Efektif | Komplain turun 80% pasca action |
Recovery Flow Pasca Resolusi (Retain Pelanggan)
| Tahap | Timing | Aksi Bot | Template |
|---|---|---|---|
| Immediate | Saat Resolved | Kirim: “Kak [Nama], kasus [Tiket] sudah risolusi: [Ringkasan resolusi]. Maaf lagi ya atas ketidaknyamanannya. Sebagai apresiasi, diskon 15% next order: THANKS15.” | Recovery discount + empathy |
| H+1 | Besok jam 10:00 | Cek: “Kak, resolution kemarin sudah ok? Butuh bantuan lain?” | Follow-up care |
| H+7 | 1 minggu | NPS Survey: “Skala 1-10, puas risolusi kemarin? Balas angka saja.” | NPS 1-10 |
| H+30 | 1 bulan | Win-back: “Kak, sudah 1 bulan. Butuh order lagi? Kode loyal: LOYAL20.” | Loyalty offer |
Checklist Launch Complaint Handling Minggu Ini
- [ ] Setup AI Classifier Komplain prompt (4 tingkat + urgency keywords)
- [ ] Setup Complaint_Log, Complaint_SLA_Dashboard, Root_Cause_Analysis Sheets
- [ ] Import workflow: Trigger → Classifier → Switch 4 tingkat → Response + Eskalasi + Log
- [ ] Setup Response Templates per tingkat (inject ke System Prompt)
- [ ] Setup Notif Telegram: 🟡 LOW, 🟠 MEDIUM, 🔴 HIGH, 🚨 CRITICAL (multi-channel untuk CRITICAL)
- [ ] Setup Pause Bot flag per nomor (PAUSE_COMPLAINT, PAUSE_URGENT)
- [ ] Setup Cron Recovery: H+0 (resolusi), H+1, H+7 (NPS), H+30 (loyalty)
- [ ] Setup SLA Dashboard real-time (PIVOT + auto-refresh 1 menit)
- [ ] Setup Alert: Open > SLA → Notif Admin + Manajemen
- [ ] Uji: komplain Ringan (pengiriman), Sedang (produk rusak), Berat (ancaman lapor), Kritis (safety)
- [ ] Uji: Pause bot saat eskalasi, resume setelah resolved
- [ ] Launch: Daily standup review SLA Dashboard, Weekly root cause analysis
FAQ: Bot WhatsApp AI Handle Komplain Pelanggan
Apakah bot AI bisa benar-benar empatetik (bukan robot)?
Dengan prompt yang benar: YA. Key: (1) Banned phrases dismissive, (2) Template empateti per tingkat, (3) Nama pelanggan + detail kasus di response, (4) ETA konkret bukan “segera”, (5) Pause bot saat eskalasi = focus manusia. Test: 85%+ pelanggan merasa “terdengar” bukan “dijawab bot”.
Bagaimana handle komplain yang butuh bukti (foto/video)?
AI Classifier ekstrak entities.bukti. Response: “Mohon kirim foto/video ke chat ini ya kak, biar admin langsung cek & proses cepat.” Admin terima via WhatsApp Web. Otomatis log ke Complaint_Log kolom Bukti.
Kalau pelanggan komplain berulang (serial complainer), gimana?
Complaint_Log cek Nomor_WA >2 komplain 30 hari → Flag “RECURRING” → Notif Manajemen → Response beda: “Kak, kami catat ini keluhan ke-[N]. Manajemen review pola. Akan hubungi personal.” Bukan dismiss, tapi serious handling.
Bisakah integrasi ke Helpdesk (Zendesk, Freshdesk, Jira)?
BISA — n8n punya node Zendesk, Freshdesk, Jira, Linear, GitHub Issues. Ganti/tambah node Notif Telegram → Helpdesk Create Ticket. Complaint_Log Sheets tetap backup. Template include Helpdesk integration guide.
Template complaint handling lengkap sudah jadi di mana?
Ebook + Template n8n — include: AI Classifier 4 tingkat prompt, 4 Response Templates empateti, Switch 4 tingkat workflow, Complaint_Log + SLA_Dashboard + Root_Cause Sheets, Telegram notif 4 level, Pause/Resume bot logic, Recovery flow 4 tahap, NPS survey, Root cause analysis template, Helpdesk integration guide.
Baca juga: Cara Membuat Bot WhatsApp AI untuk Menangani Komplain Pelanggan untuk panduan lengkapnya.