Auto Reply WA untuk Komplain & Return
Setup auto reply WhatsApp untuk handle komplain dan return. Template empati, SOP jelas, customer tetap puas!
Komplain yang ditangani baik = Customer loyal!
Customer yang komplain dan puas dengan solusinya justru lebih loyal daripada yang tidak pernah komplain.
Mindset Handling Komplain
β MINDSET SALAH:
"Komplain = Masalah"
"Customer rewel"
"Defensive mode"
β
MINDSET BENAR:
"Komplain = Feedback berharga"
"Customer butuh bantuan"
"Opportunity untuk impress"Auto Reply Greeting Komplain
Detect Complaint Keywords:
javascript
const complaintKeywords = [
'komplain', 'kecewa', 'marah', 'rusak', 'cacat',
'tidak sesuai', 'salah', 'jelek', 'buruk', 'parah',
'refund', 'return', 'kembalikan', 'tukar', 'ganti'
];
function isComplaint(message) {
const text = message.toLowerCase();
return complaintKeywords.some(keyword => text.includes(keyword));
}Initial Complaint Response:
Hai Kak, mohon maaf atas ketidaknyamanan yang dialami π
Kami sangat serius menangani setiap feedback.
Untuk membantu menyelesaikan masalah ini,
mohon informasikan:
1οΈβ£ Nomor order:
2οΈβ£ Produk yang bermasalah:
3οΈβ£ Jelaskan masalahnya:
4οΈβ£ Foto produk (jika ada kerusakan)
Kirim dalam 1 pesan ya, kami akan
segera review dan berikan solusi terbaik πͺTemplate by Complaint Type
1. Produk Rusak/Cacat:
Trigger: "rusak", "cacat", "pecah", "sobek"
π¦ LAPORAN PRODUK RUSAK
Mohon maaf atas kondisi produk yang diterima π
Untuk proses klaim, kami butuh:
β
Foto produk (tampak kerusakan)
β
Foto packaging saat diterima
β
Video unboxing (jika ada)
β
Nomor order
Kirim semua dalam 1 pesan.
Jika kerusakan terbukti dari kami,
kakak bisa pilih:
- Ganti baru (FREE ongkir)
- Full refund
Kami prioritaskan penyelesaian cepat! π2. Produk Tidak Sesuai:
Trigger: "tidak sesuai", "beda", "salah kirim"
π¦ PRODUK TIDAK SESUAI
Mohon maaf atas kesalahan yang terjadi π
Agar kami bisa bantu dengan cepat:
β
Foto produk yang diterima
β
Screenshot orderan (produk yang seharusnya)
β
Nomor order
Jika memang kesalahan kami:
- Produk benar akan segera dikirim
- Ongkir ditanggung kami
- Produk salah boleh didonasikan atau return
Kirim detail di atas ya kak!3. Pengiriman Bermasalah:
Trigger: "telat", "lama", "hilang", "tidak sampai"
π KENDALA PENGIRIMAN
Kami paham frustrasinya menunggu paket π
Mohon info:
- Nomor order:
- Nomor resi:
- Sudah berapa hari sejak kirim:
- Sudah coba track dimana:
Kami akan langsung koordinasi dengan kurir
dan update status dalam maksimal 2 jam.
Jika paket hilang/rusak saat pengiriman,
kami akan kirim ulang atau refund penuh.4. Request Refund:
Trigger: "refund", "uang kembali"
π³ REQUEST REFUND
Kami terima request refund kakak.
Syarat refund:
β
Dalam 7 hari setelah terima barang
β
Ada alasan yang valid
β
Produk dalam kondisi original (jika return)
Proses refund:
1. Kirim nomor order + alasan
2. Tim review (1x24 jam)
3. Jika disetujui, refund ke rekening (2-3 hari kerja)
Mohon kirim:
- Nomor order
- Alasan detail
- No rekening untuk refund5. Request Return/Tukar:
Trigger: "return", "tukar", "kembalikan"
π REQUEST RETURN/TUKAR
Untuk return atau tukar produk:
Syarat:
β
Dalam 7 hari setelah terima
β
Produk belum dipakai/dicuci
β
Tag dan label masih ada
β
Packaging lengkap
Pilihan:
1οΈβ£ TUKAR SIZE/WARNA - Gratis ongkir
2οΈβ£ TUKAR PRODUK LAIN - Selisih harga menyesuaikan
3οΈβ£ REFUND - Full refund
Ketik angka pilihan kakak!Flow Handling Komplain
ββββββββββββββββββββββββββββββββββββββββββ
β CUSTOMER KOMPLAIN β
ββββββββββββββββββββ¬ββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β BOT: Acknowledge + Collect Info β
β (Empati, minta detail) β
ββββββββββββββββββββ¬ββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β BOT: Auto-categorize Issue β
β (Rusak/Salah/Telat/dll) β
ββββββββββββββββββββ¬ββββββββββββββββββββββ
β
ββββββββββββ΄βββββββββββ
βΌ βΌ
βββββββββββββββββ βββββββββββββββββ
β Simple Issue β β Complex Issue β
β Bot can solve β β Need human β
βββββββββ¬ββββββββ βββββββββ¬ββββββββ
β β
βΌ βΌ
βββββββββββββββββ βββββββββββββββββ
β Offer Solutionβ β Create Ticket β
β Auto-process β β Assign to CS β
βββββββββ¬ββββββββ βββββββββ¬ββββββββ
β β
ββββββββββββ¬βββββββββββ
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β FOLLOW UP & CONFIRM β
β (Pastikan customer puas) β
ββββββββββββββββββββββββββββββββββββββββββAuto-Offer Solutions
javascript
async function offerSolution(complaintType, orderData) {
const solutions = {
'product_damaged': [
{
option: 'Ganti baru',
description: 'Kirim produk baru, free ongkir',
code: 'REPLACE'
},
{
option: 'Full refund',
description: 'Uang kembali 100% dalam 3 hari kerja',
code: 'REFUND'
}
],
'wrong_product': [
{
option: 'Kirim yang benar',
description: 'Produk correct dikirim, ongkir ditanggung',
code: 'RESEND'
},
{
option: 'Refund selisih',
description: 'Jika value berbeda, selisih direfund',
code: 'PARTIAL_REFUND'
}
],
'late_delivery': [
{
option: 'Voucher kompensasi',
description: 'Voucher Rp 25.000 untuk next order',
code: 'VOUCHER'
},
{
option: 'Free ongkir next',
description: 'Gratis ongkir untuk pesanan berikutnya',
code: 'FREE_SHIP'
}
]
};
const options = solutions[complaintType] || solutions['product_damaged'];
let message = 'π οΈ SOLUSI YANG TERSEDIA\n\n';
options.forEach((opt, i) => {
message += `${i + 1}οΈβ£ ${opt.option}\n`;
message += ` ${opt.description}\n\n`;
});
message += 'Pilih solusi dengan ketik angkanya!\n';
message += 'Atau ketik LAIN jika butuh solusi berbeda.';
return { message, options };
}Process Resolution
javascript
async function processResolution(phone, solution, orderData) {
switch (solution.code) {
case 'REPLACE':
// Create replacement order
const newOrder = await createReplacementOrder(orderData);
return `β
PENGGANTIAN DIPROSES
Order pengganti: #${newOrder.id}
Produk: ${orderData.product}
Estimasi kirim: 1-2 hari kerja
Ongkir: GRATIS
Kami akan kirim resi setelah dikirim.
Terima kasih atas kesabarannya! π`;
case 'REFUND':
// Process refund
const refund = await processRefund(orderData);
return `β
REFUND DIPROSES
Jumlah: Rp ${refund.amount.toLocaleString()}
Ke rekening: ${refund.bankAccount}
Estimasi: 2-3 hari kerja
Ref: ${refund.reference}
Kami akan konfirmasi setelah transfer selesai.
Mohon maaf atas ketidaknyamanannya π`;
case 'VOUCHER':
// Generate voucher
const voucher = await generateVoucher(phone, 25000);
return `β
VOUCHER KOMPENSASI
Sebagai permohonan maaf, ini voucher untuk kakak:
π Kode: ${voucher.code}
π° Nilai: Rp 25.000
π
Berlaku: 30 hari
Gunakan di checkout pesanan berikutnya.
Terima kasih sudah sabar menunggu! π`;
default:
return 'Tim kami akan review dan hubungi kakak dalam 1x24 jam.';
}
}Follow Up After Resolution
// Send 2 days after resolution
Hai Kak [NAMA]! π
Mau follow up soal komplain kemarin.
Apakah solusi yang kami berikan sudah OK?
π Sudah puas β Ketik OK
π Masih ada masalah β Ketik BELUM
Feedback kakak sangat berarti untuk
kami terus improve! πEscalation Rules
javascript
const escalationRules = [
{
trigger: 'multiple_complaints',
condition: (customer) => customer.complaintCount >= 2,
action: 'escalate_to_supervisor'
},
{
trigger: 'high_value_order',
condition: (order) => order.total >= 1000000,
action: 'escalate_to_supervisor'
},
{
trigger: 'angry_customer',
condition: (message) => detectAngerLevel(message) > 0.8,
action: 'escalate_to_senior_cs'
},
{
trigger: 'legal_threat',
condition: (message) => containsLegalThreat(message),
action: 'escalate_to_manager'
}
];Best Practices
DO β
- Acknowledge + empati DULU
- Jangan minta customer repeat info
- Offer clear solutions
- Follow up setelah resolve
- Learn from complaints (improve product/service)DON'T β
- Defensive atau blame customer
- Template tanpa personalisasi
- Terlalu lama response
- Tidak ada closure/follow up
- Ignore pattern complaintsFAQ
Complaint rate ideal berapa?
< 2% dari total orders adalah benchmark bagus. Lebih dari itu, review product/service quality.
Berapa lama response untuk komplain?
< 1 jam untuk acknowledge, < 24 jam untuk solusi (< 2 jam untuk urgent).
Semua komplain harus di-approve refund?
Tidak. Ada SOP yang jelas. Tapi untuk kesalahan jelas dari seller, refund/replace tanpa ribet.
Kesimpulan
Handle complaints well = Loyal customers!
| Bad Handling | Good Handling |
|---|---|
| Customer pergi | Customer loyal |
| Bad review | Good review |
| Lost revenue | Repeat purchase |
| Damaged brand | Stronger brand |
Turn complaints into opportunities!