بیشتر آموزش‌های n8n روی ساخت یک ورک‌فلوی سه‌نودی متوقف می‌شوند. در محیط واقعی اما صف اجراهای ناموفق، دیتابیس پرشده از داده‌ی اجرا (Execution Data) و ترافیک سنگین Webhook انتظارتان را می‌نشیند؛ سه مشکلی که هیچ ویدیوی مقدماتی به آن‌ها نمی‌پردازد. این راهنما دقیقاً از همان نقطه شروع می‌کند: نصب روی سرور شخصی تا مدیریت خطا در production.

n8n چیست و چرا معماری آن با Zapier متفاوت است؟#

آموزش n8n از یک پرسش معماری شروع می‌شود: چرا این ابزار با Zapier متفاوت است؟ n8n یک پلتفرم اتوماسیون گردش کار (Workflow Automation Platform) مبتنی بر نود است که برخلاف Zapier از مدل push-based استفاده می‌کند؛ یعنی رویدادها را لحظه‌ای از طریق Webhook دریافت و پردازش می‌کند، نه با پرسش‌وپاسخ دوره‌ای.

معماری push-based در مقابل pull-based#

مدل پیش‌فرض Zapier و Make بر polling استوار است، هرچند webhook هم دارند: هر چند دقیقه یک‌بار API سرویس مقصد را چک می‌کنند. n8n اما با نود Webhook Trigger آدرس URL منحصر‌به‌فردی تولید می‌کند که سرویس خارجی — مثل Stripe یا GitHub — مستقیماً رویداد را به آن ارسال می‌کند.

نتیجه: تأخیر (Latency) پایین‌تر، مصرف API کمتر و هزینه‌ی عملیاتی محسوس‌تر در حجم بالا. اگر سناریوی شما رویداد-محور است — پرداخت، کامیت Git، پیام تلگرام — n8n با Webhook برتری دارد. اگر سرویس مقصد اصلاً Webhook پشتیبانی نمی‌کند، polling ابزارهای دیگر تنها گزینه است.

نود چیست و چگونه اتصال می‌یابد؟#

نود (Node) واحد پایه‌ی ساخت ورک‌فلو در n8n است. هر نود یک وظیفه دارد: دریافت داده، تبدیل فرمت، شرط‌گذاری یا ارسال خروجی. نودها روی بوم بصری با خط‌های جهت‌دار به هم متصل می‌شوند و هر خط جریان داده (Data Flow) را نشان می‌دهد. در رابط کاربری، نودها با آیکون و نام سرویس مشخص‌اند: Slack، OpenAI، HTTP Request و غیره.

درک این تفاوت معماری، تصمیم‌گیری درباره‌ی انتخاب ابزار را از حدس‌وگمان به تحلیل فنی تبدیل می‌کند — و این دقیقاً همان چیزی است که در گفتگوهای اعضای کامیونیتی بارها تکرار شده: افراد پس از فهمیدن push-based بودن n8n، دیگر Zapier را برای سناریوهای رویداد-محور انتخاب نمی‌کنند.

نصب n8n با Docker یا استفاده از n8n Cloud؟ کدام برای شما مناسب است؟#

نصب n8n با Docker یا استفاده از n8n Cloud، دو مسیر متفاوت برای رسیدن به یک مقصد‌اند. اگر به کنترل کامل روی داده و زیرساخت نیاز دارید، self-hosting با Docker حداقل 30 دقیقه زمان می‌برد اما تمام اختیارات را در دست شما می‌گذارد. n8n Cloud در مقابل، مدیریت زیرساخت، بکاپ و آپدیت را بر عهده می‌گیرد.

گام‌های نصب سریع با Docker Compose#

حداقل مشخصات سرور برای نصب پایدار n8n، 1 گیگابایت RAM و 1 هسته CPU است. روی سرورهای 512 مگابایتی، خطای Out of Memory (OOM) در حین اجرای ورک‌فلوهای سنگین رخ می‌دهد.

  1. نصب Docker و Docker Compose روی سرور لینوکسی (Ubuntu 22.04 یا Debian 12)
  2. ساخت فایل docker-compose.yml با سرویس n8n و یک پستگرس (PostgreSQL) برای ذخیره‌ی داده‌ها
  3. تنظیم متغیرهای محیطی: N8N_ENCRYPTION_KEY، DB_TYPE=postgresdb و آدرس دیتابیس
  4. اجرای docker compose up -d و بازکردن پورت 5678
  5. پیکربندی reverse proxy با Nginx و گواهی SSL برای دسترسی HTTPS

