Auto Reply WA untuk Komplain & Return

Setup auto reply WhatsApp untuk handle komplain dan return. Template empati, SOP jelas, customer tetap puas!

Auto Reply WA untuk Komplain & Return
Auto Reply WA untuk Komplain & Return

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 refund

5. 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 complaints

FAQ

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 HandlingGood Handling
Customer pergiCustomer loyal
Bad reviewGood review
Lost revenueRepeat purchase
Damaged brandStronger brand

Turn complaints into opportunities!

Setup Complaint Handler β†’


Artikel Terkait