Cara Memakai Webhook di n8n: Pintu Masuk Semua Integrasi
Daftar integrasi resmi n8n panjang, tapi cepat atau lambat Anda akan bertemu aplikasi yang tidak ada di daftar itu: payment gateway lokal, sistem kasir, aplikasi internal buatan sendiri. Kabar baiknya, hampir semua aplikasi modern bisa "menelepon" alamat web ketika sesuatu terjadi. Kalau Anda paham cara menerima telepon itu — itulah webhook — praktis tidak ada lagi sistem yang tidak bisa disambungkan ke n8n.
Apa itu webhook dalam bahasa sederhana
Webhook adalah alamat URL yang Anda siapkan untuk menerima kabar. Alih-alih n8n bertanya terus-menerus "ada data baru? ada data baru?", sistem lain yang mengetuk pintu n8n tepat saat kejadiannya: pembayaran berhasil, form terkirim, pesan masuk. Arahnya kebalikan dari API biasa — bukan Anda yang memanggil, Anda yang dipanggil.
Konsekuensinya dua: reaksi jadi seketika (tidak menunggu jadwal polling), dan beban server jauh lebih ringan. Tapi ada syaratnya: alamat webhook Anda harus bisa diakses dari internet, dan karena bisa diakses dari internet, ia harus dijaga.
Langkah 1: Buat Webhook node dan uji dengan curl
Buat workflow baru dan pasang node Webhook sebagai trigger. n8n langsung memberi dua URL: Test URL untuk masa pengembangan dan Production URL yang aktif setelah workflow di-activate. Set method ke POST.
Klik Listen for test event, lalu dari terminal komputer Anda, kirim data percobaan:
curl -X POST https://n8n-anda.com/webhook-test/xxxx \
-H "Content-Type: application/json" \
-d '{"order_id": "INV-001", "total": 150000, "status": "paid"}'
Di kanvas n8n, node webhook akan menyala dan menampilkan data yang baru saja Anda kirim. Momen kecil ini penting: Anda baru saja melihat persis bagaimana data dari dunia luar mendarat di workflow.
Langkah 2: Baca payload yang masuk
Data kiriman tadi tersedia untuk node-node berikutnya, umumnya di bawah body. Field order_id di contoh tadi bisa dipakai node lain lewat expression:
{{ $json.body.order_id }}
Kebiasaan yang benar: jangan pernah menulis expression dari ingatan. Kirim satu contoh data sungguhan, buka output node webhook, dan salin path field-nya dari sana. Setiap aplikasi mengemas payload-nya berbeda — ada yang membungkus dalam data, ada yang menaruh di query string, ada yang mengirim form-encoded.
Langkah 3: Balas dengan Respond to Webhook
Secara default n8n langsung membalas "OK" begitu data diterima. Untuk banyak kasus itu cukup. Tapi kalau si pemanggil menunggu jawaban yang berarti — misalnya aplikasi Anda ingin tahu hasil validasinya — pakai node Respond to Webhook di ujung alur, dan atur node Webhook ke mode menunggu respond node itu. Dari sana Anda bisa mengirim balik JSON apa pun hasil olahan workflow.
Perhatikan satu hal: kebanyakan pengirim webhook hanya sabar beberapa detik. Kalau pemrosesan Anda lama, balas dulu dengan cepat, dan biarkan sisa pekerjaan berjalan setelahnya.
Mengamankan webhook dari akses sembarang orang
Production URL Anda adalah pintu yang terbuka ke internet. Siapa pun yang tahu alamatnya bisa mengirim data palsu. Minimal lakukan dua dari tiga ini:
- Header rahasia. Sepakati satu token dengan sistem pengirim, kirim lewat header, dan tolak request yang tokennya salah lewat node IF di awal alur.
- Validasi isi. Periksa field wajib dan bentuknya sebelum data dipakai. Payload yang aneh berhenti di gerbang, bukan masuk ke spreadsheet.
- Verifikasi signature, kalau pengirimnya mendukung. Payment gateway umumnya menandatangani setiap kiriman; cocokkan tanda tangan itu sebelum mempercayai isinya. Untuk data yang menyangkut uang, ini wajib, bukan pilihan.
Kapan polling lebih masuk akal daripada webhook
Webhook bukan jawaban untuk segalanya. Kalau sumber data tidak bisa mengirim webhook (banyak sistem lama tidak bisa), polling terjadwal adalah satu-satunya jalan. Kalau kebutuhannya rekap harian — bukan reaksi seketika — Schedule Trigger yang membaca data sekali sehari lebih sederhana dan lebih mudah di-debug. Dan kalau n8n Anda hidup di jaringan kantor yang tidak boleh dibuka ke internet, webhook publik memang bukan opsi tanpa kerja jaringan tambahan.
Aturan praktisnya: kejadian yang butuh reaksi dalam hitungan detik memakai webhook; kebutuhan berkala memakai jadwal. Banyak sistem sehat memakai keduanya sekaligus.
Lanjut belajar: workflow pertama di n8n untuk fondasinya, atau serahkan integrasinya ke tim kami kalau Anda ingin sistem-sistem Anda saling bicara tanpa harus mendalami ini semua.
Clovertechno