Chatbot WhatsApp untuk Bisnis

Setiap hari admin Anda menjawab pertanyaan yang sama di WhatsApp: jam buka, harga, ongkir, cara pesan, status pesanan. Di luar jam kerja pesan menumpuk, dan pelanggan yang menunggu...

Chatbot WhatsApp untuk Bisnis

Setiap hari admin Anda menjawab pertanyaan yang sama di WhatsApp: jam buka, harga, ongkir, cara pesan, status pesanan. Di luar jam kerja pesan menumpuk, dan pelanggan yang menunggu terlalu lama pindah ke toko lain. Menambah admin bukan solusi yang selalu terjangkau.

Chatbot WhatsApp bisa menangani pertanyaan berulang secara otomatis dan menyerahkan kasus rumit ke manusia. Tapi chatbot yang dirancang asal-asalan justru membuat pelanggan frustrasi, dan memakai jalur yang salah bisa membuat nomor bisnis Anda diblokir. Artikel ini membahas pilihan teknologi, cara merancang alur, aturan main WhatsApp yang perlu dipahami, dan contoh implementasi webhook di Laravel.

Tiga Cara Mengotomatiskan WhatsApp

OpsiKelebihanKeterbatasanCocok untuk
Aplikasi WhatsApp Business (gratis)Pesan sambutan, pesan di luar jam kerja, balasan cepat, katalog; tanpa codingBukan chatbot sungguhan, tidak bisa terhubung ke databaseUsaha kecil dengan volume chat rendah
WhatsApp Business Platform (API resmi Meta, langsung lewat Cloud API atau lewat penyedia BSP)Resmi, stabil, mendukung tombol interaktif, bisa diintegrasikan dengan sistem AndaPerlu verifikasi bisnis, pesan template berbayar, aturan ketatBisnis yang serius dan butuh integrasi data
Gateway tidak resmi (berbasis WhatsApp Web)Murah, cepat dipasangMelanggar ketentuan WhatsApp, risiko nomor diblokir, tidak ada jaminan stabilTidak disarankan untuk nomor utama bisnis

Jika chatbot perlu mengecek stok, status pesanan, atau data pelanggan dari aplikasi Anda, pilihannya praktis hanya API resmi. Anda bisa memakai Cloud API langsung dari Meta (perlu Meta Business account, nomor yang belum terdaftar di aplikasi WhatsApp biasa, dan aplikasi di Meta for Developers) atau lewat Business Solution Provider yang menyediakan dashboard dan bantuan onboarding.

Aturan Main yang Wajib Dipahami

  • Jendela layanan 24 jam: setelah pelanggan mengirim pesan, Anda bebas membalas dengan pesan apa pun selama 24 jam. Di luar jendela itu, Anda hanya boleh mengirim message template yang sudah disetujui Meta.
  • Template dan kategori: template dibagi menjadi kategori seperti utility (notifikasi transaksi), authentication (OTP), dan marketing. Tarifnya berbeda per kategori dan per negara; cek halaman harga resmi Meta karena skemanya berubah dari waktu ke waktu.
  • Opt-in: pelanggan harus setuju menerima pesan dari Anda sebelum Anda memulai percakapan, misalnya lewat centang di form checkout.
  • Kualitas nomor: banyaknya pelanggan yang memblokir atau melaporkan nomor Anda menurunkan rating kualitas dan bisa membatasi pengiriman.

Merancang Alur Percakapan

Rancang dulu di kertas atau diagram sebelum menulis kode. Langkah yang bisa Anda ikuti:

  1. Kumpulkan data chat. Baca 100-200 chat terakhir dan kelompokkan pertanyaannya. Biasanya segelintir topik mendominasi sebagian besar chat.
  2. Pilih 5-7 topik teratas untuk diotomatiskan. Sisanya tetap ke manusia.
  3. Buat menu utama dengan tombol atau daftar. Pesan interaktif WhatsApp mendukung hingga 3 tombol balasan, atau list message dengan hingga 10 pilihan.
  4. Tulis jawaban singkat. Satu pesan, satu informasi. Akhiri dengan pilihan berikutnya agar pelanggan tidak bingung.
  5. Siapkan jalur keluar di setiap titik: tombol "Bicara dengan admin".
  6. Tentukan perilaku di luar jam kerja: bot menjawab yang bisa dijawab, dan memberi tahu kapan admin akan membalas sisanya.

