Belajar n8n - Trigger & Event Sources
Episode 5 of 23

Belajar n8n - Trigger & Event Sources

Mendalami sumber pemicu workflow n8n: webhook untuk event eksternal, cron dan schedule untuk jadwal berkala, polling untuk menarik data dari API, serta event-based trigger dari cloud services. Termasuk konfigurasi webhook yang aman, validasi payload, dan cara memilih trigger yang tepat.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 4 kalian sudah membangun workflow pertama yang dipicu webhook dan berhasil mengirim email. Sekarang kita bedah sumber pemicu secara menyeluruh — karena trigger adalah keputusan arsitektur pertama yang menentukan kapan dan bagaimana workflow berjalan.

Episode ini membahas kategori trigger di n8n — webhook, cron, polling, dan event-based — konfigurasi webhook yang aman, serta cara memicu workflow dari cloud services dan integrasi API. Di akhir episode kalian bisa memilih trigger yang tepat untuk setiap skenario.

Kategori Trigger di n8n

Semua workflow dimulai dari sebuah trigger node. Berdasarkan cara ia dipicu, ada empat kategori besar:

KategoriCara KerjaContoh NodeCocok Untuk
WebhookEndpoint HTTP dipanggil sistem lainWebhookEvent real-time dari service eksternal
Schedule / cronMenjalankan di waktu terjadwalSchedule TriggerJob rutin harian/mingguan
PollingMenarik data secara berkalaGmail Trigger, RSS TriggerMengambil data baru dari API
Event-basedMendengarkan event dari platformSlack, GitHub, WebSocketSinkronisasi real-time

Satu hal yang sering membingungkan pemula: pada aplikasi trigger seperti Gmail, n8n umumnya memakai polling — mengecek inbox tiap interval, bukan menerima push. Konsekuensinya, muncul latensi maksimal sebesar interval polling. Untuk latensi nyaris nol, pakai webhook.

Webhook Trigger: Test vs Production Endpoint

Node Webhook membuat n8n menjadi endpoint HTTP. Saat dikonfigurasi, n8n menghasilkan dua URL:

  • Test URL di path /webhook-test/... — hanya aktif saat workflow dalam mode test, aman untuk eksperimen.
  • Production URL di path /webhook/... — hanya melayani request ketika workflow diaktifkan.

Perbedaan ini disengaja: mode test mencegah workflow separuh jadi ikut terpancing event produksi. Ingat juga bahwa n8n mengembalikan HTTP 200 langsung begitu payload diterima — kemudian eksekusi berjalan di belakang. Ini membuat webhook n8n responsif, tetapi berarti kalian harus memastikan payload valid sejak awal karena workflow tidak menunggu.

Mengamankan Webhook: Auth, Header, dan Validasi Payload

Webhook yang terbuka di internet adalah pintu masuk yang menggoda penyerang. Kencangkan dengan beberapa lapis:

  1. Authentication — aktifkan opsi auth pada node webhook dan tetapkan header khusus yang wajib ada, misalnya x-api-key.
  2. Validate payload — setelah trigger, sisipkan node IF untuk memvalidasi field penting; tolak (atau log) request yang formatnya mencurigakan.
  3. Selalu HTTPS — di belakang reverse proxy seperti Caddy atau Nginx, dengan TLS. Endpoint plain HTTP mudah disadap.

Contoh uji webhook production dengan API key — jalankan lewat terminal dengan curl -X POST http://localhost:5678/webhook/notifikasi-pesanan sebagai awalan:

Uji webhook production dengan API key
curl -X POST http://localhost:5678/webhook/notifikasi-pesanan \
  -H "Content-Type: application/json" \
  -H "x-api-key: rahasia-anda" \
  -d '{"nama":"Arief","email":"arief@example.com","total":1250000}'

Dengan auth aktif, request tanpa header x-api-key yang benar akan ditolak sebelum workflow dijalankan — alur tetap aman meski endpointnya publik.

Ingat juga prinsip minimum exposure: jangan mengaktifkan webhook yang tidak terpakai, matikan workflow saat tidak dibutuhkan, dan batasi method HTTP sesuai kebutuhan. Semakin sedikit endpoint yang terbuka, semakin kecil permukaan serangan.

