ویرایش فیلدها
Edit Fields (Set)
ویرایش فیلدهای داده: اضافه، حذف، تغییر نام و تبدیل
نمای کلی
نود Edit Fields چیست؟
نود Edit Fields (جایگزین Set node قدیمی) ابزار اصلی تغییر ساختار داده در n8n است.
دو حالت اصلی:
- 1Manual Mapping: تعریف دستی فیلدها و مقادیر
- 2Using Fields from Input: انتخاب فیلدها از ورودی
قابلیتهای کلیدی:
- افزودن فیلد جدید: اضافه کردن فیلد با مقدار ثابت یا Expression
- حذف فیلد: حذف فیلدهای غیرضروری
- تغییر نام فیلد: Rename کردن کلیدها
- تغییر نوع: تبدیل String به Number و بالعکس
- فقط فیلدهای مشخص: حذف همه فیلدها به جز موارد انتخابی
- Expression: محاسبات و تبدیلات روی داده
چرا Edit Fields مهم است؟
- هر Workflow تقریباً به Edit Fields نیاز دارد
- آمادهسازی داده برای API (فقط فیلدهای لازم)
- تبدیل ساختار داده بین سیستمهای مختلف
- اضافه کردن فیلدهای محاسباتی
- پاکسازی و نرمالسازی داده
احراز هویت
بدون نیاز به احراز هویت - نود Edit Fields یک نود داخلی n8n است.
عملیاتهای موجود
تنظیم دستی فیلدها
تعریف دستی فیلدها با نام و مقدار. مقدار میتواند ثابت، Expression یا ترکیبی باشد.
انتخاب از ورودی
انتخاب فیلدهای خاص از ورودی. فیلدهای انتخابنشده حذف میشوند.
حذف فیلدها
حذف فیلدهای مشخص از داده. بقیه فیلدها حفظ میشوند.
تغییر نام فیلدها
تغییر نام کلیدهای JSON. مناسب برای تطبیق API schemas مختلف.
تبدیل نوع داده
تبدیل نوع فیلد: String → Number، Number → String، String → Boolean و غیره.
ادغام فیلدها
ترکیب چندین فیلد در یک فیلد. مثال: firstName + lastName = fullName.
فیلد محاسباتی
ساخت فیلد با Expression. محاسبات ریاضی، تبدیل تاریخ و عملیات رشتهای.
Flatten/Unflatten
مسطحسازی اشیاء تودرتو یا ساخت ساختار تودرتو از فیلدهای مسطح.
کاربردهای متداول
موارد استفاده رایج
۱. آمادهسازی داده API
دریافت داده از یک API > Edit Fields (فقط فیلدهای لازم) > ارسال به API دیگر.
۲. تبدیل ساختار داده
API خروجی: {first_name, last_name} > Edit Fields > {fullName, email} برای CRM.
۳. افزودن Timestamp
هر آیتم > Edit Fields: createdAt = now(), processedBy = "automation" > ذخیره.
۴. پاکسازی داده
داده خام > حذف فیلدهای خالی/null > حذف فیلدهای اضافی > داده تمیز.
۵. محاسبه قیمت
محصولات > Edit Fields: totalPrice = price * quantity, tax = totalPrice * 0.09 > فاکتور.
۶. نرمالسازی
دادههای مختلف > Edit Fields: email = lowercase, phone = format, name = trim > ذخیره یکسان.
۷. Mapping بین سیستمها
Shopify order > Edit Fields: rename fields > HubSpot deal format.
۸. فیلتر فیلدهای حساس
داده کامل > Edit Fields: حذف password, ssn, creditCard > لاگ امن.
۹. ساخت URL
پارامترها > Edit Fields: url = baseUrl + "/api/" + endpoint + "?key=" + apiKey.
۱۰. تبدیل Boolean
رشته "true"/"false" > Edit Fields: Convert to Boolean > استفاده در IF نود.
۱۱. Flatten JSON تودرتو
user.address.city > Edit Fields: Flatten > user_address_city (برای CSV/Spreadsheet).
۱۲. ساخت Payload
دادههای مختلف > Edit Fields: ترکیب در ساختار JSON مورد نیاز API.
نکات حرفهای
نکات و ترفندها
Expression مفید
- ترکیب رشته: \
\${firstName} \${lastName}\ - عدد: Number(stringValue) یا parseInt(value)
- تاریخ: new Date().toISOString()
- شرطی: condition ? "yes" : "no"
- Lowercase: value.toLowerCase()
- Trim: value.trim()
- Split: value.split(",")
Keep vs Remove
- Keep Only Set Fields: فقط فیلدهای تعریفشده (پاکسازی)
- Include Other Fields: فیلدهای تعریفشده + بقیه (اضافه کردن)
نکات Performance
- فیلدهای غیرضروری را زودتر حذف کنید
- Binary data بزرگ را قبل از Edit Fields فیلتر کنید
- از Expression ساده استفاده کنید
الگوی Data Mapping
- 1دریافت داده از Source
- 2Edit Fields: تغییر نام + تبدیل نوع
- 3IF: فیلتر داده معتبر
- 4ارسال به Destination
Dot Notation
فیلدهای تودرتو:
- user.name → نام کاربر
- address.city → شهر
- items[0].price → قیمت آیتم اول
- metadata.tags → برچسبها
ترکیب با سایر نودها
- IF: شرط بر اساس فیلدها
- Switch: مسیریابی بر اساس مقدار فیلد
- Merge: ترکیب فیلدها از دو منبع
- Code: تغییرات پیچیده
- Aggregate: جمعبندی فیلدها
نکات Edit Fields v2
- از Drag & Drop برای mapping فیلدها استفاده کنید
- Expression Editor: تست Expression قبل از اجرا
- Auto-mapping: فیلدهای ورودی خودکار پیشنهاد میشوند
- Type safety: نوع داده بررسی میشود
جایگزین Set Node
Edit Fields جایگزین Set node قدیمی شده:
- UI بهتر و کاربردیتر
- Drag & Drop mapping
- Type conversion داخلی
- بهتر برای Workflowهای پیچیده
رفع مشکلات
عیبیابی
۱. فیلدها ناپدید شدند
مشکل: فیلدهای ورودی در خروجی نیستند راهحل: "Include Other Input Fields" را فعال کنید. در حالت Manual Mapping فقط فیلدهای تعریفشده خروجی داده میشوند.
۲. Expression کار نمیکند
مشکل: Expression خطا میدهد یا undefined برمیگرداند راهحل: بررسی کنید فیلد ورودی وجود دارد. از Optional Chaining استفاده کنید. Expression را در Expression Editor تست کنید.
۳. نوع داده اشتباه
مشکل: عدد به جای رشته یا بالعکس راهحل: از Type Conversion استفاده کنید. Number("123") یا String(456). JSON.parse() برای JSON string.
۴. فیلد تودرتو دسترسی ندارد
مشکل: نمیتوان به user.address.city دسترسی داشت راهحل: از dot notation در Expression استفاده کنید. یا ابتدا Flatten کنید.
۵. نام فیلد با فاصله
مشکل: فیلدهایی مثل "First Name" مشکل دارند راهحل: از bracket notation استفاده کنید. در Rename فاصله حذف کنید.
۶. داده null یا undefined
مشکل: فیلد مقدار ندارد راهحل: از default value استفاده کنید. شرط null check بنویسید.
۷. تعداد آیتمها تغییر کرد
مشکل: آیتمها بعد از Edit Fields کم یا زیاد شدند راهحل: Edit Fields تعداد آیتمها را تغییر نمیدهد. مشکل احتمالاً در نود قبلی است.
۸. ترتیب فیلدها تغییر کرد
مشکل: ترتیب فیلدها در JSON خروجی فرق دارد راهحل: ترتیب کلیدهای JSON اهمیتی ندارد. اگر ترتیب مهم است، از Array استفاده کنید.