هزینه‌های پنهان self-hosting#

نصب اولیه که تمام می‌شود، کار واقعی شروع می‌گردد. Execution Data در دیتابیس SQLite یا PostgreSQL انباشته می‌شود و بدون پاک‌سازی دوره‌ای، سرور را از کار می‌اندازد. ارتقای نسخه‌ی n8n هم نیاز به تست ورک‌فلوهای فعال دارد، چون هر چند نسخه schema دیتابیس تغییر می‌کند. بکاپ‌گیری از دیتابیس و فایل‌های config به مسئولیت شما اضافه می‌شود.

مقایسه‌ی زمان راه‌اندازی: n8n Cloud در چند دقیقه آماده است. یک محیط self-hosted production-ready — با reverse proxy، بکاپ خودکار، alerting و حالت صف (Queue Mode) — معمولاً یک روز کاری کامل زمان می‌برد. اگر تیم فنی ندارید، این یک روز را به‌عنوان هزینه‌ی پنهان در بودجه‌تان بگنجانید.

ساخت اولین workflow: اتصال به API و استفاده از نود Code#

ساخت اولین workflow در n8n یعنی اتصال به یک API خارجی با نود HTTP Request و پردازش داده‌های خام JSON با نود Code. اما نکته‌ای که کمتر گفته می‌شود: نود Code برای منطق‌های ساده، انتخاب اشتباهی است.

یک ورک‌فلوی مشخص با ترتیب نودها#

سناریو: دریافت داده از API آب‌وهوا، فیلتر شهرهای بالای 30 درجه و ارسال هشدار به Slack.

  1. Webhook Trigger: فعال‌سازی با متد POST. مسیر: /weather-check
  2. HTTP Request: فراخوانی API متئو با پارامتر city از بدنه‌ی درخواست ورودی
  3. Code (JSON.parse): تبدیل پاسخ API به ساختار قابل استفاده. اگر پاسخ XML باشد، تبدیل به JSON اینجا انجام می‌شود
  4. IF: شرط temperature > 30 — شاخه‌ی true به نود بعدی می‌رود
  5. Slack: ارسال پیام هشدار با نام شهر و دما

چرا IF و Switch به جای نود Code؟#

نود Code با JavaScript یا Python انعطاف بالایی دارد اما نگهداری آن در محیط تیمی دشوار است. اگر منطق شما صرفاً یک شرط یا چند مسیر است، نودهای IF و Switch همان کار را بصری و قابل‌فهم برای هر کسی انجام می‌دهند. نود Code را برای تبدیل فرمت، محاسبات ریاضی پیچیده یا فراخوانی توابع کتابخانه‌ای نگه دارید — نه برای یک if-else ساده.

چطور ایجنت هوش مصنوعی (AI Agent) با n8n و LangChain بسازیم؟#

ایجنت هوش مصنوعی (AI Agent) در n8n با استفاده از نودهای LangChain و اتصال به مدل‌های زبانی مانند OpenAI یا Anthropic ساخته می‌شود. ایجنت ابزارها را بر اساس prompt انتخاب و فراخوانی می‌کند و این بخش مرز میان اتوماسیون ساده و ایجنت‌های خودمختار را تعریف می‌کند.

هسته‌ی درخشان هوش مصنوعی متصل به بلوک‌های منطقی که ساخت ایجنت را نشان می‌دهد.
نقش گره‌های زنجیره‌ای در ایجاد تفکر منطقی برای ایجنت‌ها.

تنظیم نود Chat Model#

نود AI Agent در n8n یک مدل زبانی (Large Language Model) را به‌عنوان مغز تصمیم‌گیری تعریف می‌کند. در نود Chat Model، API Key سرویس انتخابی — OpenAI، Anthropic یا حتی مدل محلی Ollama — وارد می‌شود. مدل، ورودی کاربر را تحلیل می‌کند و تصمیم می‌گیرد کدام ابزار را فراخوانی کند.

