Kembali ke Blog

Tutorial n8n #3: Data Mapping dan Condition Sederhana dengan IF

Panduan praktis untuk memahami data mapping di n8n menggunakan expression dan memisahkan alur workflow sederhana dengan IF node berdasarkan field lead_status.

•
Frendi Triarista
Tutorial n8n #3: Data Mapping dan Condition Sederhana dengan IF

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: new dan contacted.
  • 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

  1. Expressions, penerbit: n8n Docs, URL: https://docs.n8n.io/code/expressions/, tanggal publikasi/update sumber: tidak terverifikasi dari halaman yang diakses.
  2. 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.