Schedule Trigger dan Cron Expression

Untuk pekerjaan berkala — laporan pagi, sinkronisasi harian, cleanup data — gunakan Schedule Trigger. Dua mode utama:

  • Interval — jalankan tiap X jam/menit/hari/minggu. Paling sederhana untuk dipahami.
  • Cron expression — jadwal presisi ala Unix cron, lima field: menit, jam, hari dalam bulan, bulan, hari dalam minggu.

Contoh cron: setiap hari pukul 09.00 waktu instance — pastikan pola ini kalian tulis langsung di field cron node Schedule Trigger, bukan di terminal:

Cron: setiap hari pukul 09.00
0 9 * * *

Penting: jadwal mengikuti timezone instance yang ditetapkan lewat GENERIC_TIMEZONE (misal Asia/Jakarta). Jika instance berjalan di server waktu UTC, pukul 09.00 berarti jam yang berbeda dari jam lokal kalian — pastikan timezone sudah benar di setup.

Polling dan Trigger dari Cloud Services

Banyak trigger aplikasi bekerja dengan polling: pada interval tertentu, n8n memanggil API service untuk mencari data baru. Contoh nyata:

  • Gmail Trigger — memeriksa email baru dan memicu workflow saat ada pesan baru.
  • RSS Trigger — menarik feed dan mendeteksi item baru.
  • Schedule Trigger + node HTTP Request — pola manual untuk polling API yang tidak punya webhook.

Dengan polling, n8n mengingat item yang sudah diproses sehingga tidak memicu ulang data lama. Karena tiap polling adalah eksekusi, pilih interval yang seimbang: terlalu sering membuang resource, terlalu jarang menunda event.

Praktik yang umum: gabungkan polling dengan trigger lain. Misalnya jadwalkan polling dengan Schedule Trigger lalu panggil API lewat node HTTP Request, atau gunakan Gmail Trigger yang intervalnya diatur langsung di konfigurasi node. Yang penting selalu ketahui interval default dan maksimal dari node yang dipakai, agar ekspektasi latensi workflow realistis.

Warning

Beberapa API membatasi jumlah request per menit. Saat mengonfigurasi polling ke service dengan rate limit ketat, gunakan interval yang aman dan tambahkan node untuk menangani kegagalan rate limit — misalnya Wait atau retry.

Event-Based Trigger dan Integrasi API

Sejumlah node memakai event subscription murni: service mengirim event ke n8n tanpa perlu polling. Contohnya trigger WebSocket yang mendengarkan koneksi secara langsung, atau integrasi platform tertentu yang mendaftarkan webhook balik ke n8n.

Kapan memakai trigger mana? Gunakan aturan praktis ini:

  • Event real-time + kendali atas service — webhook.
  • Job terjadwal tanpa input eksternal — schedule / cron.
  • Data baru dari API pihak ketiga tanpa webhook — polling.
  • Sinkronisasi low-latency antar-platform — event-based / WebSocket.

Pilihan trigger menentukan latensi, beban, dan keandalan workflow kalian — luangkan waktu memilihnya dengan benar sejak awal.

Penutup

Episode ini memetakan seluruh sumber pemicu n8n: webhook untuk event real-time, cron untuk jadwal, polling untuk menarik data baru dari API, dan event-based untuk sinkronisasi langsung — lengkap dengan praktik mengamankan webhook dan aturan memilih trigger yang tepat.

Inti yang harus dibawa pulang:

  • Trigger dibagi menjadi webhook, schedule/cron, polling, dan event-based — masing-masing dengan latensi dan beban berbeda.
  • Test dan production webhook memiliki path terpisah; production hanya aktif saat workflow dijalankan.
  • Amankan webhook dengan auth header, validasi payload, dan HTTPS.
  • Cron mengikuti timezone instance — set GENERIC_TIMEZONE dengan benar.
  • Pilih polling bila API tidak menyediakan webhook, dan jaga interval agar tidak melanggar rate limit.

Di episode 6 berikutnya, kita masuk ke jantung pengolahan data: nodes, data & transformation — cara data mengalir antar node, penggunaan node Set, Merge, dan SplitInBatches, data transformation, conditional logic, hingga loop patterns. Sampai jumpa!