Chatbot WA untuk Jasa Pengiriman & Kurir

Setup chatbot WhatsApp untuk bisnis kurir dan pengiriman. Cek ongkir, tracking, request pickup otomatis. Solusi logistics!

Chatbot WA untuk Jasa Pengiriman & Kurir
Chatbot WA untuk Jasa Pengiriman & Kurir

Bisnis kurir butuh response cepat!

Customer mau cek ongkir, tracking, dan request pickup kapan saja. Chatbot handle semua otomatis.


Tantangan Bisnis Kurir

🚚 TANTANGAN:

- Ratusan chat cek ongkir per hari
- "Paket saya dimana?" terus-terusan
- Request pickup mendadak
- Konfirmasi alamat bolak-balik
- Peak hour kewalahan

✅ SOLUSI CHATBOT:

- Auto cek ongkir
- Tracking real-time
- Booking pickup otomatis
- Validasi alamat
- Handle volume tinggi

Template Messages

Greeting:

🚚 [NAMA KURIR] EXPRESS

Hai! Selamat datang di [NAMA] Kurir! 📦

Mau ngapain hari ini?

1️⃣ Cek Ongkir
2️⃣ Request Pickup
3️⃣ Tracking Paket
4️⃣ Daftar Langganan/Akun
5️⃣ Jam Operasional & Area

Ketik angka untuk pilih!

💨 Same day delivery available!

Cek Ongkir:

💰 CEK ONGKIR

Untuk cek ongkir, kirim format:

ONGKIR [ASAL] [TUJUAN] [BERAT kg]

Contoh:
ONGKIR Jakarta Bandung 2

Atau ketik alamat lengkap:
"Dari Kemang Jakarta Selatan 
ke Dago Bandung, berat 1.5kg"

Kami kalkulasi otomatis! 🧮

Hasil Cek Ongkir:

📋 ESTIMASI ONGKIR

📍 Dari: Jakarta Selatan
📍 Ke: Bandung
📦 Berat: 2 kg

Pilihan layanan:
━━━━━━━━━━━━━━━━━━━━━━
🚀 SAME DAY (4-6 jam)
   Rp 85.000
   Pickup max: 14:00

⚡ EXPRESS (1 hari)
   Rp 45.000
   Estimasi: Besok 17:00

📦 REGULER (2-3 hari)
   Rp 25.000
   Estimasi: 19-20 Feb
━━━━━━━━━━━━━━━━━━━━━━

Mau kirim pakai yang mana?
Ketik: KIRIM [LAYANAN]
Contoh: KIRIM SAMEDAY

Request Pickup:

📦 REQUEST PICKUP

Mau dijemput paketnya?

Isi data berikut:

PICKUP
Nama: [Nama Pengirim]
HP: [No HP]
Alamat: [Alamat Lengkap Pickup]
--
Tujuan: [Alamat Lengkap Tujuan]
Nama Penerima: [Nama]
HP Penerima: [No HP]
--
Barang: [Deskripsi]
Berat: [Estimasi kg]
Layanan: [Sameday/Express/Reguler]

Atau ketik FORM untuk isi satu-satu.

Pickup Confirmation:

✅ PICKUP TERJADWAL!

Booking ID: #PU-20260217-001

📍 Pickup:
[NAMA PENGIRIM]
[ALAMAT PICKUP]
📱 [NO HP]

📍 Tujuan:
[NAMA PENERIMA]
[ALAMAT TUJUAN]
📱 [NO HP]

📦 Paket: [DESKRIPSI], [BERAT]kg
🚚 Layanan: SAME DAY
💰 Ongkir: Rp 85.000

⏰ Jadwal pickup:
Hari ini, 14:00 - 15:00

Kurir akan menghubungi sebelum tiba.
Siapkan paket ya! 📦

Ketik BATALKAN jika perlu cancel.

Tracking:

🔍 TRACKING PAKET

Masukkan nomor resi:

Contoh: TRK20260217001

Atau kirim: TRACK [NO RESI]

Tracking Result:

📦 STATUS PAKET

Resi: TRK20260217001
━━━━━━━━━━━━━━━━━━━━━━

📍 Jakarta → Bandung
📦 Paket Dokumen, 0.5kg
🚚 Layanan: Express

STATUS: 🟢 Dalam Pengiriman

📋 HISTORY:
━━━━━━━━━━━━━━━━━━━━━━
17 Feb, 14:30 - Pickup selesai
17 Feb, 15:00 - Di-sortir di hub Jakarta
17 Feb, 18:00 - Berangkat ke Bandung
17 Feb, 20:15 - Tiba di hub Bandung
18 Feb, 08:00 - Dalam pengiriman
━━━━━━━━━━━━━━━━━━━━━━

📍 Posisi kurir: Dago, Bandung
⏰ Estimasi tiba: 10:00 - 12:00

Kurir: Budi (0812-xxx-xxx)

Fitur Khusus Jasa Kurir

1. Area Coverage Check:

javascript

const coverageAreas = {
    'jakarta': { sameday: true, express: true, regular: true },
    'bandung': { sameday: true, express: true, regular: true },
    'surabaya': { sameday: false, express: true, regular: true },
    'makassar': { sameday: false, express: false, regular: true }
};

function checkCoverage(origin, destination) {
    const originArea = getAreaCode(origin);
    const destArea = getAreaCode(destination);
    
    const services = [];
    
    if (coverageAreas[originArea]?.sameday && 
        coverageAreas[destArea]?.sameday &&
        originArea === destArea) {
        services.push('sameday');
    }
    
    if (coverageAreas[originArea]?.express && 
        coverageAreas[destArea]?.express) {
        services.push('express');
    }
    
    services.push('regular'); // Always available
    
    return services;
}

