نود Tools در N8N
نود Tools در n8n مثل یک «جعبهابزار چندکاره» عمل میکند: مجموعهای از ابزارهای آماده برای کارهای رایج مثل تبدیل و پاکسازی داده، ساخت یا خواندن JSON، کار با متن، تاریخ، URL و کارهای کوچک اما پرتکرار. وقتی وسط یک ورکفلو نیاز دارید سریع داده را آماده کنید یا یک مقدار را بسازید/تغییر دهید، Tools معمولاً سریعترین و تمیزترین انتخاب است.
معرفی نود در N8N
نود Tools برای انجام عملیاتهای کمکی (Utility) روی دادهها استفاده میشود؛ یعنی بدون اتصال مستقیم به یک سرویس خارجی، داده را آماده میکند تا نودهای بعدی بتوانند درست و مطمئن کار کنند. این نود برای مبتدیها بسیار کاربردی است چون بسیاری از نیازها را بدون نوشتن کد پوشش میدهد.
- کارکرد کلی: تبدیل، نرمالسازی و تولید دادههای کمکی (مثل متن، JSON، تاریخ، URL، آیتمهای جدید)
- دستهبندی نود: Function / Action (نود کمکی داخلی، بدون نیاز به Credential)
- اهمیت در ورکفلوها: کاهش نیاز به Code Node، افزایش خوانایی ورکفلو، جلوگیری از خطاهای ناشی از فرمت اشتباه داده
موارد استفاده
۱) آمادهسازی داده قبل از ارسال به API
فرض کنید از یک فرم یا Google Sheets داده میگیرید و باید قبل از ارسال به HTTP Request، فیلدها را تمیز کنید (Trim)، نوع داده را اصلاح کنید، یا JSON معتبر بسازید.
- ترکیب پیشنهادی: Trigger (Webhook) → Tools (پاکسازی/ساخت JSON) → HTTP Request
۲) ساخت پیام قابلخواندن برای ارسال به تلگرام/ایمیل
وقتی داده خام است (مثلاً چند فیلد پراکنده)، Tools میتواند متن نهایی را بسازد تا در Telegram یا Email Node ارسال شود.
- ترکیب پیشنهادی: Trigger → Tools (ساخت متن) → Telegram / Email
۳) نرمالسازی تاریخ و زمان
اگر تاریخ در ورودی فرمتهای مختلف دارد، Tools میتواند آن را به یک استاندارد (مثلاً ISO ۸۶۰۱) تبدیل کند تا در دیتابیس یا CRM بدون خطا ذخیره شود.
- ترکیب پیشنهادی: Trigger → Tools (تبدیل تاریخ) → PostgreSQL / Notion / HubSpot
۴) ساخت URL و پارامترهای Query
برای درخواستهای GET، ساختن query string با Encoding صحیح بسیار مهم است. Tools کمک میکند URL نهایی را درست بسازید.
۵) تبدیل ساختار داده برای گزارشگیری
گاهی لازم است خروجی چند نود را به یک ساختار جمعوجور تبدیل کنید (مثلاً برای تولید گزارش روزانه). Tools میتواند فیلدهای لازم را انتخاب و قالب را آماده کند.
پارامترها و تنظیمات
نود Tools معمولاً به شکل «ابزارهای متعدد زیر یک نود» ارائه میشود و بسته به ابزار انتخابی، فیلدها تغییر میکنند. در ادامه، رایجترین تنظیمات و الگوهای عملی آورده شدهاند. ممکن است نام دقیق برخی گزینهها در نسخههای مختلف n8n کمی متفاوت باشد، اما منطق و نوع ورودی/خروجی یکسان است.
پارامتر اصلی: Tool / Operation (انتخاب ابزار)
- نام پارامتر: Tool یا Operation
- نوع داده: Select (انتخابی)
- کاربرد: مشخص میکند کدام ابزار روی داده اجرا شود (مثل Text, JSON, Date/Time, URL و…)
- مثال عملی: انتخاب ابزار Text برای Trim کردن فیلد name قبل از ذخیره در CRM
ابزارهای متداول و فیلدهای رایج
۱) Text (ابزارهای متنی)
- نام پارامتر: Input Text
- نوع داده: String
- کاربرد: متنی که باید روی آن عملیات انجام شود
- مثال: {{$json.name}}
- نام پارامتر: Action (مثل Trim / Lowercase / Uppercase / Replace / Split / Join)
- نوع داده: Select
- کاربرد: تعیین نوع تغییر متن
- مثال: Replace برای تبدیل «-» به «_» در slug
- نام پارامتر: Search / Replace (در عملیات Replace)
- نوع داده: String
- کاربرد: مقدار مورد جستجو و جایگزینی
- مثال: Search: ” ” و Replace: “-” برای ساخت slug
نکته مهم: در ساخت پیام نهایی، از Expressionها مثل {{$json.field}} استفاده کنید تا متن پویا تولید شود.
۲) JSON (ساخت/خواندن/اعتبارسنجی JSON)
- نام پارامتر: JSON String
- نوع داده: String
- کاربرد: متنی که باید به JSON تبدیل شود (Parse) یا اعتبارسنجی شود
- مثال: {“email”:”test@example.com”,”tags”:[“lead”,”vip”]}
- نام پارامتر: Mode (Parse / Stringify / Validate)
- نوع داده: Select
- کاربرد: تبدیل رشته به آبجکت JSON یا برعکس
- مثال: Parse برای تبدیل خروجی یک API که JSON را به شکل رشته داده است
نکته مهم: اگر JSON ورودی کاراکترهای کنترلی/کوتیشن نامعتبر داشته باشد، Parse خطا میدهد. در این حالت قبل از Parse از Text Replace برای اصلاح استفاده کنید.
۳) Date/Time (کار با تاریخ و زمان)
- نام پارامتر: Input Date
- نوع داده: String یا Date
- کاربرد: تاریخ ورودی برای تبدیل یا فرمتدهی
- مثال: {{$json.created_at}}
- نام پارامتر: Input Format (اختیاری)
- نوع داده: String
- کاربرد: فرمت تاریخ ورودی اگر استاندارد نیست
- مثال: YYYY/MM/DD HH:mm
- نام پارامتر: Output Format
- نوع داده: String
- کاربرد: فرمت خروجی تاریخ
- مثال: YYYY-MM-DDTHH:mm:ssZ (فرمت ISO)
- نام پارامتر: Timezone
- نوع داده: String
- کاربرد: جلوگیری از اختلاف ساعت در ذخیره یا گزارش
- مثال: Asia/Tehran
نکته مهم: اگر ورکفلو بین سیستمهای مختلف (CRM/DB) جابهجا میشود، بهتر است خروجی تاریخ را همیشه ISO و با timezone مشخص تولید کنید.
۴) URL (ساخت و Encoding)
- نام پارامتر: Base URL
- نوع داده: String
- کاربرد: آدرس پایه برای ساخت URL نهایی
- مثال: https://api.example.com/search
- نام پارامتر: Query Parameters
- نوع داده: Key-Value
- کاربرد: ساخت query string با encoding صحیح
- مثال: q={{$json.keyword}} و page=۱
نکته مهم: برای پارامترهایی که فاصله یا کاراکتر فارسی دارند، Encoding صحیح ضروری است؛ این کار را به URL tool بسپارید تا در HTTP Request به خطا نخورید.
نکات مهم هنگام پیکربندی
- از Expressionها درست استفاده کنید: در اکثر فیلدها میتوانید مقدار پویا بگذارید، مثل {{$json.email}}.
- روی یک آیتم یا چند آیتم: اگر ورودی شما چند آیتم دارد، Tools معمولاً روی هر آیتم جداگانه اجرا میشود. برای تجمیع چند آیتم در یک خروجی، معمولاً باید از Merge/Item Lists/Code کمک بگیرید.
- فرمتها را استاندارد کنید: خصوصاً تاریخ، عدد و JSON قبل از ذخیره در DB یا ارسال به سرویسها استاندارد شود.
ورودیها و خروجیها
ورودی (Input)
ورودی Tools مثل اکثر نودهای n8n، مجموعهای از آیتمها (Items) است. هر آیتم یک آبجکت JSON دارد و Tools روی فیلدهای همان آیتم کار میکند.
{ "items": [ { "json": { "name": " Ali Reza ", "created_at": "2026/02/03 14:20", "keyword": "گوشی سامسونگ" } } ]}
خروجی (Output)
خروجی معمولاً همان تعداد آیتم را نگه میدارد، اما با فیلدهای تغییر یافته یا فیلد جدید (بسته به ابزار انتخابی). مثال زیر فرض میکند با Text ابزار Trim و با Date/Time تبدیل فرمت انجام دادهاید:
{ "items": [ { "json": { "name": "Ali Reza", "created_at": "2026-02-03T14:20:00+03:30", "keyword": "گوشی سامسونگ" } } ]}
نمونه خروجی در ساخت URL
{ "items": [ { "json": { "url": "https://api.example.com/search?q=%DA%AF%D9%88%D8%B4%DB%8C%20%D8%B3%D8%A7%D9%85%D8%B3%D9%88%D9%86%DA%AF&page=1" } } ]}
نکات پیشرفته و ترفندها
- استانداردسازی قبل از ادغام: اگر چند شاخه از ورکفلو دارید و بعداً با Merge آنها را یکی میکنید، بهتر است در هر شاخه با Tools دادهها را همفرمت کنید تا بعداً شرطها و مپکردن فیلدها ساده شود.
- کاهش نیاز به Code Node: برای کارهای ساده مثل Trim/Replace/Case conversion یا ساخت query string، Tools خواناتر و نگهداریپذیرتر از کدنویسی است.
- ساخت خروجیهای قابل استفاده مجدد: یک فیلد استاندارد مثل normalizedEmail یا isoDate بسازید و از همان در چند نود بعدی استفاده کنید تا Expressionها تکراری نشوند.
- کنترل کیفیت داده: قبل از ارسال به سرویسهای حساس (مثل CRM یا سیستم مالی)، با ابزارهای JSON/Text داده را اعتبارسنجی و پاکسازی کنید تا نرخ خطا کم شود.
محدودیتها و خطاها
محدودیتها
- ابزارهای عمومی، نه همهکاره: Tools برای کارهای رایج عالی است، اما برای تبدیلهای پیچیده یا منطق شرطی چندمرحلهای معمولاً Code Node یا مجموعهای از نودها نیاز است.
- وابستگی به ساختار آیتم: اگر ورودی شما فیلد مورد نظر را نداشته باشد یا null باشد، برخی عملیاتها ممکن است خروجی غیرمنتظره یا خطا بدهند.
خطاهای رایج و راهحلها
- خطای Parse JSON: معمولاً به خاطر کوتیشن نامعتبر، کاما اضافه، یا کاراکترهای کنترلی است. راهحل: ابتدا با Text Replace اصلاح کنید یا مطمئن شوید رشته JSON واقعاً معتبر است.
- تاریخ نامعتبر یا فرمت اشتباه: اگر Input Format درست تعیین نشود، تبدیل تاریخ خطا میدهد یا تاریخ اشتباه تولید میکند. راهحل: فرمت ورودی را دقیق مشخص کنید و timezone را ثابت نگه دارید.
- خروجی URL خراب یا ناقص: اگر پارامترها دستی کنار هم چسبانده شوند، encoding بههم میریزد. راهحل: ساخت query string را با URL tool انجام دهید.
- کاراکترهای اضافه در متن (فاصله، خط جدید): باعث خطا در API یا نامعتبر شدن شناسهها میشود. راهحل: قبل از مصرف در نودهای بعدی، از Trim و Replace استفاده کنید.
ایده ها
- ساخت slug استاندارد برای عنوان محصولات و ارسال به WooCommerce/Shopify (Text: lowercase + replace spaces)
- نرمالسازی تاریخ ثبت سفارش از چند منبع مختلف و ذخیره یکسان در PostgreSQL (Date/Time: unified output)
- تبدیل رشته JSON برگشتی از یک سیستم قدیمی به آبجکت قابل استفاده و سپس فیلتر کردن/ارسال به CRM (JSON: parse)
- ساخت لینک جستجوی پویا برای گزارش روزانه و ارسال در Slack/Telegram (URL: build + encode)
- پاکسازی شماره تماس/ایمیل قبل از بررسی تکراری بودن و ثبت در لیست مخاطبین (Text: trim/replace)