Contoh menu utama

Halo, terima kasih sudah menghubungi Toko Contoh.
Pilih topik di bawah ini:

[Cek status pesanan]
[Daftar harga & produk]
[Bicara dengan admin]

Untuk pertanyaan bebas yang tidak cocok dengan menu, Anda bisa memakai model AI untuk memahami maksud pesan dan menjawab berdasarkan FAQ Anda. Batasi AI hanya menjawab dari dokumen FAQ yang Anda berikan, dan arahkan ke admin jika jawabannya tidak ada, agar bot tidak mengarang harga atau kebijakan.

Implementasi Webhook di Laravel

Dengan Cloud API, Meta mengirim setiap pesan masuk ke URL webhook Anda. Ada dua bagian: verifikasi (GET) saat Anda mendaftarkan URL, dan penerimaan pesan (POST).

// routes/web.php
use App\Http\Controllers\WhatsAppWebhookController;

Route::get('/webhooks/whatsapp', [WhatsAppWebhookController::class, 'verify']);
Route::post('/webhooks/whatsapp', [WhatsAppWebhookController::class, 'receive']);

// bootstrap/app.php  (kecualikan dari CSRF)
->withMiddleware(function (Middleware $middleware) {
    $middleware->validateCsrfTokens(except: ['webhooks/whatsapp']);
})
// app/Http/Controllers/WhatsAppWebhookController.php
class WhatsAppWebhookController extends Controller
{
    public function verify(Request $request)
    {
        // PHP mengubah titik di nama parameter menjadi underscore
        if ($request->query('hub_mode') === 'subscribe'
            && $request->query('hub_verify_token') === config('services.whatsapp.verify_token')) {
            return response($request->query('hub_challenge'), 200);
        }
        abort(403);
    }

    public function receive(Request $request)
    {
        $signature = 'sha256=' . hash_hmac('sha256', $request->getContent(), config('services.whatsapp.app_secret'));
        abort_unless(hash_equals($signature, (string) $request->header('X-Hub-Signature-256')), 401);

        $message = data_get($request->all(), 'entry.0.changes.0.value.messages.0');
        if ($message) {
            HandleWhatsAppMessage::dispatch($message);   // proses di queue
        }

        return response()->json(['ok' => true]);       // balas cepat
    }
}

Dua hal penting: verifikasi tanda tangan X-Hub-Signature-256 agar hanya Meta yang bisa memicu bot, dan balas webhook secepat mungkin lalu proses pesan di queue. Jika respons lambat, Meta akan mencoba mengirim ulang dan bot Anda bisa membalas dua kali. Simpan juga ID pesan yang sudah diproses untuk mencegah duplikasi. Penjelasan queue ada di queue dan job di Laravel.

Untuk membalas, kirim POST ke endpoint pesan Graph API:

Http::withToken(config('services.whatsapp.token'))
    ->post('https://graph.facebook.com/' . config('services.whatsapp.version')
        . '/' . config('services.whatsapp.phone_number_id') . '/messages', [
        'messaging_product' => 'whatsapp',
        'to'   => $message['from'],
        'type' => 'text',
        'text' => ['body' => 'Pesanan INV-1023 sedang dikemas dan dikirim besok.'],
    ])->throw();

Simpan token, app secret, dan phone number ID di .env, bukan di kode. Lihat checklist keamanan dasar Laravel untuk kebiasaan aman lainnya.

Eskalasi ke Manusia

Bot yang tidak bisa dilewati adalah sumber keluhan nomor satu. Atur agar percakapan pindah ke admin ketika:

  • Pelanggan memilih "Bicara dengan admin" atau mengetik kata seperti "admin", "komplain", "refund".
  • Bot gagal memahami pesan dua kali berturut-turut.
  • Topiknya sensitif: pembayaran gagal, barang rusak, data pribadi.

