Thep Excel

66 functions

$if() เป็น n8n built-in convenience function สำหรับทำ conditional logic (if-else) ใน expressions ทำงานเหมือน ternary operator (condition ? true : false) แต่อ่านง่ายกว่า คืนค่าตาม condition ที่กำหนด เหมาะสำหรับแปลง status code เป็นข้อความ ให้ค่า default กรณีข้อมูลหายไป หรือจัดหมวดหมู่ข้อมูลตามเงื่อนไข

Syntax
$if(condition, valueIfTrue, valueIfFalse)

$input.all() เป็น method ที่ดึง input items ทั้งหมดมาในครั้งเดียวเป็น array ใช้เมื่อต้องการประมวลผลหลาย items พร้อมกัน ทำ aggregation เช่น sum, average, หรือต้องการเข้าถึงข้อมูลทั้งหมดก่อนทำ transformation ต่างจาก $json ที่เข้าถึงเฉพาะ item ปัจจุบัน $input.all() ให้ภาพรวมของข้อมูลทั้งหมด สามารถใช้ array methods เช่น map, filter, reduce ได้ทันที เหมาะกับงาน batch processing และ data analysis

Syntax
$input.all()

$input.first() ดึงเฉพาะ item แรกสุดจากข้อมูลที่เข้ามาใน node ปัจจุบัน ใช้เมื่อต้องการ configuration, header row หรือข้อมูลอ้างอิงที่อยู่ตำแหน่งแรกเสมอ return เป็น item object เดียว (ไม่ใช่ array) ถ้าไม่มี items จะได้ undefined

Syntax
$input.first()

$input.item คือตัวแปรที่ใช้เข้าถึงรายการข้อมูลปัจจุบันที่กำลังประมวลผล โดยให้ข้อมูลครบถ้วนกว่า $json เพราะรวมทั้ง json data, binary files และ pairing info ไว้ด้วยกัน ส่วนใหญ่ใช้ $json ก็เพียงพอ แต่ $input.item จำเป็นเมื่อต้องการเข้าถึงไฟล์ binary หรือ track ความสัมพันธ์ระหว่าง items

Syntax
$input.item

$input.last() คือ method ที่ดึงเฉพาะ item สุดท้ายจาก inputs ทั้งหมด ตรงข้ามกับ $input.first() ใช้เมื่อต้องการข้อมูล summary, footer, หรือ timestamp สุดท้าย เหมาะกับการประมวลผล time-series data ที่ต้องการค่าล่าสุด หรือข้อมูลที่ append ท้ายมาเสมอ ช่วยให้ code ชัดเจนว่าต้องการ item สุดท้ายโดยเฉพาะ ไม่ต้องคำนวณ index ด้วย length – 1

Syntax
$input.last()

$itemIndex คือตัวแปรที่บอกตำแหน่ง (index) ของ item ปัจจุบันที่กำลังประมวลผล เริ่มนับจาก 0 (zero-based) ใช้สำหรับติดตาม item ใน multi-item workflow, สร้าง running number, หรือทำ conditional logic ตามตำแหน่ง เช่น skip item แรกหรือทำอะไรพิเศษกับ item สุดท้าย

Syntax
$itemIndex

$json เป็นตัวแปรพื้นฐานที่สำคัญที่สุดใน n8n ใช้เข้าถึงข้อมูล JSON ของ item ปัจจุบันที่กำลังประมวลผล ทำงานคล้าย this หรือ current row ใน Excel สามารถเข้าถึงข้อมูลได้ทั้งแบบ dot notation ($json.field) และ bracket notation ($json['field']) ใช้บ่อยที่สุดในทุก workflow เพราะเป็นจุดเริ่มต้นของการเข้าถึงข้อมูล

Syntax
$json

$now เป็นอ็อบเจ็กต์ Luxon DateTime ที่คืนค่า timestamp ปัจจุบัน (เทียบเท่า DateTime.now()) รองรับการจัดรูปแบบด้วย .toFormat(), การคำนวณด้วย .plus()/.minus(), และการแปลงเขตเวลาด้วย .setZone() เหมาะสำหรับสร้าง timestamp แม่นยำในการบันทึกข้อมูล

Syntax
$now

$today เป็นอ็อบเจ็กต์ Luxon DateTime ที่คืนค่าวันที่ปัจจุบันโดยตั้งเวลาเป็นเที่ยงคืน (00:00:00.000) รองรับการจัดรูปแบบด้วย .toFormat(), การคำนวณด้วย .plus()/.minus(), และการเปรียบเทียบวันที่ เหมาะสำหรับตรวจสอบวันหมดอายุ กรองข้อมูลตามวัน

