$if() เป็น n8n built-in convenience function สำหรับทำ conditional logic (if-else) ใน expressions ทำงานเหมือน ternary operator (condition ? true : false) แต่อ่านง่ายกว่า คืนค่าตาม condition ที่กำหนด เหมาะสำหรับแปลง status code เป็นข้อความ ให้ค่า default กรณีข้อมูลหายไป หรือจัดหมวดหมู่ข้อมูลตามเงื่อนไข
=$if(condition, valueIfTrue, valueIfFalse)
=$if(condition, valueIfTrue, valueIfFalse)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| condition | boolean | Yes | เงื่อนไขที่ต้องการเช็ค ต้อง evaluate เป็น true หรือ false (เช่น $json.status === ‘active’, $json.age >= 18) | |
| valueIfTrue | any | Yes | ค่าที่คืนเมื่อ condition เป็น true (string, number, object, array ได้หมด) | |
| valueIfFalse | any | Yes | ค่าที่คืนเมื่อ condition เป็น false |
แปลง status code เป็นข้อความที่อ่านง่าย (0/1 → Yes/No, active/inactive → Online/Offline)
ให้ค่า default เมื่อข้อมูลเป็น null, undefined, หรือ empty string
จัดหมวดหมู่ข้อมูลตามเงื่อนไข (อายุ, คะแนน, ยอดขาย)
Conditional formatting หรือ labeling ของข้อมูล
{{ $if($json.status === 'active', 'Online', 'Offline') }}={{ $if($json.status === 'active', 'Online', 'Offline') }}
Online
{{ $if($json.name, $json.name, 'Unknown User') }}={{ $if($json.name, $json.name, 'Unknown User') }}
John
{{ $if($json.total >= 1000, 'Premium', 'Standard') }}={{ $if($json.total >= 1000, 'Premium', 'Standard') }}
Premium
{{ $if($json.score >= 80, 'A', $if($json.score >= 60, 'B', 'C')) }}={{ $if($json.score >= 80, 'A', $if($json.score >= 60, 'B', 'C')) }}
A
ทำงานเหมือนกันทุกประการครับ $if(condition, valueIfTrue, valueIfFalse) เท่ากับ condition ? valueIfTrue : valueIfFalse แต่ $if() อ่านง่ายกว่าสำหรับคนที่ไม่คุ้นเคย JavaScript เลือกใช้ตามความชอบได้เลย ส่วนตัวผมชอบ $if() มากกว่าเพราะชัดเจนว่าค่าไหนเป็น true ค่าไหนเป็น false ครับ
ซ้อนได้ไม่จำกัด แต่ไม่แนะนำเกิน 2-3 ชั้น เพราะอ่านยาก ถ้า logic ซับซ้อนควรย้ายไป Code node หรือใช้ Switch node แทนเพื่อความชัดเจน
undefined เป็น falsy จะคืน valueIfFalse ต้องระวัง falsy values อื่นๆ ด้วย: 0, ”, null, NaN, false ล้วน falsy ทั้งหมด ถ้าต้องการเช็คแบบ strict ใช้ !== null หรือ !== undefined
$if() เป็น n8n built-in function (ไม่ใช่ JavaScript standard) สำหรับทำ conditional logic ใน expressions ทำงานเหมือน ternary operator แต่อ่านง่ายกว่าสำหรับคนที่ไม่คุ้นเคย JavaScript
ที่เจ๋งคือ syntax มันตรงไปตรงมามาก: $if(condition, valueIfTrue, valueIfFalse) ไม่ต้องจำว่า ? กับ : อยู่ตรงไหน
ส่วนตัวผมใช้ $if() บ่อยมากใน Set node สำหรับแปลง status code หรือให้ค่า default เพราะอ่านง่ายกว่า ternary operator เยอะครับ