Episode ini membahas webhooks di n8n: membangun webhook-driven workflow yang menerima event dari sistem eksternal, mengekspos endpoint API dari workflow itu sendiri, serta menerapkan webhook security dan payload validation agar endpoint tidak mudah disalahgunakan.

Di episode 8 kalian menghubungkan workflow ke layanan populer lewat integrasi native: email, Slack, Google Workspace, GitHub, dan database — semua dengan kredensial terpusat yang reusable. Pola yang dipakai di sana selalu sama: n8n yang memanggil layanan lain. Sekarang giliran arah sebaliknya.
Episode ini membahas Webhooks & API Automation. Kalian akan belajar membangun webhook-driven workflow yang menerima event dari sistem eksternal, mengekspos API endpoint dari workflow n8n itu sendiri, lalu mengamankannya dengan payload validation dan autentikasi. Di akhir episode, workflow kalian bisa menjadi API mini yang berdiri sendiri.
Node Webhook adalah trigger paling serbaguna untuk menerima panggilan masuk. Saat kalian mengaktifkan workflow dengan node ini, n8n menyediakan URL unik yang bisa dipanggil sistem lain — bisa berupa POST, GET, atau method HTTP lain, dengan format body JSON maupun Form-Data.
curl -X POST "https://n8n.example.com/webhook/order-created" \
-H "Content-Type: application/json" \
-d '{"order_id":"ORD-123","total":250000,"email":"budi@example.com"}'Cara kerja webhook n8n ada dua mode yang perlu dipahami:
Saat payload masuk, webhook menghasilkan satu item dengan seluruh isi body — field seperti body dan headers bisa dibaca langsung lewat ekspresi $json.body.order_id. Pola umum berikutnya: validasi, proses, lalu simpan atau teruskan ke sistem tujuan. Inilah fondasi dari setiap integrasi event-driven.
Ada satu detail penting soal lifecycle webhook: saat workflow sedang dimatikan (inactive) atau sedang diedit, request yang masuk akan ditolak dengan kode 404. Ini berarti webhook tidak cocok untuk lalu lintas yang tidak boleh gagal — untuk itu pakai antrean atau sistem message broker sebagai penyangga, lalu polling dari n8n. Namun untuk mayoritas kasus — notifikasi, sinkronisasi event, form submission — webhook n8n sudah lebih dari cukup.
Karena webhook dapat dipanggil siapa saja, payload yang masuk tidak bisa dipercaya mentah-mentah. Selalu validasi sebelum memproses: pastikan field wajib ada dan formatnya benar, abaikan data aneh dengan cepat dan murah.
{
"order_id": "ORD-123",
"email": "budi@example.com",
"total": 250000
}Pola validasinya: node IF memeriksa keberadaan order_id dan email, lalu bila valid lanjut ke pemrosesan; bila tidak, kirim respons 400 dan catat ke log. Tambahkan juga validasi tipe data — misalnya total harus angka — dengan ekspresi n8n di panel condition. Validasi sejak dini mencegah data korup menyebar ke seluruh pipeline, dan mencegah node database gagal karena input yang tidak sesuai skema.
Uji pola ini secara langsung: kirim payload dengan field yang hilang atau tipe salah menggunakan curl, lalu pastikan workflow menjawab dengan kode yang jelas, bukan error internal yang membingungkan pemanggil. Webhook yang memvalidasi dengan baik adalah webhook yang mudah diintegrasikan orang lain.
Webhook-driven workflow adalah pola di mana workflow dipicu oleh event, bukan oleh jadwal. Ini pola kunci untuk integrasi yang butuh reaksi cepat. Contoh nyata:
payment.success → workflow memverifikasi signature, mencocokkan order, lalu mengirim email konfirmasi dan mencatat ke database.pull_request.opened → workflow menugaskan reviewer dan menulis komentar otomatis.Kelebihan pola ini dibanding polling: reaksi terjadi seketika saat event muncul, tanpa beban memeriksa API secara berkala. Selama endpoint bisa diakses internet, workflow langsung bereaksi — cocok untuk integrasi real-time.
Pola ini sangat umum di integrasi pembayaran dan form. Contoh konkret dengan payment gateway: setiap event yang masuk diverifikasi terlebih dahulu, lalu data order dicocokkan dengan database, dan bila semua valid, workflow memperbarui status order dan mengirim konfirmasi. Bila verifikasi gagal, event ditolak dengan respons 401 dan dicatat — tanpa menyentuh data apa pun.
Info
Pilih polling (episode 5) saat kalian yang mengendalikan frekuensi pengecekan dan provider tidak mendukung webhook. Pilih webhook saat reaksi seketika lebih penting dan provider bisa mengirim event.
Tidak hanya menerima event — workflow n8n juga bisa berperilaku seperti endpoint API lengkap dengan respons. Kuncinya adalah node Respond to Webhook yang mengirim balasan ke pemanggil, baik sebagai JSON statis maupun mengambil data hasil pemrosesan node sebelumnya.
{
"status": "success",
"order_id": "ORD-123",
"processed_at": "2026-08-03T10:15:00.000Z"
}Alur khas: webhook menerima request → Function atau Code memproses → Respond to Webhook mengembalikan hasil. Ini memungkinkan kalian membangun API sederhana tanpa server khusus: validasi input, panggil database, kirim hasil. Tambahkan juga node Webhook dengan method GET untuk membuat endpoint yang bisa diuji lewat browser — pola cepat untuk mock service atau endpoint internal.
Satu hal yang sering luput: perilaku saat pemrosesan lambat. Webhook panggilan masuk menunggu workflow selesai sebelum mengirim respons, sehingga request yang memakan waktu lama bisa timeout di sisi pemanggil. Untuk operasi berat, pisahkan menjadi dua pola: webhook menerima dan langsung menjawab "diproses", lalu melanjutkan pekerjaan di cabang berikutnya; atau webhook menyimpan permintaan ke antrean dan workflow lain (dipicu cron) yang menyelesaikan pekerjaan. Pilih sesuai kebutuhan — respons cepat untuk pengalaman pengguna, atau pemrosesan penuh untuk pekerjaan yang memang lama.
Endpoint terbuka di internet adalah risiko. Ada beberapa lapis pertahanan yang bisa kalian pasang, dari yang sederhana hingga yang kuat:
user dan password pada setiap request masuk, dikonfigurasi langsung di node webhook.curl -X POST "https://n8n.example.com/webhook/order-created" \
-H "Authorization: Bearer secret-token-lama-besar" \
-H "Content-Type: application/json" \
-d '{"order_id":"ORD-123"}'Kombinasi paling umum di produksi: Header Auth untuk integrasi internal plus signature verification di Function node untuk provider publik. Jangan pernah bergantung hanya pada kerahasiaan URL webhook — itu bukan autentikasi.
Selain lapisan di atas, biasakan monitor endpoint webhook di tab Executions: lihat mana saja request yang masuk, berapa yang berhasil, dan apakah ada pola aneh seperti panggilan berulang dari IP yang sama atau payload yang mencurigakan. Endpoint publik adalah permukaan serangan; menjadikannya terlihat adalah langkah keamanan yang paling murah.
Episode 9 membuka sisi inbound otomasi: node Webhook sebagai gerbang event eksternal, payload validation agar data buruk tidak masuk pipeline, pola webhook-driven untuk reaksi real-time, Respond to Webhook untuk mengubah workflow menjadi API endpoint, dan lapisan keamanan mulai dari basic auth hingga signature verification.
Inti yang harus dibawa pulang:
IF — jangan percaya input dari luar tanpa cek.Respond to Webhook mengubah workflow menjadi endpoint API dengan respons terkontrol.Di episode 10 berikutnya kita masuk ke penyimpanan data: kita bedah database & storage automation — menghubungkan PostgreSQL, MySQL, MongoDB, dan Redis, memproses batch records, serta menangani upload dan download file dalam workflow. Sampai jumpa!