Cara Membuat Workflow n8n untuk Bot WhatsApp AI dari Nol

Jawaban singkat: workflow n8n bot WhatsApp AI = 7 node utama (Trigger → Classifier → Router → FAQ Engine / Order Flow / Status Check / Handover → Delay → Send) + 3 Cron Jobs (Follow-up, Shipping, Nurture) + Error Handling + Logging. Semua visual drag-and-drop. Artikel ini step-by-step lengkap dari canvas kosong sampai workflow produksi siap pakai.

Persiapan Sebelum Mulai (Checklist 5 Menit)

  • [ ] n8n sudah jalan (VPS / Cloud) → akses `https://domain-anda.com`
  • [ ] WhatsApp terkoneksi (Gateway scan QR / API Resmi token) → test kirim/terima OK
  • [ ] AI Credential siap (OpenAI / Anthropic / Google / OpenRouter API Key)
  • [ ] Google Sheets OAuth connected di n8n Credentials
  • [ ] Telegram Bot Token + Chat ID (untuk notif admin & error)
  • [ ] Knowledge Base Sheets ready: Tab Produk, FAQ_Kebijakan, Ongkir_Detail, Promo_Aktif
  • [ ] System Prompt draft siap copy-paste

Arsitektur Workflow Utama (7 Node Inti)

1. WHATSAPP TRIGGER (Node: WhatsApp Trigger Official/Unofficial)
→ Output: `message`, `from`, `timestamp`, `type` (text/image/document), `chatId`
↓
2. AI CLASSIFIER (Node: Chat Model – OpenAI/Anthropic/Google)
→ System Prompt: Klasifikasi Intent + Urgency + Entitas → Output JSON
→ Output: `intent`, `urgency`, `entities`, `confidence`
↓
3. ROUTER (SWITCH) (Node: Switch – berbasis `intent` + `urgency`)
→ 6 Jalur: FAQ, ORDER, STATUS, KOMPLAIN, CUSTOM, CHITCHAT
↙️ ↓ ↘️ ↓ ↓ ↓
4A. FAQ ENGINE → Sheets Read (FAQ) → AI Jawab (KB + Memory) → Fallback Check
4B. ORDER FLOW → AI Ekstrak Data → Sheets Cek Stok → Hitung Ongkir → Sheets Write Order → Kirim Rekening
4C. STATUS CHECK → Sheets/API Kurir Lookup → AI Format Resi/Status → Kirim
4D. HANDOVER KOMPLAIN → Notif Telegram Admin (🔴/🟠) → AI安抚 “Admin <5 menit" → Pause Bot
4E. HANDOVER CUSTOM → Notif Admin 🟡 → AI “Chat admin langsung ya” → Pause Bot
4F. CHITCHAT → AI Ramah singkat → Arahkan “Ada yang bisa bantu soal produk/order?”
↓ (Semua jalur converge)
5. DELAY HUMAN-LIKE (Node: Wait – Random 2-5 detik: `{{Math.floor(Math.random()*3000)+2000}}`)
↓
6. WHATSAPP SEND (Node: WhatsApp Send Official/Unofficial)
→ Input: `chatId` dari Trigger, `text` dari jalur sebelumnya
↓
7. LOGGING & ANALYTICS (Node: Google Sheets Write – Tab Chat_History)
→ Log: ID, Nomor, Intent, Urgency, Jalur, Response_Time, Timestamp, Status

Step-by-Step Bangun Workflow di n8n Canvas

Langkah 1: Buat Workflow Baru & Setup Trigger

  1. n8n Dashboard → **New Workflow** → Nama: `WhatsApp AI Bot – Production`
  2. Klik `+` → Search **”WhatsApp Trigger”** → Pilih versi Official (API Resmi) / Unofficial (Gateway)
  3. Credential: Pilih WhatsApp Credential yang sudah dibuat
  4. Settings:
    – **Webhook URL**: Copy URL yang muncul (format: `https://domain-anda.com/webhook/whatsapp`)
    – **Events**: `message` (centang semua: text, image, document, audio, video, location, contact)
  5. Test: Kirim “Halo” dari WhatsApp lain → Execution → Cek Output JSON

Langkah 2: Tambah AI Classifier Node

  1. Klik `+` di kanan Trigger → Search **”Chat Model”** → Pilih provider (OpenAI / Anthropic / Google / OpenRouter)
  2. Credential: Pilih AI Credential (API Key)
  3. Model: `gpt-4o-mini` / `claude-3-haiku` / `gemini-1.5-flash` / `llama-3.1-8b` (hemat & cepat)
  4. System Prompt (COPY PASTE INI):
