AI Class

Bangun Sistem Notifikasi Multi-Channel Pintar dengan n8n + AI (Email, Slack, WhatsApp) dalam 5 Menit

· 3 menit baca

Bangun Sistem Notifikasi Multi-Channel Pintar dengan n8n + AI (Email, Slack, WhatsApp) dalam 5 Menit

🚨 Kenapa Anda Butuh Notifikasi Multi-Channel?

Tim Anda selalu terlewatkan pesan penting? Pelanggan mengeluh karena tidak ada update real‑time? Di era kerja remote, kecepatan penyampaian informasi jadi faktor penentu retensi dan produktivitas. Tapi membangun notifikasi manual di masing‑masing platform—email, Slack, WhatsApp—biasanya makan waktu berjam‑jam, penuh kode boilerplate, dan duplikasi logika.

💡 Ide Solusi: n8n + AI Agent

Alih-alih menulis kode di tiga tempat, gunakan n8n sebagai orchestrator low‑code dan AI Agent (GPT) untuk memformat pesan secara dinamis. Hasilnya: satu workflow yang listen satu event, decide channel mana yang paling relevan, lalu send notifikasi yang sudah dipersonalisasi.

🔧 Architecture Overview

  • Trigger: Webhook, cron, atau webhook dari SaaS (mis. Stripe, GitHub, atau internal DB).
  • AI Formatter Node: Memanggil OpenAI GPT‑4o untuk membuat subject, headline, atau CTA yang SEO‑friendly.
  • Channel Router: Decision node berbasis kondisi (priority, preferensi user, jam kerja) yang mengarah ke tiga cabang: Email (SMTP/SendGrid), Slack (Webhook), WhatsApp (Twilio).
  • Retry / fallback: Node “Circuit Breaker” dengan exponential backoff, dan fallback ke email bila channel lain mengalami error.
  • Logging & Monitoring: Simpan payload ke Postgres + Slack alert bila gagal >3x.

🛠️ Langkah‑Langkah Implementasi (Walkthrough)

1. Siapkan n8n di Docker

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -e DB_TYPE=postgresdb \
  -e DB_POSTGRESDB_HOST=postgres \
  -e DB_POSTGRESDB_PORT=5432 \
  -e DB_POSTGRESDB_DATABASE=n8n \
  -e DB_POSTGRESDB_USER=n8n \
  -e DB_POSTGRESDB_PASSWORD=secret \
  n8nio/n8n

Pastikan POSTGRES_PASSWORD disimpan di .env dan gunakan docker‑compose untuk produksi.

2. Tambahkan API Key OpenAI

Di Credentials pilih “OpenAI API”, masukkan OPENAI_API_KEY. Simpan sebagai credential bernama OpenAI‑GPT.

3. Buat Workflow Baru

  1. Drag Webhook node, beri path /notify. Ini titik masuk dari aplikasi lain.
  2. Tambahkan Set node untuk normalisasi payload (mis. title, type, userId).
  3. Masukkan HTTP Request node ke https://api.openai.com/v1/chat/completions—gunakan credential yang tadi.
  4. Prompt contoh:
    Berikan saya subject email, pesan Slack, dan teks WhatsApp untuk notifikasi dengan data berikut:
    Title: {{ $json.title }}
    Type: {{ $json.type }}
    User: {{ $json.userId }}
    Gunakan bahasa yang sopan dan singkat, maksimal 50 kata per channel.
  5. Parse response JSON, simpan ke variabel emailMsg, slackMsg, waMsg.
  6. Gunakan Switch node: berdasarkan $json.channelPreference (email|slack|whatsapp) atau aturan prioritas (jam kerja → Slack, luar jam → WhatsApp).
  7. Untuk masing‑masing cabang, tambahkan node pengirim:
    • Email: SMTP atau SendGrid node.
    • Slack: Webhook node ke channel #notify.
    • WhatsApp: Twilio node dengan From = whatsapp:+14155238886.
  8. Terakhir, tambahkan Postgres node untuk menyimpan log (status, payload, timestamp).

4. Circuit Breaker & Retry

Wrap setiap pengirim dengan IF node yang cek error. Jika true, jalankan Wait (exponential 5s → 30s) lalu retry maksimal 3 kali. Jika masih gagal, fallback ke email sebagai kanal terakhir.

5. Testing Sekarang!

curl -X POST http://localhost:5678/webhook/notify \
  -H "Content-Type: application/json" \
  -d '{"title":"Invoice #1234 telah jatuh tempo","type":"billing","userId":"u42","channelPreference":"auto"}'

Anda akan melihat tiga pesan terkirim (atau satu fallback) dalam hitungan detik.

🔍 Use Case Real: Startup SaaS Billing Reminder

Tim finance di sebuah startup SaaS menggunakan workflow ini untuk mengirim reminder pembayaran kepada 10.000 pelanggan setiap hari. Karena AI menulis subject yang variatif, open‑rate naik 27% dibanding template statis. Slack digunakan untuk tim internal, WhatsApp untuk pelanggan di Indonesia yang lebih responsif via chat.

💡 Insight & Strategi Optimasi

  • Dynamic Prompting: Simpan variasi prompt di tabel Postgres, rotate tiap 100 request untuk menghindari repetitif.
  • Batching: Jika volume > 100 per menit, kumpulkan dalam batch dan kirim satu panggilan OpenAI dengan n messages—mengurangi biaya token.
  • Cost Monitoring: Tambahkan node Prometheus untuk melaporkan token_usage tiap hari, set alert bila > $5.
  • Channel Preference Learning: Simpan feedback klik (email open, WhatsApp read) di DB, gunakan simple ML (logistic regression) tiap minggu untuk menyesuaikan prioritas channel per user.

🧭 Penutup & Call to Action

Dengan n8n + GPT, Anda dapat mengubah satu webhook menjadi ekosistem notifikasi yang adaptif, personal, dan hemat biaya—tanpa menulis satu baris kode backend. Mulailah hari ini: deploy n8n, copy-paste workflow di atas, dan lihat bagaimana tim Anda jadi lebih responsif dalam 5 menit.

🚀 Gabung komunitas JIPRAKS Classroom untuk berbagi template, dapatkan feedback, dan upgrade workflow Anda dengan plugin AI terbaru!

Artikel terkait