$itemIndex คือตัวแปรที่บอกตำแหน่ง (index) ของ item ปัจจุบันที่กำลังประมวลผล เริ่มนับจาก 0 (zero-based) ใช้สำหรับติดตาม item ใน multi-item workflow, สร้าง running number, หรือทำ conditional logic ตามตำแหน่ง เช่น skip item แรกหรือทำอะไรพิเศษกับ item สุดท้าย
=$itemIndex
=$itemIndex
นับลำดับ item เพื่อสร้าง ID หรือ reference number
Skip หรือ process พิเศษสำหรับ item แรก/สุดท้าย
สร้าง progress indicator ในการประมวลผลข้อมูลจำนวนมาก
Batch processing โดยแบ่ง items ตามตำแหน่ง (เช่น ทุก 10 items)
Debug workflow ด้วยการ log ตำแหน่งของ item ที่เกิด error
{{ $itemIndex }}={{ $itemIndex }}
0 (สำหรับ item แรก), 1 (item ที่สอง), ...
{{ $itemIndex + 1 }}={{ $itemIndex + 1 }}
1 (สำหรับ item แรก), 2 (item ที่สอง), ...
{{ $itemIndex === 0 ? 'Header' : 'Data' }}{{ $itemIndex === 0 ? 'Header' : 'Data' }}
"Header" (item แรก), "Data" (item อื่นๆ)
{{ 'Processing item ' + ($itemIndex + 1) + ' of ' + $input.all().length }}={{ 'Processing item ' + ($itemIndex + 1) + ' of ' + $input.all().length }}
"Processing item 3 of 10"
เพราะ n8n ใช้ zero-based indexing ตามมาตรฐาน JavaScript และ programming ทั่วไป ถ้าต้องการแสดงผลเป็นเลข 1,2,3… ให้บวก 1 เข้าไป เช่น {{ $itemIndex + 1 }} ครับ
ไม่ได้โดยตรงครับ $itemIndex ใช้ได้เฉพาะใน expressions เท่านั้น ใน Code node ต้องใช้วิธีอื่น เช่น loop ด้วย forEach พร้อม index parameter หรือเพิ่มฟิลด์ index ใน Set node ก่อนส่งเข้า Code node
ใน Loop Over Items node ให้ใช้ {{$node[“Loop Over Items”].context[“currentRunIndex”]}} แทนเพื่อดู run index ของ loop ส่วน $itemIndex จะเป็น index ภายใน batch ของแต่ละ run ครับ
$itemIndex เป็นตัวแปร built-in ที่เก็บ index ของ item ปัจจุบันที่กำลังถูกประมวลผล เริ่มนับจาก 0 ตามมาตรฐาน programming ใช้ได้ใน expressions ทุกที่ เช่น Set node, IF node, และ HTTP Request parameters
ที่เจ๋งคือ $itemIndex ทำให้เราสามารถทำ conditional logic ตามตำแหน่งได้ทันที เช่น ถ้าเป็น item แรก ($itemIndex === 0) ให้ทำอะไรพิเศษ หรือใช้ modulo เพื่อทำ batch processing ทุก N items ครับ
ส่วนตัวผมใช้ $itemIndex บ่อยมากในการสร้าง running number และ progress indicator โดยรวมกับ $input.all().length เพื่อแสดง “กำลังประมวลผล item 3 จาก 10” ครับ 😎