2. Auto-Calculate Pricing:

javascript

const pricing = {
    sameday: {
        base: 50000,
        perKg: 15000,
        maxKg: 10
    },
    express: {
        base: 20000,
        perKg: 8000,
        maxKg: 30
    },
    regular: {
        base: 10000,
        perKg: 5000,
        maxKg: 50
    }
};

function calculatePrice(service, weight, distance) {
    const config = pricing[service];
    
    let price = config.base;
    
    // Weight-based
    if (weight > 1) {
        price += (weight - 1) * config.perKg;
    }
    
    // Distance-based adjustment (simplified)
    if (distance > 50) {
        price *= 1.2;
    }
    
    return Math.ceil(price);
}

3. Real-Time Tracking Integration:

javascript

async function getTrackingStatus(resi) {
    // Integration with tracking system
    const tracking = await db.shipments.findOne({ resi });
    
    if (!tracking) {
        return { found: false, message: 'Resi tidak ditemukan' };
    }
    
    // Get latest status
    const latestStatus = tracking.history[tracking.history.length - 1];
    
    // Get courier location if in delivery
    let courierLocation = null;
    if (latestStatus.status === 'in_delivery') {
        courierLocation = await getCourierLocation(tracking.courierId);
    }
    
    return {
        found: true,
        resi: tracking.resi,
        status: latestStatus.status,
        statusText: getStatusText(latestStatus.status),
        history: tracking.history,
        courier: courierLocation,
        eta: tracking.estimatedDelivery
    };
}

4. Pickup Slot Management:

javascript

const pickupSlots = {
    'sameday': [
        { time: '09:00-10:00', cutoff: '08:30', available: 5 },
        { time: '11:00-12:00', cutoff: '10:30', available: 5 },
        { time: '14:00-15:00', cutoff: '13:30', available: 5 },
    ],
    'express': [
        { time: '09:00-12:00', cutoff: '08:00', available: 10 },
        { time: '14:00-17:00', cutoff: '13:00', available: 10 },
    ]
};

async function getAvailableSlots(service, area, date) {
    const slots = pickupSlots[service];
    const bookings = await db.pickups.countBySlot(area, date);
    
    return slots
        .filter(slot => {
            const cutoffTime = new Date(`${date} ${slot.cutoff}`);
            return new Date() < cutoffTime;
        })
        .map(slot => ({
            ...slot,
            remaining: slot.available - (bookings[slot.time] || 0)
        }))
        .filter(slot => slot.remaining > 0);
}

Notifikasi Otomatis

Status Update ke Customer:

// Pickup dijemput
📦 PAKET DIJEMPUT

Hai! Paket sudah kami jemput.

Resi: TRK20260217001
Kurir: Budi

Tracking: wa.me/628xxx?text=TRACK%20TRK20260217001

---

// Dalam pengiriman
🚚 DALAM PENGIRIMAN

Paket sedang dikirim ke penerima!

Resi: TRK20260217001
Estimasi tiba: 10:00 - 12:00

Kurir akan menghubungi penerima.

---

// Delivered
✅ PAKET TERKIRIM

Paket sudah diterima oleh: Ibu Ana
Waktu: 17 Feb 2026, 11:45

Resi: TRK20260217001

Terima kasih sudah menggunakan [NAMA] Kurir! 🙏

Failed Delivery:

⚠️ PENGIRIMAN GAGAL

Paket tidak bisa dikirim:
Resi: TRK20260217001
Alasan: Alamat tidak ditemukan

Mohon konfirmasi alamat yang benar
atau reschedule pengiriman.

Ketik:
- ALAMAT [alamat baru]
- RESCHEDULE [tanggal]
- RETURN (kembalikan ke pengirim)

Langganan/Akun Bisnis

👥 DAFTAR AKUN BISNIS

Untuk seller/olshop yang sering kirim,
daftar akun bisnis untuk:

✅ Harga khusus (disc 10-20%)
✅ Pickup gratis unlimited
✅ Invoice bulanan
✅ Dashboard tracking
✅ CS prioritas

Syarat:
- Min 30 paket/bulan
- Data bisnis lengkap

Daftar sekarang:
Ketik DAFTAR BISNIS

Best Practices

DO ✅

- Response cepat (< 3 detik)
- Update tracking real-time
- Notifikasi proaktif
- Multiple channel (WA, Web, App)
- Clear SLA per layanan

DON'T ❌

- Tracking tidak update
- Estimasi tidak akurat
- Tidak ada konfirmasi pickup
- Susah hubungi kurir
- Tidak ada fallback contact

FAQ

Bisa integrasi dengan sistem existing?

Ya! API-based integration dengan TMS (Transportation Management System) yang sudah ada.

Bagaimana handle volume tinggi?

Chatbot handle 90% pertanyaan rutin (ongkir, tracking). Human untuk complex issues.

Perlu notifikasi otomatis?

Wajib! Customer expect update tanpa harus tanya. Push notification setiap status change.


Kesimpulan

Kurir + Chatbot = Service level up!

ManualDengan Chatbot
Cek ongkir manualAuto calculate
Tracking via callSelf-service
Booking ribetOne-click pickup
Update manualAuto notification

Deliver better service with automation!

Setup Chatbot Kurir →


Artikel Terkait