🔀
شرط
IF
ایجاد شرط و انتخاب مسیر اجرا بر اساس True/False
منطق و کنترل
مقدماتی
ویژه
۰بازدید
اشتراکگذاری:
مستندات رسمینمای کلی
نود IF به شما اجازه میدهد workflow را بر اساس شرایط به دو مسیر مختلف هدایت کنید: True (درست) یا False (نادرست).
قابلیتهای کلیدی:
- ایجاد شرطهای منطقی (مساوی، بزرگتر، کوچکتر، شامل، ...)
- چند شرط همزمان با AND/OR
- مقایسه اعداد، متن، تاریخ، Boolean
- دسترسی به دادههای نودهای قبلی
- پشتیبانی از Regex برای متن
- فیلتر کردن item های ورودی
کاربردها:
- فیلتر کردن دادهها
- بررسی وضعیت و تصمیمگیری
- مدیریت خطا (اگر خطا، پیام بفرست)
- مسیردهی بر اساس نوع داده
- اعمال منطق پیچیده
انواع شرط:
- Number (عدد): مساوی، بزرگتر، کوچکتر، بین دو عدد
- String (متن): مساوی، شامل، شروع میشود با، Regex
- Boolean: true یا false
- Date & Time: قبل از، بعد از، بین دو تاریخ
- Empty: خالی بودن یا نبودن
- Exists: وجود داشتن فیلد
کاربردهای متداول
1. فیلتر فروش بالای یک میلیون
فقط سفارشهای بالای 1 میلیون را پردازش کن:
code
IF: {{$json.amount}} > 1000000
→ True: ارسال اعلان به مدیر
→ False: ثبت در لاگ عادیWorkflow:
code
Webhook → IF (amount > 1M)
→ True → Telegram (اعلان مدیر)
→ False → Google Sheets (ثبت)2. بررسی وضعیت سفارش
اگر سفارش "پرداخت شده" باشد، ارسال کن:
code
IF: {{$json.status}} = "paid"
→ True: ارسال به انبار
→ False: ارسال یادآوری پرداخت3. فیلتر ایمیلهای مهم
فقط ایمیلهای با اولویت بالا:
code
IF: {{$json.priority}} = "HIGH" OR {{$json.from}} شامل "boss@"
→ True: اعلان فوری
→ False: ذخیره عادی4. بررسی خالی بودن فیلد
اگر شماره تلفن خالی است، از ایمیل استفاده کن:
code
IF: {{$json.phone}} isEmpty
→ True: ارسال با ایمیل
→ False: ارسال SMS5. مدیریت خطا
اگر API خطا داد، پیام بفرست:
code
HTTP Request → IF (status code = 200)
→ True: ادامه workflow
→ False → Telegram (اعلان خطا)6. فیلتر بر اساس زمان
فقط سفارشهای امروز:
code
IF: {{$json.date}} = today
→ True: پردازش
→ False: رد کن7. بررسی موجودی انبار
اگر موجودی کمتر از 10 شد، سفارش بده:
code
Database → IF (stock < 10)
→ True → HTTP Request (سفارش جدید)
→ False: هیچ کاری نکن8. چند شرط همزمان
فیلتر کاربران فعال در تهران:
code
IF:
- {{$json.isActive}} = true
- AND {{$json.city}} = "Tehran"
- AND {{$json.age}} > 18
→ True: ارسال پیشنهاد ویژهنکات حرفهای
💡 نکات حرفهای:
- 1انواع مقایسه رایج:
javascript
// عدد
{{$json.age}} > 18
{{$json.price}} <= 1000000
{{$json.quantity}} between [10, 100]
// متن
{{$json.status}} equals "active"
{{$json.email}} contains "@gmail"
{{$json.name}} startsWith "محمد"
{{$json.phone}} matches /^09\d{9}$/
// Boolean
{{$json.isActive}} = true
{{$json.isPaid}} = false
// خالی بودن
{{$json.phone}} isEmpty
{{$json.description}} isNotEmpty
// وجود داشتن
{{$json.address}} exists- 1ترکیب شرایط:
- AND: همه شرایط باید درست باشند
- OR: حداقل یک شرط درست باشد
- مثال: سن > 18 AND شهر = تهران
- 1استفاده از Expression:
javascript
// دسترسی به نود قبلی
{{$json.fieldName}}
// دسترسی به نود با نام مشخص
{{$('HTTP Request').item.json.status}}
// محاسبه
{{$json.price * 1.09}} // با مالیات
// تاریخ
{{$now.toISO()}} // تاریخ الان
{{$today.toISO()}} // امروز- 1فیلتر کردن آیتمها: IF به صورت پیشفرض همه itemها را بررسی میکند. اگر شرط درست باشد، به True میرود، وگرنه به False.
- 1استفاده از Switch: اگر بیش از 2 حالت دارید، از نود Switch استفاده کنید (بهتر از چند IF پشت هم).
- 1Default مقادیر خالی:
javascript
{{$json.phone ?? '09123456789'}} // اگر خالی بود، مقدار پیشفرض- 1Debug کردن: از نود Set قبل از IF برای دیدن مقادیر دقیق استفاده کنید.
- 1Case Sensitive: مقایسه متن حساس به حروف بزرگ/کوچک است. برای رفع این مشکل:
javascript
{{$json.status.toLowerCase()}} equals "active"- 1Multiple IF vs Switch:
- 2 حالت → IF
- 3+ حالت → Switch
- شرایط پیچیده → چند IF
- 1Empty vs Exists:
- isEmpty: فیلد خالی است ("" یا null)
- exists: فیلد اصلاً وجود ندارد
- 1Performance: IF خیلی سریع است، نگران تعداد زیاد شرایط نباشید.
- 1Test با مقادیر واقعی: حتماً با داده واقعی تست کنید، نه فقط Sample Data.
رفع مشکلات
خطاهای رایج
1. همه itemها به False میروند
علت: Expression اشتباه است یا فیلد وجود ندارد
راهحل
- فیلد را با دقت بررسی کنید:
{{$json.fieldName}} - از نود Set قبل از IF برای Debug استفاده کنید
- در Execution Details، داده ورودی IF را بررسی کنید
- مطمئن شوید نام فیلد درست است (حساس به حروف بزرگ/کوچک)
2. Expression کار نمیکند
علت: فرمت Expression اشتباه است
راهحل
- فرمت صحیح:
{{$json.field}}یا{{ $json.field }}(با فاصله) - برای دسترسی به نود خاص:
{{$('NodeName').item.json.field}} - از Expression Editor (Ctrl+Space) استفاده کنید
- نام نود را درست بنویسید
3. خطای "Cannot read property"
علت: فیلد در داده وجود ندارد
راهحل
- ابتدا بررسی کنید فیلد وجود دارد یا نه
- از شرط "Exists" استفاده کنید
- یا از Null Coalescing:
{{$json.field ?? 'default'}}
4. AND/OR کار نمیکند
علت: تنظیمات Combine نادرست است
راهحل
- برای AND: "ALL conditions must match"
- برای OR: "ANY condition matches"
- در UI، گزینه درست را انتخاب کنید
5. Date Comparison اشتباه است
علت: فرمت تاریخ متفاوت است
راهحل
- تاریخ را به فرمت ISO تبدیل کنید:
{{$now.toISO()}} - یا از Date & Time در نوع شرط استفاده کنید
- مثال:
{{$json.date > $now.toISO()}}
6. Regex کار نمیکند
علت: فرمت Regex اشتباه است
راهحل
- فرمت صحیح:
/pattern/flags - مثال:
/^09\d{9}$/برای شماره موبایل ایران - از سایت regex101.com برای تست استفاده کنید