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
- Drag Webhook node, beri path
/notify. Ini titik masuk dari aplikasi lain. - Tambahkan Set node untuk normalisasi payload (mis.
title,type,userId). - Masukkan HTTP Request node ke
https://api.openai.com/v1/chat/completions—gunakan credential yang tadi. - 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. - Parse response JSON, simpan ke variabel
emailMsg,slackMsg,waMsg. - Gunakan Switch node: berdasarkan
$json.channelPreference(email|slack|whatsapp) atau aturan prioritas (jam kerja → Slack, luar jam → WhatsApp). - Untuk masing‑masing cabang, tambahkan node pengirim:
- Email:
SMTPatauSendGridnode. - Slack:
Webhooknode ke channel #notify. - WhatsApp:
Twilionode denganFrom=whatsapp:+14155238886.
- Email:
- 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
nmessages—mengurangi biaya token. - Cost Monitoring: Tambahkan node
Prometheusuntuk melaporkantoken_usagetiap 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!