🔀

شرط

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: ارسال SMS

5. مدیریت خطا

اگر 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. 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. 1ترکیب شرایط:
  • AND: همه شرایط باید درست باشند
  • OR: حداقل یک شرط درست باشد
  • مثال: سن > 18 AND شهر = تهران
  1. 1استفاده از Expression:
javascript
// دسترسی به نود قبلی
   {{$json.fieldName}}

   // دسترسی به نود با نام مشخص
   {{$('HTTP Request').item.json.status}}

   // محاسبه
   {{$json.price * 1.09}}  // با مالیات

   // تاریخ
   {{$now.toISO()}}  // تاریخ الان
   {{$today.toISO()}}  // امروز
  1. 1فیلتر کردن آیتم‌ها: IF به صورت پیش‌فرض همه itemها را بررسی می‌کند. اگر شرط درست باشد، به True می‌رود، وگرنه به False.
  1. 1استفاده از Switch: اگر بیش از 2 حالت دارید، از نود Switch استفاده کنید (بهتر از چند IF پشت هم).
  1. 1Default مقادیر خالی:
javascript
{{$json.phone ?? '09123456789'}}  // اگر خالی بود، مقدار پیش‌فرض
  1. 1Debug کردن: از نود Set قبل از IF برای دیدن مقادیر دقیق استفاده کنید.
  1. 1Case Sensitive: مقایسه متن حساس به حروف بزرگ/کوچک است. برای رفع این مشکل:
javascript
{{$json.status.toLowerCase()}} equals "active"
  1. 1Multiple IF vs Switch:
  • 2 حالت → IF
  • 3+ حالت → Switch
  • شرایط پیچیده → چند IF
  1. 1Empty vs Exists:
  • isEmpty: فیلد خالی است ("" یا null)
  • exists: فیلد اصلاً وجود ندارد
  1. 1Performance: IF خیلی سریع است، نگران تعداد زیاد شرایط نباشید.
  1. 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 برای تست استفاده کنید

آیا این مستندات مفید بود؟