Klasifikasikan chat masuk. Output JSON SAJA:
{
“intent”: “FAQ | ORDER | STATUS | KOMPLAIN | CUSTOM | CHITCHAT”,
“urgency”: “LOW | MEDIUM | HIGH | CRITICAL”,
“entities”: { “produk”: “kode/nama”, “nomor_order”: “xxx”, “lokasi”: “kota” },
“confidence”: 0.0-1.0
}

INTENT RULES:
– FAQ: Tanya harga, fitur, ongkir, pembayaran, pengiriman, retur, garansi, jam buka, promo
– ORDER: Mau beli, minta rekening, “order [produk]”, “beli [produk]”
– STATUS: “Resi”, “Tracking”, “Belum dikirim”, “Di mana barang”, “Nomor order”
– KOMPLAIN: “Rusak”, “Salah kirim”, “Komplain”, “Kecewa”, “Lapor”, “BPOM”, “Advokat”
– CUSTOM: “Custom”, “Kustom”, “Request khusus”, “Tanya bos”, “B2B”, “Grosir”, “Korporat”
– CHITCHAT: “Halo”, “Apa kabar”, “Terima kasih”, “Bye”, “Siapa nama kamu”

URGENCY RULES:
– LOW: FAQ, CHITCHAT
– MEDIUM: ORDER, STATUS
– HIGH: KOMPLAIN (emosi marah), CUSTOM (nilai besar)
– CRITICAL: KOMPLAIN + keyword: BPOM, lapor, polisi, advokat, viral, mati, beracun, bocor, luka

CONTOH:
“Brp harga Paket Pro?” → {“intent”:”FAQ”,”urgency”:”LOW”,”entities”:{“produk”:”Paket Pro”},”confidence”:0.95}
“Mau order Paket Pro, nama Budi, Jakarta” → {“intent”:”ORDER”,”urgency”:”MEDIUM”,”entities”:{“produk”:”Paket Pro”,”nama”:”Budi”,”lokasi”:”Jakarta”},”confidence”:0.9}
“Barang rusak! Lapor BPOM!” → {“intent”:”KOMPLAIN”,”urgency”:”CRITICAL”,”entities”:{“kerusakan”:”rusak”},”confidence”:1.0}

  1. Options: Temperature `0.1` (deterministik), Max Tokens `500`
  2. Connect: Trigger → Chat Model (drag line dari Trigger ke Chat Model)

Langkah 3: Tambah Switch Node (Router)

  1. `+` di kanan Chat Model → Search **”Switch”**
  2. Mode: **Rules** (bukan Expression)
  3. Add Rule 1: `{{$json.intent}}` **Equal** `FAQ` → Output: `FAQ`
  4. Add Rule 2: `{{$json.intent}}` **Equal** `ORDER` → Output: `ORDER`
  5. Add Rule 3: `{{$json.intent}}` **Equal** `STATUS` → Output: `STATUS`
  6. Add Rule 4: `{{$json.intent}}` **Equal** `KOMPLAIN` → Output: `KOMPLAIN`
  7. Add Rule 5: `{{$json.intent}}` **Equal** `CUSTOM` → Output: `CUSTOM`
  8. Add Rule 6: `{{$json.intent}}` **Equal** `CHITCHAT` → Output: `CHITCHAT`
  9. Fallback Output: `FAQ` (default kalau tidak match)
  10. Connect: Chat Model → Switch

Langkah 4: Bangun 6 Jalur (Sub-Workflow per Output Switch)

Untuk masing-masing output Switch (FAQ, ORDER, STATUS, KOMPLAIN, CUSTOM, CHITCHAT), buat jalur:

📚 JALUR FAQ (Output: FAQ)

  1. Switch (FAQ) → **Google Sheets Read** (Tab: FAQ_Kebijakan, Filter: Aktif=TRUE)
  2. → **Chat Model** (AI Jawab): System Prompt FAQ + Memory + KB dari Sheets → Output: `answer`
  3. → **IF Node** (Fallback Check): `{{$json.confidence < 0.7 || $json.answer.includes("tidak tahu")}}` → True: Fallback, False: Continue
  4. → **Set Node** (Build Response): `{{$json.answer}}` atau Fallback: “Maaf kak, untuk itu tanya admin ya”

📦 JALUR ORDER (Output: ORDER)

  1. Switch (ORDER) → **Chat Model** (Ekstrak Data): Prompt ekstrak nama, alamat, produk, catatan dari chat → JSON
  2. → **Google Sheets Read** (Tab: Produk, Filter: Kode=produk & Aktif=TRUE & Stok>0)
  3. → **IF** (Stok cek): Stok>0 → Continue, Else: “Maaf stok habis”
  4. → **Google Sheets Read** (Tab: Ongkir_Detail, Filter: Provinsi=alamat)
  5. → **Set** (Build Quote): Harga + Ongkir + Total + Rekening/VA/QRIS + CTA
  6. → **Google Sheets Write** (Tab: Order_Masuk, Append: Order Baru)