Saat eskalasi, simpan status percakapan (misalnya kolom handled_by berisi human) agar bot berhenti menjawab, dan kirim ringkasan percakapan ke admin supaya pelanggan tidak perlu mengulang cerita.

Mengukur Keberhasilan Bot

Setelah bot berjalan, catat setiap percakapan ke database dengan kolom sederhana: topik, apakah selesai oleh bot, dan apakah dieskalasi. Dari situ Anda bisa menghitung beberapa angka yang berguna:

  • Tingkat penyelesaian bot: persentase percakapan yang selesai tanpa admin.
  • Tingkat eskalasi per topik: topik dengan eskalasi tinggi berarti jawabannya kurang jelas atau memang butuh manusia.
  • Waktu tunggu setelah eskalasi: bot tidak ada gunanya jika pelanggan tetap menunggu berjam-jam untuk admin.

Tinjau angka ini setiap dua minggu dan perbaiki satu alur setiap kali.

Kesalahan Umum

  1. Menu terlalu dalam. Lebih dari tiga level membuat pelanggan menyerah. Ratakan menunya.
  2. Jawaban panjang seperti brosur. Di WhatsApp, pesan pendek lebih mudah dibaca.
  3. Broadcast promosi ke semua kontak tanpa opt-in. Ini mempercepat penurunan kualitas nomor.
  4. Tidak menguji di HP sungguhan. Tampilan tombol dan list berbeda dengan simulasi di dashboard.
  5. Tidak meninjau log. Pesan yang gagal dipahami bot adalah daftar perbaikan gratis untuk alur berikutnya.

Checklist Sebelum Go-Live

  • Nomor dan akun bisnis sudah terverifikasi di Meta Business.
  • Webhook memverifikasi tanda tangan dan memproses pesan di queue.
  • Pesan duplikat dicegah dengan menyimpan ID pesan.
  • Tombol "Bicara dengan admin" tersedia di setiap alur.
  • Template untuk notifikasi di luar jendela 24 jam sudah disetujui.
  • Opt-in pelanggan tercatat di database.
  • Pesan di luar jam kerja menyebut kapan admin akan membalas.

Mulailah dari FAQ sederhana dan satu integrasi data, misalnya cek status pesanan, lalu kembangkan berdasarkan log percakapan nyata. Jika data pesanan Anda belum terdigitalisasi, langkah pertamanya ada di cara digitalisasi bisnis kecil dengan sistem informasi. Beberapa aplikasi Laravel di GudangCode sudah menyimpan data pesanan yang bisa langsung dihubungkan ke webhook seperti di atas.

Yudhi
Ditulis oleh
Yudhi
Founder & Lead Developer, GudangCode

Yudhi adalah founder GudangCode dan developer Laravel dengan pengalaman membangun puluhan sistem informasi bisnis siap pakai — mulai dari POS, HRIS, hingga aplikasi manajemen. Ia menulis panduan dan artikel di GudangCode untuk membantu developer Indonesia menjalankan, memahami, dan men-deploy source code Laravel dengan benar.

Laravel PHP MySQL Sistem Informasi Bisnis
Lihat semua artikel Yudhi
Mau source code & aplikasi lengkapnya?

Daftar gratis untuk mengunduh aplikasi bisnis, sistem informasi, dan source code Laravel siap pakai.

Daftar Gratis & Download
Chatbot Whatsapp AI & Automation
📚 Free Learning Hub

Learn Coding for Free at DhieCoderWeb

Explore Laravel, PHP, JavaScript tutorials, source code, web development guides, and practical programming tips.

DhieCoderWeb
100+
Tutorials
Free
Learning
SEO
Tips
Visit Dhiecoderweb.com →

Dapatkan Akses Penuh Sekarang!

Bergabunglah menjadi member kami dan dapatkan akses eksklusif ke seluruh fitur unggulan aplikasi ini. Proses cepat, mudah, dan langsung bisa Anda gunakan.

Daftar Members Sekarang
Tim Support
Online
Isi data dulu untuk mulai chat:
Beri rating & testimoni sebelum menutup:
Live chat by gudangcode.com