Bot Jualan untuk Affiliate Marketing
Cara buat bot WhatsApp untuk program affiliate. Tracking link, komisi otomatis, dashboard affiliate. Panduan lengkap!
Affiliate marketing + WhatsApp = Powerful combo!
Bot bisa handle registrasi affiliate, tracking, dan komisi otomatis. Scale program affiliate tanpa ribet!
Fitur Affiliate Bot
✅ Registrasi affiliate otomatis
✅ Generate unique referral link/code
✅ Track referrals & sales
✅ Hitung komisi otomatis
✅ Dashboard stats via chat
✅ Withdrawal requestFlow Affiliate
1. DAFTAR → Jadi affiliate, dapat kode unik
2. SHARE → Sebarkan link/kode
3. CUSTOMER ORDER → Pakai kode affiliate
4. TRACKED → Sistem catat referral
5. KOMISI → Otomatis dihitung
6. WITHDRAW → Cairkan komisiTemplate Response Affiliate
Registrasi Affiliate:
🤝 PROGRAM AFFILIATE
Mau dapat penghasilan tambahan?
Join program affiliate kami!
💰 Komisi: 10% per penjualan
📅 Pembayaran: Setiap Jumat
💵 Min. withdraw: Rp 100.000
Cara join:
Ketik: DAFTAR AFFILIATE
Atau info lebih lanjut:
Ketik: INFO AFFILIATEForm Registrasi:
📝 DAFTAR AFFILIATE
Kirim data dengan format:
AFFILIATE
Nama lengkap:
No HP:
Email:
Bank: [BCA/Mandiri/BNI/dll]
No Rekening:
Atas nama:
Contoh:
AFFILIATE
Nama lengkap: Budi Santoso
No HP: 081234567890
Email: [email protected]
Bank: BCA
No Rekening: 1234567890
Atas nama: Budi SantosoKonfirmasi Affiliate:
🎉 SELAMAT! KAMU RESMI JADI AFFILIATE!
Kode affiliate: AFF-BUDI123
Link referral: wa.me/628xxx?text=ORDER%20AFF-BUDI123
📊 Komisi kamu: 10% per sale
💰 Balance saat ini: Rp 0
Cara pakai:
1. Share link/kode ke teman
2. Mereka order pakai kode kamu
3. Komisi otomatis masuk!
Cek stats: Ketik STATS
Withdraw: Ketik WITHDRAWAffiliate Stats:
📊 AFFILIATE DASHBOARD
Kode: AFF-BUDI123
Periode: Januari 2026
━━━━━━━━━━━━━━━━━━━━━
📈 STATISTIK
━━━━━━━━━━━━━━━━━━━━━
Klik link: 150
Registrasi: 45
Order: 23
Conversion: 15.3%
━━━━━━━━━━━━━━━━━━━━━
💰 PENGHASILAN
━━━━━━━━━━━━━━━━━━━━━
Total sales: Rp 4.500.000
Komisi (10%): Rp 450.000
Pending: Rp 150.000
Available: Rp 300.000
Withdrawn: Rp 0
━━━━━━━━━━━━━━━━━━━━━
Withdraw? Ketik WITHDRAW [JUMLAH]Order dengan Kode Affiliate:
Customer order dengan kode AFF-BUDI123:
━━━━━━━━━━━━━━━━━━━━━
✅ ORDER + REFERRAL
Order #12345
Referrer: AFF-BUDI123 (Budi)
Total order: Rp 200.000
Komisi affiliate: Rp 20.000
━━━━━━━━━━━━━━━━━━━━━
[Notif ke affiliate]
🎉 KOMISI MASUK!
Order baru dari referral kamu:
Order #12345: Rp 200.000
Komisi: +Rp 20.000
Balance sekarang: Rp 320.000Withdrawal:
💸 WITHDRAWAL REQUEST
Jumlah: Rp 300.000
Bank: BCA
Rekening: ****7890
A.n: Budi Santoso
Status: ⏳ Diproses
Estimasi: 1x24 jam (hari kerja)
Kami akan konfirmasi setelah transfer.Implementasi
Database Schema:
javascript
// Affiliates collection
{
code: 'AFF-BUDI123',
name: 'Budi Santoso',
phone: '6281234567890',
email: '[email protected]',
bankName: 'BCA',
bankAccount: '1234567890',
bankHolder: 'Budi Santoso',
commissionRate: 10, // 10%
status: 'active',
createdAt: Date
}
// Referrals collection
{
affiliateCode: 'AFF-BUDI123',
orderId: 'ORD-12345',
orderTotal: 200000,
commissionAmount: 20000,
status: 'pending', // pending, approved, paid
createdAt: Date
}
// Withdrawals collection
{
affiliateCode: 'AFF-BUDI123',
amount: 300000,
status: 'pending', // pending, processed, completed
requestedAt: Date,
processedAt: Date
}Track Affiliate Order:
javascript
async function processOrderWithAffiliate(order, affiliateCode) {
// Validate affiliate
const affiliate = await db.affiliates.findOne({
code: affiliateCode.toUpperCase(),
status: 'active'
});
if (!affiliate) {
return { tracked: false, reason: 'Invalid affiliate code' };
}
// Prevent self-referral
if (order.customerPhone === affiliate.phone) {
return { tracked: false, reason: 'Self-referral not allowed' };
}
// Calculate commission
const commission = order.total * (affiliate.commissionRate / 100);
// Create referral record
await db.referrals.insert({
affiliateCode,
orderId: order.id,
orderTotal: order.total,
commissionAmount: commission,
status: 'pending',
createdAt: new Date()
});
// Notify affiliate
await notifyAffiliateNewSale(affiliate, order, commission);
return { tracked: true, commission };
}Generate Unique Code:
javascript
function generateAffiliateCode(name) {
const prefix = 'AFF';
const namePart = name.split(' ')[0].toUpperCase().substring(0, 4);
const random = Math.random().toString(36).substring(2, 5).toUpperCase();
return `${prefix}-${namePart}${random}`;
// Output: AFF-BUDI1X3
}Calculate Available Balance:
javascript
async function getAffiliateBalance(affiliateCode) {
// Total approved commissions
const approved = await db.referrals.aggregate([
{ $match: { affiliateCode, status: 'approved' } },
{ $group: { _id: null, total: { $sum: '$commissionAmount' } } }
]);
// Total withdrawn
const withdrawn = await db.withdrawals.aggregate([
{ $match: { affiliateCode, status: 'completed' } },
{ $group: { _id: null, total: { $sum: '$amount' } } }
]);
// Pending withdrawal
const pending = await db.withdrawals.aggregate([
{ $match: { affiliateCode, status: { $in: ['pending', 'processed'] } } },
{ $group: { _id: null, total: { $sum: '$amount' } } }
]);
const totalApproved = approved[0]?.total || 0;
const totalWithdrawn = withdrawn[0]?.total || 0;
const totalPending = pending[0]?.total || 0;
return {
total: totalApproved,
withdrawn: totalWithdrawn,
pending: totalPending,
available: totalApproved - totalWithdrawn - totalPending
};
}Affiliate Tiers
javascript
const affiliateTiers = {
bronze: { minSales: 0, commission: 10 },
silver: { minSales: 1000000, commission: 12 },
gold: { minSales: 5000000, commission: 15 },
platinum: { minSales: 20000000, commission: 20 }
};
async function updateAffiliateTier(affiliateCode) {
const totalSales = await getTotalSales(affiliateCode);
let newTier = 'bronze';
for (const [tier, config] of Object.entries(affiliateTiers)) {
if (totalSales >= config.minSales) {
newTier = tier;
}
}
await db.affiliates.update(affiliateCode, {
tier: newTier,
commissionRate: affiliateTiers[newTier].commission
});
}Best Practices
1. Clear Terms
Jelaskan di awal:
- Berapa komisi
- Kapan dibayar
- Min. withdrawal
- Apa yang tidak boleh2. Prevent Fraud
- No self-referral
- Verify real orders
- Hold period sebelum approve
- Monitor suspicious patterns3. Easy Tracking
Affiliate bisa cek kapan saja:
- Stats real-time
- History referrals
- Status withdrawalFAQ
Bagaimana track dari link WhatsApp?
Pakai pre-filled message: wa.me/628xxx?text=ORDER%20AFF-CODE. Customer kirim, bot capture kode.
Kapan komisi di-approve?
Setelah order completed/delivered dan lewat return period (misal 7 hari).
Bagaimana handle refund?
Jika order di-refund, rollback komisi dari balance affiliate.
Kesimpulan
Affiliate bot = Scale word-of-mouth!
| Manual | Dengan Bot |
|---|---|
| Track manual | Auto tracking |
| Hitung manual | Auto calculate |
| Bayar manual | Withdrawal system |
Turn customers into salesforce!