Syntax
$today

append() เป็น n8n-specific array extension (ไม่ใช่ JavaScript method มาตรฐาน) เพิ่มค่าหรือรายการใหม่ต่อท้ายอาร์เรย์ คืนค่าเป็นอาร์เรย์ใหม่ (immutable – ไม่แก้ไขอาร์เรย์เดิม) มีประโยชน์ในการเพิ่มรายการใหม่ รวมข้อมูลจากหลายแหล่ง หรือสร้างอาร์เรย์แบบ incremental

Syntax
array.append(value)

average คำนวณค่าเฉลี่ยของตัวเลขทั้งหมดในอาร์เรย์ โดยนำผลรวมทั้งหมดหารด้วยจำนวนข้อมูล ฟังก์ชันนี้เป็นประโยชน์ในการวิเคราะห์ข้อมูล เช่น ค่าเฉลี่ยยอดขาย คะแนนสอบ หรือราคาสินค้า

Syntax
average(array)

chunk แบ่งอาร์เรย์ออกเป็นชิ้นเล็กๆ โดยระบุขนาดของแต่ละชิ้น เมื่อมีข้อมูลจำนวนมาก ฟังก์ชันนี้ช่วยในการประมวลผลแบบ batch หรือส่งข้อมูลไปให้บริการภายนอกที่มีจำกัดการใช้งาน

Syntax
chunk(array, size)

compact ลบค่า falsy ทั้งหมด (null, undefined, false, 0, empty string) ออกจากอาร์เรย์ ฟังก์ชันนี้มีประโยชน์ในการทำความสะอาดข้อมูลและเตรียมข้อมูลสำหรับการประมวลผลต่อ

Syntax
compact(array)

diff() หาช่วงห่างระหว่าง DateTime object สองตัว โดย return Duration object ที่บอกจำนวนวัน ชั่วโมง นาที หรือวินาที ที่ต่างกัน เหมาะสำหรับคำนวณอายุ ระยะเวลาจัดส่ง เวลาที่ผ่านไป หรือสร้าง SLA calculation ในงาน automation

Syntax
{{ $json.date1.diff($json.date2, 'unit') }}

difference เปรียบเทียบสองอาร์เรย์ และคืนค่าสมาชิกที่อยู่ในอาร์เรย์แรกเท่านั้น ฟังก์ชันนี้มีประโยชน์ในการหาข้อมูลที่ไม่มีอยู่ในรายการเปรียบเทียบ เช่นหารายชื่อลูกค้าใหม่ที่ยังไม่เคยซื้อสินค้า

Syntax
difference(array1, array2)

endsWith ตรวจสอบว่าข้อความสิ้นสุดด้วยข้อความที่ระบุหรือไม่ ส่งคืนค่า true หรือ false ฟังก์ชันนี้มีประโยชน์ในการตรวจสอบนามสกุลไฟล์ ส่วนท้ายข้อความ หรือการจำแนกประเภท

Syntax
endsWith(text, searchString)

filter() เป็น JavaScript standard array method (ES2021+, ไม่ใช่ n8n-specific) กรองรายการในอาร์เรย์ตามเงื่อนไขที่กำหนด คืนค่าอาร์เรย์ใหม่ที่มีเฉพาะรายการที่ตรงตามเงื่อนไข (predicate function returns true) มีประโยชน์ในการเลือกข้อมูลเฉพาะส่วน ลบรายการที่ไม่ต้องการ หรือจัดกลุ่มข้อมูลตามเงื่อนไข

Syntax
array.filter(predicate)

first() เป็น n8n array extension ที่ดึงสมาชิกตัวแรกจากอาร์เรย์ โดยไม่ต้องใช้ index notation [0] มีประโยชน์เมื่อต้องการเข้าถึงบันทึกแรก เมตาดาต้า header row หรือการทำให้โค้ด readable มากขึ้น

Syntax
$json.array.first() หรือ {{ [array].first() }}

flatten ลดมิติของ nested array ให้เป็นอาร์เรย์เดียว ฟังก์ชันนี้มีประโยชน์เมื่อมีข้อมูลที่จัดระเบียบเป็นชั้นๆ และต้องการรวมทั้งหมดเข้าด้วยกัน

Syntax
flatten(array, [depth])

