Bot WA untuk Lead Generation
Cara buat bot WhatsApp untuk lead generation. Capture, qualify, dan nurture leads otomatis. Tingkatkan konversi sales!
Leads masuk tapi tidak ter-follow up = Sales hilang!
Bot lead generation memastikan setiap lead ter-capture dan di-nurture sampai jadi customer.
Apa Itu Lead Generation Bot?
LEAD GENERATION BOT:
Bot yang otomatis:
1. Capture informasi kontak
2. Qualify (filter) leads
3. Nurture dengan info/promo
4. Handover ke sales saat ready
Bukan cuma balas chat, tapi CONVERT ke sales!Alur Lead Generation
┌──────────────────────────────────────────┐
│ TRAFFIC SOURCE │
│ (Iklan, Website, Social Media, dll) │
└────────────────────┬─────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ BOT CAPTURE │
│ "Hai! Mau tau info lebih lanjut?" │
│ Collect: Nama, Email, Kebutuhan │
└────────────────────┬─────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ BOT QUALIFY │
│ Score lead berdasarkan: │
│ Budget, Timeline, Authority, Need │
└────────────────────┬─────────────────────┘
│
┌────────────┴────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ HOT LEAD 🔥 │ │ WARM LEAD 🌡️ │
│ → Sales Call │ │ → Nurture │
└──────────────────┘ └──────────────────┘Step 1: Capture Leads
Greeting & Data Collection:
👋 Hai! Selamat datang di [BRAND]!
Senang bisa membantu. Boleh kenalan dulu?
Ketik NAMA kakak untuk mulai 😊Progressive Profiling:
javascript
const leadFlow = {
step1_name: {
question: "Boleh tau nama kakak?",
field: 'name',
next: 'step2_need'
},
step2_need: {
question: "Hai {name}! Kakak tertarik dengan produk apa?\n\n1️⃣ Produk A\n2️⃣ Produk B\n3️⃣ Produk C\n4️⃣ Belum tau, mau lihat-lihat",
field: 'interest',
next: 'step3_budget'
},
step3_budget: {
question: "Budget kakak kisaran berapa?\n\n1️⃣ < Rp 1 juta\n2️⃣ Rp 1-5 juta\n3️⃣ Rp 5-10 juta\n4️⃣ > Rp 10 juta",
field: 'budget',
next: 'step4_timeline'
},
step4_timeline: {
question: "Rencananya mau beli kapan?\n\n1️⃣ Minggu ini\n2️⃣ Bulan ini\n3️⃣ 1-3 bulan lagi\n4️⃣ Belum pasti",
field: 'timeline',
next: 'complete'
}
};Implementation:
javascript
const leadState = new Map();
client.on('message', async msg => {
let lead = leadState.get(msg.from) || { step: 'step1_name', data: {} };
const currentStep = leadFlow[lead.step];
// Save answer
lead.data[currentStep.field] = msg.body;
// Move to next step
if (currentStep.next === 'complete') {
// Lead captured!
await saveLead(msg.from, lead.data);
await qualifyLead(msg.from, lead.data);
leadState.delete(msg.from);
await msg.reply(`Terima kasih ${lead.data.name}! 🙏\n\nTim kami akan segera menghubungi kakak.`);
} else {
lead.step = currentStep.next;
leadState.set(msg.from, lead);
// Send next question (with personalization)
const nextQuestion = leadFlow[lead.step].question
.replace('{name}', lead.data.name || 'Kak');
await msg.reply(nextQuestion);
}
});Step 2: Qualify Leads (Lead Scoring)
BANT Framework:
B - Budget: Punya budget yang cukup?
A - Authority: Pengambil keputusan?
N - Need: Ada kebutuhan nyata?
T - Timeline: Mau beli dalam waktu dekat?Scoring System:
javascript
function calculateLeadScore(leadData) {
let score = 0;
// Budget scoring
const budgetScores = {
'< Rp 1 juta': 10,
'Rp 1-5 juta': 20,
'Rp 5-10 juta': 30,
'> Rp 10 juta': 40
};
score += budgetScores[leadData.budget] || 0;
// Timeline scoring
const timelineScores = {
'Minggu ini': 40,
'Bulan ini': 30,
'1-3 bulan lagi': 15,
'Belum pasti': 5
};
score += timelineScores[leadData.timeline] || 0;
// Interest scoring
if (leadData.interest !== 'Belum tau') {
score += 20; // Specific interest = more serious
}
return score;
}
function getLeadCategory(score) {
if (score >= 70) return 'HOT 🔥'; // Prioritas tinggi
if (score >= 40) return 'WARM 🌡️'; // Follow up soon
return 'COLD ❄️'; // Nurture dulu
}Auto-Categorization:
javascript
async function qualifyLead(phone, leadData) {
const score = calculateLeadScore(leadData);
const category = getLeadCategory(score);
// Update lead di database
await db.leads.updateOne(
{ phone },
{
$set: {
score,
category,
qualifiedAt: new Date()
}
}
);
// Action berdasarkan category
if (category === 'HOT 🔥') {
// Immediately notify sales
await notifySales({
message: `🔥 HOT LEAD!\n\nNama: ${leadData.name}\nPhone: ${phone}\nInterest: ${leadData.interest}\nBudget: ${leadData.budget}\nTimeline: ${leadData.timeline}\nScore: ${score}`,
priority: 'urgent'
});
// Promise quick response to lead
await sendWhatsApp(phone,
`${leadData.name}, tim sales kami akan menghubungi kakak dalam 15 menit! 🚀`
);
} else if (category === 'WARM 🌡️') {
// Add to nurture sequence
await startNurtureSequence(phone, 'warm_lead');
} else {
// Add to long-term nurture
await startNurtureSequence(phone, 'cold_lead');
}
}Step 3: Lead Nurturing
Nurture Sequences:
javascript
const nurtureSequences = {
warm_lead: [
{ day: 0, template: 'welcome_warm' },
{ day: 1, template: 'product_benefits' },
{ day: 3, template: 'case_study' },
{ day: 5, template: 'limited_offer' },
{ day: 7, template: 'last_chance' }
],
cold_lead: [
{ day: 0, template: 'welcome_cold' },
{ day: 7, template: 'educational_content' },
{ day: 14, template: 'tips_and_tricks' },
{ day: 30, template: 'check_in' }
]
};
const templates = {
welcome_warm: `Hai {name}! 👋
Terima kasih sudah tertarik dengan {product}.
Ini beberapa info yang mungkin membantu:
📄 Brosur: [LINK]
💰 Pricelist: [LINK]
⭐ Testimoni: [LINK]
Ada pertanyaan? Langsung reply aja ya!`,
product_benefits: `Hai {name}! 😊
Tau gak sih, {product} kami sudah dipakai 1000+ customer!
Keunggulannya:
✅ [Benefit 1]
✅ [Benefit 2]
✅ [Benefit 3]
Mau tau lebih detail?
Ketik INFO untuk penjelasan lengkap!`,
limited_offer: `🔥 SPECIAL OFFER untuk {name}!
Karena kakak sudah menunjukkan interest,
kami kasih penawaran khusus:
🏷️ DISKON 15%
⏰ Berlaku 48 jam saja!
Mau claim?
Ketik CLAIM untuk ambil promo ini!`
};Step 4: Handover ke Sales
Trigger Handover:
javascript
// Kondisi handover ke human sales
const handoverTriggers = [
'mau beli',
'deal',
'ok order',
'siap bayar',
'hubungi saya',
'CLAIM' // dari promo
];
client.on('message', async msg => {
const text = msg.body.toLowerCase();
// Check for buying signals
const shouldHandover = handoverTriggers.some(trigger =>
text.includes(trigger)
);
if (shouldHandover) {
const lead = await db.leads.findOne({ phone: msg.from });
// Notify sales immediately
await notifySales({
type: 'HOT_LEAD_READY',
lead: lead,
lastMessage: msg.body
});
// Inform customer
await msg.reply(`Mantap ${lead.name}! 🎉
Tim sales kami akan langsung menghubungi kakak.
Mohon tunggu sebentar ya! 📞`);
// Mark lead as handed over
await db.leads.updateOne(
{ phone: msg.from },
{ $set: { status: 'handed_over', handoverAt: new Date() } }
);
}
});Lead Dashboard
📊 LEAD GENERATION DASHBOARD
Today's Stats:
├── New Leads: 45
├── Qualified: 38
├── Hot Leads: 8 🔥
├── Warm Leads: 18 🌡️
└── Cold Leads: 12 ❄️
Conversion Funnel:
Visitors → Leads: 15%
Leads → Qualified: 84%
Qualified → Sales: 21%
Sales → Closed: 35%
Top Sources:
1. Facebook Ads: 52%
2. Google Ads: 28%
3. Organic: 15%
4. Referral: 5%Integration dengan CRM
javascript
// Sync leads ke CRM (contoh: HubSpot)
async function syncToCRM(lead) {
const hubspot = new HubSpotClient({ apiKey: process.env.HUBSPOT_KEY });
await hubspot.contacts.create({
properties: {
phone: lead.phone,
firstname: lead.name,
lead_score: lead.score,
lead_source: 'WhatsApp Bot',
interest: lead.interest,
budget_range: lead.budget,
timeline: lead.timeline
}
});
}Best Practices
DO ✅
- Capture minimal info dulu (nama)
- Progressive profiling (bertahap)
- Quick response untuk hot leads
- Personalisasi semua messages
- Track dan optimize conversion
- Integrate dengan CRMDON'T ❌
- Tanya terlalu banyak di awal
- Slow response untuk hot leads
- Generic nurture content
- Tidak ada lead scoring
- Manual tracking (pakai spreadsheet)
- Tidak ada follow upFAQ
Berapa pertanyaan ideal untuk capture lead?
3-5 pertanyaan sudah cukup untuk qualify. Lebih dari itu, drop rate naik.
Berapa lama nurture cold leads?
30-90 hari dengan content berkala. Jangan terlalu sering (spam), jangan terlalu jarang (forgotten).
Hot lead harus di-follow up dalam berapa lama?
15 menit - 1 jam maksimal. Lebih lama = conversion drop significantly.
Kesimpulan
Lead generation bot = Sales machine 24/7!
| Manual | Dengan Bot |
|---|---|
| Lead terlewat | Semua ter-capture |
| Tidak ter-qualify | Auto scoring |
| Lupa follow up | Auto nurture |
| Slow response | Instant |
Capture every lead, convert more sales!