Bot Jualan untuk Affiliate Marketing

Cara buat bot WhatsApp untuk program affiliate. Tracking link, komisi otomatis, dashboard affiliate. Panduan lengkap!

Bot Jualan untuk Affiliate Marketing
Bot Jualan untuk Affiliate Marketing

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 request

Flow 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 komisi

Template 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 AFFILIATE

Form 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 Santoso

Konfirmasi 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 WITHDRAW

Affiliate 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.000

Withdrawal:

💸 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 boleh

2. Prevent Fraud

- No self-referral
- Verify real orders
- Hold period sebelum approve
- Monitor suspicious patterns

3. Easy Tracking

Affiliate bisa cek kapan saja:
- Stats real-time
- History referrals
- Status withdrawal

FAQ

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!

ManualDengan Bot
Track manualAuto tracking
Hitung manualAuto calculate
Bayar manualWithdrawal system

Turn customers into salesforce!

Setup Affiliate Bot →


Artikel Terkait