Tutorial n8n #3: Data Mapping dan Condition Sederhana dengan IF
Pada tutorial n8n #1, kita mulai dari instalasi n8n dan workflow sapaan pertama. Di tutorial n8n #2, kita memakai Manual Trigger dan Edit Fields untuk membuat data sederhana di dalam workflow.
Di tutorial #3 ini, kita naik satu langkah: memahami bagaimana data dari satu node dibaca oleh node berikutnya, lalu memakai IF node untuk memisahkan alur berdasarkan kondisi sederhana.
Workflow yang akan kita buat tetap sederhana:
Manual Trigger -> Edit Fields -> IF
Tidak ada API eksternal, tidak ada credential, dan tidak ada data pelanggan nyata. Fokusnya adalah fondasi: data mapping dan percabangan sederhana.
Tujuan tutorial
Setelah mengikuti tutorial ini, kamu diharapkan bisa:
- Membuat field input sederhana di n8n.
- Membaca nilai field dari node sebelumnya menggunakan expression.
- Menggunakan IF node untuk memisahkan alur true dan false.
- Menguji dua skenario sederhana:
newdancontacted. - Mengenali error umum saat expression atau nama field tidak sesuai.
Menurut saya, condition sederhana seperti ini penting dipahami sebelum workflow mulai memakai API, webhook, atau proses approval. Kalau kita sudah paham bagaimana data berpindah dan bagaimana alur bercabang, aturan bisnis kecil bisa dipetakan dengan lebih eksplisit sebelum integrasi dibuat lebih kompleks.
Prasyarat
Sebelum mulai, pastikan kamu sudah memiliki:
- n8n yang sudah berjalan.
- Akses ke editor n8n.
- Pemahaman dasar dari tutorial n8n #1 dan #2, atau minimal sudah pernah membuat workflow sederhana.
Tutorial ini tidak membutuhkan API key, password, atau credential eksternal.
Ringkasan node yang digunakan
| Urutan | Node | Fungsi |
|---|---|---|
| 1 | Manual Trigger | Menjalankan workflow secara manual dari editor n8n. |
| 2 | Edit Fields atau Set | Membuat data contoh seperti lead_status dan lead_name. |
| 3 | IF | Mengecek apakah lead_status bernilai new. |
Catatan: Di beberapa versi atau tampilan n8n, node ini bisa disebut Edit Fields atau Set. Dalam tutorial ini, kita menyebutnya Edit Fields karena nama tersebut umum muncul di versi n8n terbaru.
1. Buat workflow baru
Buka editor n8n, lalu buat workflow baru. Kamu bisa memberi nama misalnya:
Tutorial 3 - Data Mapping dan IF
Nama workflow bebas, yang penting mudah dikenali saat nanti kamu membuka daftar workflow.
2. Tambahkan Manual Trigger
Tambahkan node pertama:
Manual Trigger
Node ini berfungsi untuk menjalankan workflow secara manual. Untuk tutorial pemula, Manual Trigger cocok karena kita bisa menguji workflow tanpa menunggu event eksternal seperti webhook, jadwal, atau trigger dari aplikasi lain.
Sampai tahap ini, workflow kita masih seperti berikut:
Manual Trigger
3. Tambahkan Edit Fields untuk membuat data contoh
Berikutnya, tambahkan node Edit Fields setelah Manual Trigger.
Hubungkan node:
Manual Trigger -> Edit Fields
Di dalam Edit Fields, buat dua field berikut:
| Field | Nilai contoh |
|---|---|
lead_status |
new |
lead_name |
Budi |
Data ini hanya contoh. Kita anggap lead_status adalah status calon lead, sedangkan lead_name adalah nama lead.
Expected data setelah node Edit Fields kira-kira seperti ini:
{
"lead_status": "new",
"lead_name": "Budi"
}
Jangan gunakan data pelanggan nyata untuk latihan seperti ini. Pakai data dummy agar aman dan mudah diulang.
4. Memahami data mapping dengan expression
Di n8n, data dari node sebelumnya bisa dibaca oleh node berikutnya menggunakan expression. Format expression yang umum dipakai adalah:
{{$json.nama_field}}
Untuk membaca nilai lead_status, expression-nya adalah:
{{$json.lead_status}}
Untuk membaca nilai lead_name, expression-nya adalah:
{{$json.lead_name}}
Fakta dari dokumentasi n8n: expression memakai sintaks {{ ... }} untuk mengisi nilai parameter secara dinamis dari data workflow, metadata workflow, atau variabel lain yang tersedia. Expression cocok untuk mengambil nilai dari node sebelumnya atau melakukan transformasi ringan langsung di field parameter.
Hal penting yang perlu diingat: nama field harus sama persis.
Jika di Edit Fields kamu membuat field:
lead_status
Maka expression yang benar adalah:
{{$json.lead_status}}
Bukan:
{{$json.status}}
Bukan juga:
{{$json.leadStatus}}
Perbedaan huruf, underscore, atau nama field akan membuat nilai tidak terbaca seperti yang kamu harapkan.
5. Tambahkan IF node
Sekarang tambahkan IF node setelah Edit Fields.
Hubungkan node menjadi:
Manual Trigger -> Edit Fields -> IF
Fakta dari dokumentasi n8n: IF node digunakan untuk memisahkan workflow secara kondisional berdasarkan operasi perbandingan. Artinya, node ini mengecek sebuah kondisi, lalu mengirim item ke output true jika kondisi terpenuhi, atau ke output false jika kondisi tidak terpenuhi.
Dalam tutorial ini, kita akan membuat kondisi sederhana:
lead_status sama dengan new
6. Konfigurasikan kondisi di IF
Di IF node, buat kondisi dengan tipe String atau Text, tergantung label yang muncul di versi n8n yang kamu gunakan.
Konfigurasi dasarnya:
| Bagian | Nilai |
|---|---|
| Data type | String atau Text |
| Value 1 | {{$json.lead_status}} |
| Operation | equals atau is equal to |
| Value 2 | new |
Dengan konfigurasi ini, IF node akan membaca nilai lead_status dari item yang masuk. Jika nilainya new, item masuk ke output true. Jika bukan new, item masuk ke output false.
Secara konsep, logikanya seperti ini:
Jika {{$json.lead_status}} sama dengan new -> true
Jika tidak -> false
7. Memahami output true dan false
Pada tutorial ini, kita tidak perlu menambah node akhir yang kompleks. Cukup lihat output dari IF node setelah workflow dijalankan.
IF node memiliki dua jalur output:
| Output | Arti |
|---|---|
| true | Kondisi terpenuhi, lead_status bernilai new. |
| false | Kondisi tidak terpenuhi, lead_status bukan new. |
Kalau kamu ingin membuatnya lebih visual, kamu boleh menambahkan node sederhana seperti No Operation di masing-masing cabang. Namun untuk menjaga tutorial tetap fokus, melihat hasil output IF sudah cukup.
8. Uji skenario pertama: lead_status bernilai new
Pastikan field di Edit Fields seperti ini:
| Field | Nilai |
|---|---|
lead_status |
new |
lead_name |
Budi |
Jalankan workflow menggunakan Manual Trigger.
Expected result:
| Kondisi | Hasil |
|---|---|
lead_status sama dengan new |
Masuk ke output true |
Data item seharusnya muncul pada cabang true dari IF node.
Ini menunjukkan bahwa mapping {{$json.lead_status}} berhasil membaca nilai dari node sebelumnya, lalu IF node berhasil membandingkannya dengan nilai new.
9. Uji skenario kedua: lead_status bernilai contacted
Sekarang ubah nilai lead_status di Edit Fields menjadi:
contacted
Field lengkapnya menjadi:
| Field | Nilai |
|---|---|
lead_status |
contacted |
lead_name |
Budi |
Jalankan workflow lagi.
Expected result:
| Kondisi | Hasil |
|---|---|
lead_status sama dengan new |
Tidak terpenuhi |
lead_status bernilai contacted |
Masuk ke output false |
Data item sekarang seharusnya muncul pada cabang false dari IF node.
Dengan dua pengujian ini, kita sudah membuktikan bahwa workflow bisa memisahkan alur berdasarkan nilai field sederhana.
10. Troubleshooting umum
Expression salah
Jika output tidak sesuai, cek kembali expression di IF node.
Expression yang benar:
{{$json.lead_status}}
Kesalahan umum:
{{$json.status}}
Atau lupa memakai format expression:
$json.lead_status
Pastikan expression memakai {{ ... }}.
Nama field berbeda
Jika field di Edit Fields bernama:
lead_status
Maka IF node juga harus membaca:
{{$json.lead_status}}
Kalau kamu menulis leadStatus, status, atau lead-status, n8n akan membaca field yang berbeda.
Tipe data tidak sesuai
Dalam tutorial ini, nilai lead_status adalah teks. Jadi gunakan comparison String atau Text.
Jika suatu saat kamu membandingkan angka, tanggal, atau boolean, gunakan tipe comparison yang sesuai. Dokumentasi IF node menjelaskan bahwa pilihan field dan operasi perbandingan bisa berubah tergantung tipe data yang dipilih.
Node belum terhubung
Pastikan koneksi node benar:
Manual Trigger -> Edit Fields -> IF
Jika Edit Fields tidak terhubung ke IF, maka IF tidak menerima data yang ingin dicek.
Nilai contoh belum diubah saat pengujian kedua
Untuk menguji cabang false, pastikan nilai lead_status benar-benar sudah diganti dari:
new
menjadi:
contacted
Setelah mengubah nilai, jalankan workflow lagi agar hasilnya diperbarui.
Catatan praktis
Saya biasanya memakai pola kecil seperti ini sebelum membuat workflow yang lebih serius:
Buat data contoh -> mapping field -> cek kondisi -> lihat hasil cabang
Pola ini membantu kita memvalidasi aturan bisnis kecil sebelum menambahkan HTTP Request, webhook, database, atau integrasi aplikasi lain. Dengan begitu, saat workflow bertambah besar, kita sudah tahu bahwa logika dasarnya benar.
Untuk tutorial ini, workflow belum bisa disebut production-ready. Tujuannya adalah belajar fondasi data mapping dan condition sederhana di n8n.
Preview tutorial n8n #4
Di tutorial berikutnya, kita bisa mulai membawa data dari luar workflow secara bertahap. Dua opsi yang cocok untuk tutorial #4 adalah:
- Mengenalkan HTTP Request untuk mengambil data dari endpoint contoh.
- Mengenalkan Webhook agar n8n bisa menerima data dari luar.
Sebelum masuk ke sana, pastikan kamu sudah nyaman dengan tiga konsep dari tutorial ini: field, expression, dan IF condition.
Referensi
- Expressions, penerbit: n8n Docs, URL: https://docs.n8n.io/code/expressions/, tanggal publikasi/update sumber: tidak terverifikasi dari halaman yang diakses.
- If node, penerbit: n8n Docs, URL: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/, tanggal publikasi/update sumber: tidak terverifikasi dari halaman yang diakses.