floor ปัดเศษตัวเลขลงเป็นจำนวนเต็ม ตัวอย่างเช่น floor(4.7) คืนค่า 4 ฟังก์ชันนี้มีประโยชน์ในการคำนวณจำนวนสินค้า จำนวนหน้า หรือเวลาในการประมวลผล

Syntax
floor(number)

format จัดรูปแบบค่าให้เป็นสตริงตามรูปแบบที่กำหนด เช่น ตัวเลขทศนิยม วันที่ เงินสด หรือเปอร์เซ็นต์ ฟังก์ชันนี้มีประโยชน์ในการแสดงผลข้อมูล สร้างเนื้อหาที่อ่านง่าย หรือการแปลงข้อมูล

Syntax
format(value, formatString)

hasField() คือ method ที่ใช้ตรวจสอบว่าอ็อบเจ็กต์มี field หรือ key ที่ระบุหรือไม่ คืนค่า true ถ้ามี field นั้น false ถ้าไม่มี มีประโยชน์สำหรับป้องกัน error เวลาเข้าถึง field ที่อาจจะไม่มีอยู่

Syntax
$json.hasField('fieldName')

hash แปลง string เป็น hash code ที่ไม่สามารถแปลงกลับได้ ฟังก์ชันนี้มีประโยชน์ในการเข้ารหัสข้อมูล สร้าง unique IDs หรือตรวจสอบความเท่ากันของข้อมูล

Syntax
hash(text)

includes ตรวจสอบการมีอยู่ของค่าในอาร์เรย์ คืนค่า true หากพบค่าที่ระบุ ใช้มากในการตรวจสอบความถูกต้องของข้อมูล เช่นตรวจสอบว่า status มีค่า 'completed' หรือตรวจสอบว่า ID อยู่ในรายชื่อ

Syntax
includes(array, value)

indexOf หาตำแหน่งแรกของค่าที่ระบุในอาร์เรย์ คืนค่า index (เริ่มตั้งแต่ 0) หากพบค่านั้น หรือ -1 หากไม่พบ ฟังก์ชันนี้มีประโยชน์ในการตรวจสอบตำแหน่ง และเข้าถึงข้อมูลใกล้เคียง

Syntax
indexOf(array, value, [fromIndex])

intersection หาสมาชิกร่วมที่อยู่ในอาร์เรย์ทั้งสอง ฟังก์ชันนี้มีประโยชน์ในการค้นหาข้อมูลที่ตรงกัน เช่นลูกค้าร่วม หรือสินค้าที่ทั้งสองฝ่ายมี

Syntax
intersection(array1, array2)

isDomain ตรวจสอบว่าข้อความเป็นโดเมนที่ถูกต้องตามมาตรฐาน ฟังก์ชันนี้มีประโยชน์ในการกรองข้อมูลที่ไม่ถูกต้อง ตรวจสอบรายการติดต่ออินเทอร์เน็ต หรือจัดระเบียบข้อมูลเว็บไซต์

Syntax
isDomain(text)

isEmail ตรวจสอบว่า string เป็น email address ที่ถูกต้องหรือไม่ ฟังก์ชันนี้มีประโยชน์ในการตรวจสอบความถูกต้องของ email ก่อนการส่งข้อมูลหรือการบันทึก

Syntax
isEmail(value)

isEmpty() ตรวจสอบว่าค่า string, array, object, หรือ undefined/null เป็นค่าว่างเปล่าหรือไม่ ฟังก์ชันนี้เหมาะสำหรับการตรวจสอบความสมบูรณ์ของข้อมูล ตัดสินใจการทำงานใน workflow หรือกรองข้อมูลที่ไม่มีค่า

Syntax
{{ value.isEmpty() }}

isNumeric ตรวจสอบว่าค่า string เป็นตัวเลขหรือสามารถแปลงเป็นตัวเลขได้หรือไม่ ฟังก์ชันนี้มีประโยชน์ในการตรวจสอบว่าข้อมูล input เป็นตัวเลขก่อนการคำนวณหรือการประมวลผล

Syntax
isNumeric(value)

isUrl ตรวจสอบว่า string เป็น URL ที่ถูกต้องหรือไม่ ฟังก์ชันนี้มีประโยชน์ในการตรวจสอบความถูกต้องของ URL ก่อนการส่งข้อมูลหรือการใช้ในการเรียก API

Syntax
isUrl(value)