🔍 JALUR STATUS (Output: STATUS)

  1. Switch (STATUS) → **Chat Model** (Ekstrak Nomor Order/Nama)
  2. → **Google Sheets Read** (Tab: Order_Masuk, Filter: Nomor_Order ATAU Nomor_WA+Nama)
  3. → **IF** (Ditemukan): **HTTP Request** (API Kurir Tracking – opsional) → **Set** (Format Resi + Link Tracking)
  4. → **IF** (Tidak Ditemukan): “Maaf kak, order tidak ditemukan. Cek nomor order / nama.”

🚨 JALUR KOMPLAIN (Output: KOMPLAIN)

  1. Switch (KOMPLAIN) → **IF** (Urgency=CRITICAL): **Telegram Send** (🚨 CRITICAL + Owner + Legal)
  2. → **IF** (Urgency=HIGH): **Telegram Send** (🔴 HIGH + Manajemen)
  3. → **IF** (Urgency=MEDIUM): **Telegram Send** (🟠 MEDIUM + Admin)
  4. → **Set** (Response): Template empatetik per tingkat + “Admin hubungi
  5. → **Set Node** (Pause Flag): `pause_bot: true` (simpan ke Sheets/Redis untuk pause bot)

🤝 JALUR CUSTOM (Output: CUSTOM)

  1. Switch (CUSTOM) → **Telegram Send** (🟡 CUSTOM + Admin Senior)
  2. → **Set** (Response): “Untuk request custom, mending chat admin langsung ya biar detail. Admin hubungi <15 menit."
  3. → **Set** (Pause Flag): `pause_bot: true`

💬 JALUR CHITCHAT (Output: CHITCHAT)

  1. Switch (CHITCHAT) → **Chat Model** (System Prompt: Ramah singkat, arahkan ke bisnis)
  2. → **Set** (Response): Output AI

Langkah 5: Converge → Delay → Send → Log (Shared untuk Semua Jalur)

  1. Semua 6 jalur → **Merge Node** (Mode: `Wait for all` / `Choose first` tergantung desain) → Output: `response_text`
  2. → **Wait Node** (Delay Human-like): Mode `Fixed Duration` → Expression: `{{Math.floor(Math.random()*3000)+2000}}` (2-5 detik random)
  3. → **WhatsApp Send Node**: Credential WhatsApp, `chatId`: `{{$json.chatId}}` (dari Trigger), `text`: `{{$json.response_text}}`
  4. → **Google Sheets Write** (Tab: Chat_History): Append row: `ID`, `Nomor`, `Intent`, `Urgency`, `Jalur`, `Response_Time_ms`, `Timestamp`, `Status`

3 Cron Jobs Wajib (Workflow Terpisah)

Workflow Cron Schedule Fungsi
Follow-Up Belom Bayar Every 30 minutes Cek Order_Masuk Status=MENUNGGU_BAYAR >2 jam → Kirim follow-up 1/2/3 → Log
Shipping Notification Every 15 minutes Cek Order_Masuk Status=DIKIRIM + Resi ada + Belum notif → Kirim Resi + Link Tracking
Nurture & Retention Daily 10:00 Repeat Order H+30, Birthday H-1/H/H+1, Win-back COLD, VIP Exclusive

Error Handling & Monitoring (Wajib Produksi)

  1. Error Trigger Workflow (Terpisah): Trigger: **Error Trigger** → **Telegram Send** (🚨 ERROR: Workflow `{{$workflow.name}}`, Node `{{$node.name}}`, Error: `{{$error.message}}`, Time: `{{$now}}`)
  2. Uptime Monitoring: UptimeRobot (Free) → Monitor `https://domain-anda.com/webhook/whatsapp` (GET/POST) → Interval 5 menit → Alert Telegram/Email
  3. Daily Health Check (Cron 08:00): Cek: VPS Disk/RAM/CPU, n8n Process, WhatsApp Connection, AI API Quota, Sheets Access → Notif Summary ke Telegram

Testing Checklist (Wajib Sebelum Launch)

