CS Otomatis WA dengan Personalisasi Nama
Cara personalisasi CS otomatis WhatsApp dengan nama customer. Lebih personal, lebih engaging. Tutorial lengkap!
"Dear Customer" vs "Hai Kak Siti!"
Mana yang lebih personal? Tentu yang kedua!
Personalisasi meningkatkan engagement dan membuat customer merasa special.
Kenapa Personalisasi Penting?
📊 Statistik:
- Pesan personal = 26% higher open rate
- Nama = Attention grabber
- Personal touch = Trust builder
- "Dear Customer" = Terasa massal/spamSumber Data Nama
1. Dari WhatsApp Profile
javascript
client.on('message', async msg => {
const contact = await msg.getContact();
const name = contact.pushname || 'Kak';
await msg.reply(`Hai ${name}! Ada yang bisa dibantu?`);
});2. Dari Database Customer
javascript
client.on('message', async msg => {
const phone = msg.from.replace('@c.us', '');
const customer = await db.customers.findOne({ phone });
const name = customer?.name || 'Kak';
await msg.reply(`Hai ${name}! Ada yang bisa dibantu?`);
});3. Tanya di Awal
Bot: "Hai! Sebelum lanjut, boleh tau namanya siapa?"
Customer: "Siti"
Bot: "Hai Kak Siti! Senang berkenalan 😊
Ada yang bisa dibantu hari ini?"
// Save to database for futureTemplate dengan Personalisasi
Greeting:
❌ "Selamat datang di Toko Kami"
✅ "Hai Kak [NAMA]! 👋 Selamat datang di [TOKO]!"Konfirmasi Order:
❌ "Order Anda telah dikonfirmasi"
✅ "Kak [NAMA], order #[NOMOR] sudah dikonfirmasi! 🎉"Follow Up:
❌ "Reminder pembayaran Anda"
✅ "Kak [NAMA], friendly reminder untuk order #[NOMOR] ya 😊"Terima Kasih:
❌ "Terima kasih sudah order"
✅ "Makasih banyak Kak [NAMA]! Pesanan lagi diproses 💕"Implementasi
Basic Personalization:
javascript
function personalizeMessage(template, customer) {
return template
.replace(/\[NAMA\]/g, customer.name || 'Kak')
.replace(/\[KOTA\]/g, customer.city || '')
.replace(/\[ORDER\]/g, customer.lastOrder || '');
}
// Usage
const template = "Hai Kak [NAMA]! Order [ORDER] sudah dikirim ke [KOTA]!";
const message = personalizeMessage(template, customer);Smart Name Extraction:
javascript
function extractFirstName(fullName) {
if (!fullName) return 'Kak';
// Remove titles
const cleaned = fullName
.replace(/^(bpk|ibu|pak|bu|mr|mrs|ms)\.?\s*/i, '')
.trim();
// Get first name
const firstName = cleaned.split(' ')[0];
// Capitalize
return firstName.charAt(0).toUpperCase() + firstName.slice(1).toLowerCase();
}
// "Bpk. BUDI SANTOSO" → "Budi"
// "ibu siti aminah" → "Siti"Fallback Strategy:
javascript
function getName(contact, customer) {
// Priority order
return customer?.name
|| contact?.pushname
|| 'Kak';
}Personalisasi Lanjutan
By Purchase History:
// First time buyer
"Hai Kak [NAMA]! Selamat datang, ini pertama kalinya
belanja di [TOKO] ya? 🎉"
// Repeat customer
"Hai Kak [NAMA]! Senang ketemu lagi!
Kemarin order [PRODUK]-nya gimana?"
// VIP
"Hai Kak [NAMA]! ⭐ Sebagai VIP customer,
ada penawaran special untuk kakak nih..."By Preference:
javascript
const customer = await db.customers.findOne({ phone });
let greeting = `Hai Kak ${customer.name}!`;
if (customer.favoriteCategory === 'skincare') {
greeting += ` Ada produk skincare baru lho!`;
}
if (customer.lastProduct) {
greeting += ` Gimana ${customer.lastProduct}-nya, cocok?`;
}By Time:
javascript
function getTimeGreeting(name) {
const hour = new Date().getHours();
if (hour < 12) return `Selamat pagi Kak ${name}! ☀️`;
if (hour < 15) return `Selamat siang Kak ${name}! 🌤️`;
if (hour < 18) return `Selamat sore Kak ${name}! 🌅`;
return `Selamat malam Kak ${name}! 🌙`;
}Best Practices
1. Consistent Naming
Pilih satu style dan konsisten:
✅ "Kak Siti" (casual, friendly)
✅ "Siti" (very casual)
✅ "Ibu Siti" (formal)
❌ Mix: "Kak Siti" lalu "Ibu Siti" lalu "Dear Siti"2. Don't Overuse
❌ "Kak Siti, Kak Siti mau order apa Kak Siti?"
✅ "Kak Siti, mau order apa hari ini?"
Gunakan nama 1-2x per message, tidak setiap kalimat.3. Handle Missing Names Gracefully
❌ "Hai Kak null!"
❌ "Hai Kak undefined!"
✅ "Hai Kak!" (fallback yang natural)4. Respect Privacy
Jangan over-personalize:
❌ "Kak Siti di Jakarta Selatan,
yang kemarin order lipstik merah..."
✅ "Kak Siti, ada yang bisa dibantu?"
Terlalu detail = CreepyData Collection
Saat Chat Pertama:
Bot: "Hai! Selamat datang di [TOKO]! 😊
Sebelum lanjut, boleh tau namanya siapa?
(Supaya lebih akrab ngobrolnya!)"
Customer: "Nama saya Siti"
Bot: "Hai Kak Siti! Senang berkenalan!
Ada yang bisa dibantu?"
// Save: { name: "Siti", phone: "628xxx" }Saat Order:
Bot: "Untuk proses order, boleh tau:
Nama lengkap:
Alamat:
No HP:"
// Capture name from order formFAQ
Bagaimana jika nama di WA tidak akurat?
Gunakan database customer sebagai source utama. WA profile name sebagai fallback.
Perlu minta izin untuk simpan nama?
Untuk basic personalization, implied consent dari interaksi sudah cukup. Untuk data lebih lengkap, inform kebijakan privasi.
Bagaimana dengan nama yang aneh/inappropriate?
Filter dan fallback ke "Kak" jika nama tidak appropriate.
Kesimpulan
Personalisasi = Lebih engaging!
| Generic | Personalized |
|---|---|
| "Dear Customer" | "Hai Kak Siti!" |
| Cold, impersonal | Warm, friendly |
| Lower engagement | Higher engagement |
Simple change, big impact!