ساخت ابزار (Tool) با نودهای داخلی#

هر نود n8n می‌تواند به‌عنوان ابزار در اختیار ایجنت قرار بگیرد. نود HTTP Request برای جست‌وجوی وب، نود Google Sheets برای خواندن داده، یا نود Code برای محاسبات سفارشی. در تنظیمات AI Agent، این نودها را به‌عنوان Tool تعریف می‌کنید و ایجنت بر اساس prompt انتخاب می‌کند کدام را فراخوانی کند.

محدودیت‌ها: چرا n8n جایگزین LangGraph نیست#

نکته‌ای که در کمتر منبعی گفته می‌شود: n8n برای multi-agent orchestration پیچیده — ایجنت‌هایی که بین خودشان پیام رد و بدل می‌کنند، حافظه‌ی مشترک دارند و با state machine کار می‌کنند — طراحی نشده. LangChain در n8n به‌عنوان نود اجرا می‌شود، نه به‌عنوان framework مستقل. اگر سناریوی شما ایجنت‌های هم‌زمان با تعامل پیچیده است، LangGraph یا CrewAI ابزار مناسب‌تری‌اند و n8n فقط لایه‌ی اتوماسیون پیرامون آن‌هاست.

دقیق‌تر بگویم: n8n برای ایجنت‌های تک‌نفره‌ای که یک ابزار صدا می‌زنند عالی است، اما به‌محض اینکه نیاز به گفتگوی بین‌ایجنتی یا حافظه‌ی بلندمدت ساختاریافته پیدا کنید، از توانش خارج می‌شوید.

مدیریت خطا و retry در workflowهای n8n#

مدیریت خطا در workflowهای n8n بدون تنظیم Error Trigger و retry logic یعنی یک خطای کوچک در API کل فرآیند را متوقف می‌کند. در production هیچ ورک‌فلویی بدون استراتژی خطا نباید فعال بماند — این نه توصیه، بلکه شرط ورود به محیط عملیاتی است.

نود Error Trigger#

نود Error Trigger یک ورک‌فلوی مستقل است که فقط وقتی اجرا می‌شود که ورک‌فلوی دیگری خطا دهد. در تنظیمات آن مشخص می‌کنید کدام ورک‌فلوها زیر نظر هستند. خروجی Error Trigger شامل نام ورک‌فلو، پیام خطا، داده‌ی ورودی نود خطا‌دهنده و timestamp است. این داده را به Slack، ایمیل یا PagerDuty بفرستید.

Retry و Backoff#

در تنظیمات هر نود (Node Settings) گزینه‌ی Retry On Fail وجود دارد. تعداد تلاش مجدد و فاصله‌ی بین آن‌ها قابل تنظیم است. برای APIهایی که rate limit دارند، بک‌آف نمایی (Exponential Backoff) — فاصله‌ی رو به رشد بین تلاش‌ها — ضروری است. مقدار پیش‌فرض n8n 3 تلاش با فاصله‌ی ثابت است؛ برای سناریوهای حساس این را دستی تغییر دهید.

الگوی ورک‌فلوی فرعی (Sub-workflow) به‌عنوان تابع#

وقتی مدیریت خطا پیچیده می‌شود — مثلاً چند مرحله‌ی تکراری با شرایط متفاوت — sub-workflow الگوی مناسبی است. ورک‌فلوی اصلی با نود Execute Workflow، یک ورک‌فلوی فرعی را صدا می‌زند. اگر فرعی خطا داد، اصلی می‌تواند fallback داشته باشد. این الگو ورک‌فلوها را ماژولار و قابل‌تست می‌کند.

مقایسه هزینه و محدودیت‌های n8n با Zapier و Make#

مقایسه‌ی n8n با Zapier و Make بدون درک مدل تجاری هرکدام ناقص است. n8n Cloud بر اساس تعداد اجراها (Executions) قیمت‌گذاری می‌شود، اما نسخه self-hosted با رعایت مجوز fair-code رایگان است. Zapier بر اساس Task و Make بر اساس Operation محاسبه می‌کند — سه مدل هزینه‌ای که هرکدام در حجم‌های مختلف برنده‌اند.