🧪 20 SKENARIO UJI (KIRIM DARI NOMOR LAIN):

  1. FAQ: “Brp harga Paket Pro?” → Jawab benar, <1 detik
  2. FAQ Variasi: “Harga pro brp?” → Jawab sama (AI paham variasi)
  3. FAQ Di Luar KB: “Cara hack akun?” → Fallback: “Tanya admin”
  4. Order: “Mau beli Paket Pro, Budi, Jakarta” → Quote + Rekening + Stok cek
  5. Order Stok Habis: “Mau beli Produk X (stok 0)” → “Stok habis”
  6. Status: “Resi order #123” → Resi + Link Tracking
  7. Status Not Found: “Resi order #999” → “Tidak ditemukan”
  8. Komplain Ringan: “Barang belum sampai 5 hari” → Empati + Admin follow-up
  9. Komplain Berat: “Barang rusak, lapor BPOM!” → 🚨 CRITICAL notif + Pause bot
  10. Custom: “Mau custom 1000 pcs, harga grosir” → 🟡 CUSTOM notif + “Chat admin”
  11. Chit-chat: “Halo, apa kabar?” → Ramah + “Ada yang bisa bantu?”
  12. Memory: Tanyakan “Paket Pro” → “Yang tadi yang mana?” → Referensi benar
  13. Follow-up: Buat order, tunggu 2 jam → Auto follow-up kirim
  14. Shipping: Update Status=DIKIRIM + Resi → Auto notif 15 menit
  15. Repeat Order: Order selesai 30 hari lalu → Auto H+30 offer
  16. Birthday: Set Tanggal_Lahir besok → Auto H-1/H/H+1 birthday
  17. Opt-out: Balas “STOP” → Tag NO_BROADCAST → Broadcast skip
  18. Error Handling: Matikan AI API → Error Trigger notif Telegram
  19. Concurrency: Kirim 10 chat bersamaan → Semua jalan, tidak timeout
  20. Rollback: Toggle Off Workflow → Bot stop, admin manual

Checklist Launch Workflow Minggu Ini

  • [ ] Bangun Workflow Utama: Trigger → Classifier → Switch → 6 Jalur → Merge → Delay → Send → Log
  • [ ] Setup System Prompt Classifier + FAQ Jawab + Order Ekstrak + Chitchat
  • [ ] Setup 6 Jalur: FAQ (Sheets+AI+Fallback), Order (Ekstrak+Stok+Ongkir+Write), Status (Lookup+Tracking), Komplain (Notif+Pause), Custom (Notif+Pause), Chitchat
  • [ ] Setup Converge: Merge → Wait (2-5s random) → WhatsApp Send → Sheets Log
  • [ ] Bangun 3 Cron Workflow: Follow-up (30min), Shipping (15min), Nurture (Daily 10:00)
  • [ ] Setup Error Trigger Workflow → Telegram Notif
  • [ ] Setup UptimeRobot Monitor Webhook URL
  • [ ] Setup Daily Health Check Cron 08:00 → Telegram Summary
  • [ ] UJI 20 SKENARIO (checklist di atas) → Fix yang gagal
  • [ ] Launch Mode Pendamping 7 Hari: Review Log Harian, Poles Prompt, Update KB
  • [ ] Target: Bot Handle >75%, Response <1 detik, 0 Error Kritis, Admin Happy

FAQ: Membuat Workflow n8n Bot WhatsApp AI dari Nol

Berapa lama bangun workflow ini dari nol?

Punya template & KB siap: 2-3 jam. Dari nol total (belum punya n8n, KB, AI): 4-6 jam (termasuk setup VPS, n8n, Gateway, AI, Sheets, testing). Template siap import: Ebook + Template n8n → 30 menit import + isi kredensial + test.

Apakah workflow ini bisa dikembangkan (modular) nanti?

YA — desain sudah modular: Trigger → Classifier → Switch → Sub-flow per intent. Nanti bisa: Pisah Sub-flow jadi Workflow terpisah (FAQ Agent, Sales Agent, Support Agent) → Panggil via Execute Workflow / HTTP Request. Bisa scale ke Multi-Agent Architecture.

Bagaimana handle update workflow tanpa downtime?

n8n: Edit workflow → Save → Active workflow otomatik reload (running executions finish, baru pakai versi baru). Untuk update besar: Duplicate workflow → Edit duplicate → Test → Rename lama → Rename baru → Activate. Zero downtime.

Bisakah workflow ini di-export untuk backup/migrasi?

YA — n8n: Workflow → Export → JSON file. Bisa import ke n8n lain (VPS lain, n8n Cloud, fork). Backup mingguan otomatis via Cron: n8n CLI export → push ke GitHub/GitLab/Drive. Template include backup script.

Template workflow lengkap sudah jadi di mana?

Ebook + Template n8n — include: Workflow JSON siap import (Utama + 3 Cron + Error Trigger), System Prompt library, Sheets format 10+ tab, Setup guide screenshot step-by-step, Testing checklist 20 skenario, Troubleshooting guide, Scale modular architecture.

Baca juga: Cara Membuat Workflow n8n untuk Bot WhatsApp AI dari Nol untuk panduan lengkapnya.

Scroll to Top