نود Trigger Manually در n8n
نود Trigger Manually سادهترین راه برای اجرای دستی یک ورکفلو در n8n است. وقتی میخواهید یک اتوماسیون را تست کنید، خروجی نودها را مرحلهبهمرحله ببینید، یا بدون نیاز به وبهوک و زمانبندی، جریان را اجرا کنید، این نود بهترین نقطه شروع است.
معرفی نود در N8N
کارکرد نود چیست؟
Trigger Manually یک نود آغازگر (Trigger) است که فقط در حالت طراحی و تست (Manual/Editor Run) فعال میشود و با کلیک روی اجرای دستی، ورکفلو را شروع میکند. این نود معمولاً برای توسعه، دیباگ، و اعتبارسنجی منطق ورکفلو استفاده میشود.
دستهبندی نود
- Trigger (آغازگر)
کاربرد اصلی و اهمیت در ورکفلوها
- تست سریع ورکفلو بدون نیاز به ورودی خارجی (مثل Webhook) یا زمانبندی (Cron)
- دیباگ و مشاهده دادهها در هر مرحله
- توسعه تدریجی: ساختن جریان، بررسی خروجی، و سپس جایگزینی با تریگر واقعی
موارد استفاده
سناریوهای واقعی
- تست ارسال پیام: ابتدا با Trigger Manually پیام را در Slack/Telegram تست کنید، سپس تریگر را Webhook یا Schedule قرار دهید.
- اعتبارسنجی پردازش داده: تبدیل ساختار JSON با Function/Set و بررسی اینکه خروجی دقیقاً مطابق انتظار است.
- تست اتصال سرویسها: بررسی Credentials برای Google Sheets، Notion، Airtable، و…
- ساخت نمونه داده: وقتی ورودی واقعی ندارید، با نود Set داده نمونه بسازید و جریان را جلو ببرید.
ترکیب با نودهای دیگر برای ورکفلوهای عملی
- Trigger Manually → Set → HTTP Request: ساخت داده نمونه و ارسال به یک API برای تست.
- Trigger Manually → Read/Write Google Sheets: تست خواندن/نوشتن قبل از رفتن به محیط عملیاتی.
- Trigger Manually → IF → Slack: تست مسیرهای شرطی و اینکه پیام درست به کانال درست میرود.
- Trigger Manually → Function → Merge: تست منطق تولید چند شاخه داده و ادغام آنها.
پارامترها و تنظیمات
نود Trigger Manually عمداً بسیار ساده طراحی شده و معمولاً پارامترهای قابل تنظیم ندارد. اما دانستن رفتار آن در اجرا، مهمتر از داشتن فیلدهای متعدد است.
فهرست فیلدها و پارامترها
- Parameters: ندارد
نوع داده: ندارد
کاربرد: این نود فقط یک سیگنال شروع ایجاد میکند.
مثال عملی: برای تولید ورودی واقعی، معمولاً بلافاصله بعد از آن از نود Set استفاده میشود تا داده نمونه ایجاد شود.
نکات مهم هنگام پیکربندی
- برای محیط تولید مناسب نیست: این تریگر برای اجرای دستی در ادیتور است و جایگزین Webhook/Cron/Event-based Triggerها در اجرای واقعی نیست.
- برای تست مسیرهای مختلف: اگر ورودیهای متفاوت میخواهید، آنها را با Set یا Function تولید کنید تا هر بار اجرای دستی خروجی متفاوت بدهد.
- دیباگ مرحلهای: اجرای دستی اجازه میدهد خروجی هر نود را ببینید و خطا را دقیقتر پیدا کنید.
ورودیها و خروجیها
ورودی (Input)
Trigger Manually هیچ ورودی از نود قبلی دریافت نمیکند، چون آغازگر ورکفلو است.
خروجی (Output)
این نود معمولاً یک آیتم (Item) اولیه تولید میکند تا جریان آغاز شود. محتوای دقیق خروجی ممکن است بر اساس نسخه n8n متفاوت باشد، اما معمولاً شامل یک آبجکت خالی یا یک داده حداقلی برای شروع است.
نمونه ساختار داده خروجی
نمونه رایج (حداقلی) از خروجی:
{ "json": {}}روش پیشنهادی برای ساخت خروجی قابل استفاده: اضافه کردن نود Set بلافاصله بعد از Trigger Manually:
{ "json": { "email": "user@example.com", "fullName": "Ali Ahmadi", "source": "manual-test", "timestamp": "2026-01-07T10:00:00.000Z" }}نکات پیشرفته و ترفندها
ساخت سناریوی تست قابل تکرار با Set
- بعد از Trigger Manually یک Set بگذارید و فیلدهای ثابت بسازید تا هر بار تست، قابل تکرار و قابل مقایسه باشد.
- برای چند حالت تست، چند نود Set با مقادیر مختلف بسازید و با IF یا Switch مسیرها را جدا کنید.
تست دادههای چندآیتمی (Multiple Items)
- اگر میخواهید رفتار نودها روی چند آیتم را بسنجید (مثلاً ارسال چند درخواست یا ثبت چند ردیف)، بعد از Trigger Manually از Function استفاده کنید و آرایهای از آیتمها بسازید.
[ { "json": { "id": 1, "name": "A" } }, { "json": { "id": 2, "name": "B" } }, { "json": { "id": 3, "name": "C" } }]شبیهسازی ورودی وبهوک برای تست سریع
- اگر قرار است در نهایت ورودی از Webhook بیاید، در مرحله توسعه میتوانید ساختار payload وبهوک را در Set/Function بسازید و تمام منطق را تست کنید.
- این کار باعث میشود قبل از اتصال به سیستم واقعی، خطاهای مپینگ فیلدها و ساختار JSON را پیدا کنید.
بهینهسازی زمان دیباگ
- به جای اجرای کامل، روی نودهای میانی از قابلیت اجرای جزئی (Run from here) در ادیتور استفاده کنید تا فقط بخش موردنظر تست شود.
- در نودهای پرهزینه (مثل APIهای پولی)، از شرط IF برای جلوگیری از اجرای ناخواسته هنگام تست استفاده کنید.
محدودیتها و خطاها
محدودیتها
- عدم اجرای خودکار در تولید: Trigger Manually برای اجرای زمانبندیشده یا رویدادمحور طراحی نشده است.
- عدم دریافت ورودی واقعی: دادهای از بیرون سیستم دریافت نمیکند و برای ورودی واقعی باید از Webhook، Email Trigger، Cron و مشابه آن استفاده شود.
- وابسته به ادیتور: در بسیاری از سناریوها فقط در حالت تست در UI کاربرد دارد، نه در اجرای سرویسگونه.
خطاها و مشکلات رایج و راهحلها
- مشکل: ورکفلو در حالت فعال (Active) چیزی اجرا نمیکند
علت: Trigger Manually به صورت خودکار اجرا نمیشود.
راهحل: برای اجرای واقعی، Trigger را با Cron یا Webhook یا تریگر سرویس مربوطه جایگزین کنید.
- مشکل: نودهای بعدی خطای “No input data” میدهند
علت: خروجی Trigger Manually ممکن است خالی باشد و نود بعدی انتظار فیلدهای مشخص داشته باشد.
راهحل: بعد از Trigger Manually یک Set قرار دهید و فیلدهای لازم را بسازید، یا در Expressionها مقدار پیشفرض تعیین کنید.
- مشکل: تست باعث ارسال پیام/درخواست واقعی و ناخواسته میشود
علت: اجرای دستی هم دقیقاً همان نودهای ارسال را اجرا میکند.
راهحل: از محیط تست، توکن تست، یا شرط IF برای جلوگیری از ارسال واقعی استفاده کنید؛ همچنین میتوان مسیر ارسال را با یک فلگ مثل
isTest: trueکنترل کرد.
ایده ها
- ژنراتور داده تست: با Trigger Manually + Function، دادههای ساختگی تولید کنید و به دیتابیس/شیت اضافه کنید تا UI یا گزارشها تست شوند.
- تست سناریوی ثبتنام: payload ثبتنام را بسازید، اعتبارسنجی کنید، و سپس ایمیل خوشآمدگویی را در حالت تست ارسال کنید.
- دیباگ یکپارچهسازی چند سرویس: ساخت داده نمونه و ارسال به CRM، سپس ثبت نتیجه در Google Sheets.
- تست پردازش فایل: لینک یا محتوای نمونه فایل را در Set قرار دهید و زنجیره استخراج/تبدیل را مرحلهای بررسی کنید.
- ساخت “Runbook” عملیاتی: یک ورکفلو شامل چکهای مختلف (Ping API، بررسی اعتبار توکن، تست نوشتن در شیت) و اجرای دستی برای کنترل سلامت سرویسها.