join() เป็น JavaScript standard array method (ES5+, ไม่ใช่ n8n-specific) แปลงทุกรายการในอาร์เรย์เป็นข้อความเดียวโดยคั่นด้วยตัวคั่นที่กำหนด คืนค่าเป็น string เสมอ ส่วนตัวผมชอบใช้คู่กับ map() และ filter() มากครับ เพราะสามารถ transform ข้อมูลก่อนรวมได้ มีประโยชน์ในการสร้าง CSV strings, รวมชื่อหลายคนเป็นรายการ, จัดรูปแบบแท็ก หรือแปลงอาร์เรย์เป็น formatted text เพื่อแสดงผลหรือส่งต่อ ที่เจ๋งคือรองรับตัวคั่นแบบกำหนดเอง (custom separators) และจัดการ null/undefined อัตโนมัติ

Syntax
array.join([separator])

keys ดึงรายชื่อคีย์ทั้งหมดจากอ็อบเจ็กต์ ส่งคืนเป็นอาร์เรย์ ฟังก์ชันนี้มีประโยชน์ในการสำรวจโครงสร้างข้อมูล วนลูปผ่านคีย์ หรือการแปลงข้อมูลจากอ็อบเจ็กต์

Syntax
keys(object)

last() ดึงสมาชิกตัวสุดท้ายจากอาร์เรย์ เป็น n8n built-in method ที่ช่วยให้เข้าถึงข้อมูลล่าสุดได้ง่าย เช่น บันทึกล่าสุดจาก database, ความคิดเห็นล่าสุด, หรือ order ล่าสุดที่ถูกประมวลผล โดยไม่ต้องคำนวณ index เอง

Syntax
array.last()

map() เป็น JavaScript standard array method (ES2021+, ไม่ใช่ n8n-specific) แปลงแต่ละรายการในอาร์เรย์โดยใช้ callback function คืนค่าอาร์เรย์ใหม่ที่มีความยาวเท่าเดิม แต่รายการถูก transform แล้ว มีประโยชน์ในการสกัด fields, คำนวณค่าใหม่ หรือแปลงรูปแบบข้อมูล

Syntax
array.map(callback)

max หาค่าที่มากที่สุดจากอาร์เรย์ของตัวเลข ฟังก์ชันนี้มีประโยชน์ในการวิเคราะห์ข้อมูล เช่นหาราคาสูงสุดของสินค้า คะแนนสูงสุด หรือปริมาณการขายสูงสุด

Syntax
max(array)

merge รวมอ็อบเจ็กต์หลาย ๆ ตัวเป็นอ็อบเจ็กต์เดียว ถ้าคีย์ซ้ำ ค่าท้ายสุดจะเป็นตัวที่นำไปใช้ ฟังก์ชันนี้มีประโยชน์ในการรวมข้อมูล สร้างการตั้งค่า หรือการรวมฟิลด์จากหลายแหล่ง

Syntax
merge(...objects)

minus() ลบระยะเวลาออกจาก DateTime object โดยรับ duration object ที่ระบุหน่วยเวลาที่ต้องการลบ (years, months, weeks, days, hours, minutes, seconds, milliseconds) สามารถรวมหลายหน่วยในครั้งเดียวได้ เช่น {days: 7, hours: 3} เหมาะสำหรับคำนวณวันที่ย้อนหลัง กำหนด deadline ย้อนหลัง คำนวณวันหมดอายุ สร้าง date range สำหรับ filter ข้อมูล หรือคำนวณช่วงเวลาในอดีตสำหรับ analytics

Syntax
{{ $json.dateTime.minus(duration) }}

pluck() ดึงค่าจากฟิลด์เดียวกันจากทุก object ในอาร์เรย์ เป็นวิธีที่รวดเร็วสำหรับการสกัดข้อมูลเดียว เช่นดึง email ทั้งหมด, ชื่อทั้งหมด, หรือ ID ทั้งหมดจากรายชื่อ

Syntax
array.pluck(propertyName)

plus() บวกระยะเวลาเข้ากับ DateTime object โดยรับ duration object หรือตัวเลข (milliseconds) เป็น argument ส่วนตัวผมชอบใช้แบบ duration object มากกว่า เพราะอ่านง่ายครับ เช่น {days: 7, hours: 2} สามารถบวกได้หลายหน่วยพร้อมกัน ที่เจ๋งคือ method นี้คำนวณวันที่อย่างถูกต้องแม้เจอ DST หรือปีอธิกสุรทิน return ค่าเป็น DateTime object ใหม่ที่สามารถ chain ต่อกับ method อื่นได้เลย เช่น .format() หรือ .diff()

Syntax
{{ $json.date.plus(duration) }}