معیارn8nZapierMakePower Automate
مدل معماریpush-based (Webhook)pull-based (Polling)ترکیبیpull-based
قیمت‌گذاریاجرای ماهانهTask ماهانهOperation ماهانهUser ماهانه
Self-hostدارد (fair-code)نداردنداردندارد
Code nodeJavaScript و PythonPython و JavaScript (محدود)JavaScriptمحدود
AI AgentLangChain داخلیAI Actionsادغام با سرویس‌های AICopilot
مناسب برایتوسعه‌دهنده و تیم فنیسازمان‌های غیرفنیفریلنسر و تیم کوچکاکوسیستم Microsoft

مجوز fair-code چه می‌گوید؟#

n8n متن‌باز (Open-source) نیست؛ مجوز fair-code دارد. یعنی کد را می‌بینید، تغییر می‌دهید و self-host می‌کنید. اما نمی‌توانید n8n را به‌عنوان سرویس به دیگران بفروشید یا wrapper تجاری روی آن بسازید. استفاده‌ی داخلی سازمانی و ساخت اتوماسیون برای خودتان مجاز است.

زمان‌هایی که n8n انتخاب اشتباهی است#

اگر فرآیند شما به transactional integrity نیاز دارد — مثلاً پردازش پرداخت مالی که نباید تکرار یا حذف شود — n8n ابزار مناسبی نیست. این ابزار گارانتی روی عدم تکرار اجرا ندارد؛ اگر سرور وسط اجرا ریست شود، ممکن است بخشی از ورک‌فلو دوباره اجرا شود. برای این سناریوها، صف پیام (Message Queue) با کلید یکانی (Idempotency Key) در سمت اپلیکیشن اصلی طراحی کنید.

اشتباهات رایج مبتدیان و بهترین عمل‌ها برای production#

اشتباهات رایج در آموزش n8n حول دو محور می‌چرخند: نادیده گرفتن پاک‌سازی Execution Data و عدم فعال‌سازی حالت صف (Queue Mode) برای ترافیک بالا. این دو خطا ورک‌فلوی سالم را به سروری ناپایدار تبدیل می‌کنند و در کلاس‌های عملی بارها تکرار شده‌اند.

پاک‌سازی Execution Data#

هر اجرای ورک‌فلو، داده‌ی ورودی و خروجی هر نود را در دیتابیس ذخیره می‌کند. بدون تنظیم N8N_EXECUTIONS_DATA_PRUNE=true و N8N_EXECUTIONS_DATA_MAX_AGE (به ساعت)، دیتابیس پس از چند هفته پر می‌شود و سرعت پاسخ‌دهی API n8n به‌شدت افت می‌کند. این تنظیم را در docker-compose.yml اضافه کنید.

حالت صف (Queue Mode) و Redis#

وقتی تعداد هم‌زمان اجراها بالا می‌رود — مثلاً Webhook با ترافیک زیاد — یک instance n8n گلوگاه می‌شود. Queue Mode کار را بین چند worker تقسیم می‌کند. پیش‌نیاز آن نصب Redis و تنظیم EXECUTIONS_MODE=queue است. بدون Redis، Queue Mode کار نمی‌کند. این معماری را از ابتدا در نظر بگیرید، نه بعد از اولین قطعی.

پیش‌نیازهای یادگیری#

برای استفاده‌ی مؤثر از n8n، آشنایی مقدماتی با JSON و HTTP الزامی است. نود Code از JavaScript استفاده می‌کند. اگر با این سه آشنایی ندارید، ابتدا مفاهیم پایه را یاد بگیرید، سپس آموزش n8n را ادامه دهید. رابط کاربری بصری کدنویسی را حذف می‌کند، اما درک ساختار داده و پروتکل‌ها را حذف نمی‌کند.

جمع‌بندی عملی: تفاوت واقعی n8n با آموزش‌های مقدماتی در مدیریت خطا، Queue Mode و درک محدودیت‌های معماری push-based است. اگر می‌خواهید این شکاف را با پروژه‌ی واقعی و راهنمایی گام‌به‌گام پر کنید، دوره‌ی «ساخت AI Agent با n8n» در کامیونیتی اسکول دقیقاً همین مسیر را پوشش می‌دهد.