آموزش n8n یعنی یادگیری ابزاری که در شکاف بین no-code و pro-code قرار می‌گیرد؛ برای workflowهای خطی واقعاً بدون کد کار می‌کند، اما به‌محض نیاز به تبدیل داده یا شرط‌های تو در تو، نوشتن JavaScript کوتاه اجتناب‌ناپذیر می‌شود. بسیاری از تازه‌کارها دقیقاً اینجا گیر می‌کنند: انتظار یک ابزار صرفاً بصری دارند و با اولین Code node غافلگیر می‌شوند.

معماری node-based و نحوه‌ی کار n8n#

n8n یک ابزار اتوماسیون workflow مبتنی بر node (گره) است. هر node یک وظیفه‌ی اتمی دارد — دریافت داده، تبدیل، یا ارسال — و اتصال بین nodeها جریان داده را تعریف می‌کند. معماری آن شبیه جریان‌نقشه بصری است: Trigger (ماشه) شروع می‌کند، Action انجام می‌دهد، و Logic شرط می‌گذارد.

معماری node-based در n8n#

سه دسته‌ی اصلی node برای شروع کافی است. Trigger node نقطه‌ی شروع است: Webhook، Schedule، Manual، یا Telegram. Action node یک کار مشخص انجام می‌دهد — ارسال ایمیل، نوشتن در Google Sheets، یا فراخوانی API. Logic node شرط و حلقه اضافه می‌کند؛ مثل IF، Switch، و Loop Over Items.

نکته‌ای که کمتر جایی توضیح داده می‌شود: nodeها در n8n stateless هستند. هر node خروجی node قبلی را می‌خواند و خروجی جدید می‌سازد. این مدل با state machineهای LangChain فرق دارد و debug کردن n8n را بصری‌تر می‌کند — کافی است execution log هر node را باز کنید و JSON ورودی و خروجی را ببینید.

زیرساخت فنی n8n#

n8n روی Node.js runtime اجرا می‌شود و داده‌های execution را در SQLite (برای شروع) یا PostgreSQL (برای production) ذخیره می‌کند. برای مقیاس، queue mode فعال می‌شود که workflowها را بین چند worker توزیع می‌کند. Expression و Code node ابزارهای تبدیل داده بین nodeها هستند؛ Expression برای تبدیل‌های ساده و Code node برای منطق پیچیده‌تر.

n8n بهتر است یا Zapier و Make؟#

n8n کنترل و انعطاف بیشتری نسبت به Zapier و Make می‌دهد و هزینه‌ی self-host آن پایین‌تر است. اما برای تیم‌های غیرفنی و workflowهای بسیار ساده، Zapier هنوز سریع‌تر به نتیجه می‌رساند. تصمیم نهایی به نوع تیم و پیچیدگی workflow بستگی دارد — نه به اینکه کدام ابزار «بهتر» است.

معیارn8nZapierMake
لایسنسfair-code (self-host رایگان)تجاری SaaSتجاری SaaS
هزینه‌ی self-hostفقط سرورناممکنناممکن
Code nodeبله (JavaScript)محدود (Code step)بله
منحنی یادگیریمتوسط تا تندآسانمتوسط
مناسب برایتیم فنی، workflow پیچیدهتیم غیرفنی، workflow سادهتیم نیمه‌فنی

نقطه‌ی قوت n8n که در هیچ رقیب دیگری این‌قدر تمیز نیست: ترکیب Expression و Code node. در Zapier فقط یک Code step ساده دارید. در n8n می‌توانید وسط workflow یک JavaScript بنویسید، داده را reshape کنید، و خروجی را به node بعدی بدهید. عملاً هیچ workflowی «غیرقابل‌ساخت» نیست.

نقطه‌ی ضعف: برای کاربر غیرفنی، منحنی یادگیری تندتر است. باید Docker، webhook URL، و JSON را بشناسد. Windmill (با لایسنس AGPL) و Node-RED (Apache 2.0) جایگزین‌های open-source با لایسنس آزادتر هستند، ولی اکوسیستم nodeهای n8n گسترده‌تر است و این تفاوت در عمل تعیین‌کننده‌تر از لایسنس است.

چطور n8n را رایگان نصب کنم؟#

سریع‌ترین راه نصب n8n اجرای یک دستور Docker است که در کمتر از 5 دقیقه یک instance محلی یا روی سرور لینوکس بالا می‌آورد. پیش‌نیازها: Docker نصب‌شده، حداقل 1GB RAM، و یک پورت آزاد (معمولاً 5678).

گام‌های نصب با Docker#

  1. Docker را نصب و فعال کنید: sudo systemctl enable docker
  2. پوشه‌ی داده بسازید: mkdir -p ~/.n8n
  3. دستور اجرا را بزنید: docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
  4. در مرورگر به http://localhost:5678 بروید
  5. نام کاربری و رمز admin بسازید
  6. در Settings → Timezone، منطقه‌ی زمانی را تنظیم کنید

برای production، SQLite را با PostgreSQL جایگزین کنید. متغیرهای محیطی DB_TYPE=postgresdb و DB_POSTGRESDB_HOST را در فایل docker-compose تنظیم کنید. اگر روی VPS نصب می‌کنید، حتماً Nginx یا Caddy به‌عنوان reverse proxy با SSL بگذارید.

n8n Cloud به‌عنوان جایگزین بدون سرور برای تست سریع مناسب است، ولی محدودیت تعداد workflow اجرا و دسترسی به queue mode دارد.

برای یادگیری n8n باید کدنویسی بلد باشم؟#

برای workflowهای خطی ساده نه؛ اما به‌محض نیاز به تبدیل داده، شرط‌های تو در تو، یا debug، نوشتن JavaScript در Expression و Code node اجتناب‌ناپذیر می‌شود. این همان مرز code-light است که بسیاری از تازه‌کارها را غافلگیر می‌کند.

چه کارهایی واقعاً بدون کد انجام می‌شود#

اتصال APIها با HTTP Request node، فیلتر ساده با IF node، ارسال اعلان به Telegram یا Slack، و خواندن/نوشتن در Google Sheets — اینها بدون حتی یک خط کد کار می‌کنند. اگر workflow شما فقط «وقتی چیزی شد، این کار را بکن» است، n8n واقعاً no-code است.

چه کارهایی بدون کد انجام نمی‌شود#

data reshaping (تغییر ساختار JSON)، retry logic سفارشی، parsing پاسخ‌های ساختارنیافته، و شرط‌های ترکیبی (A و B ولی نه C) — اینها یا با Expression طولانی و ناخوانا حل می‌شوند، یا باید در Code node بنویسید.

الگوی تکرارشونده از پروژه‌های اعضای کامیونیتی: کاربر با نیت no-code شروع می‌کند، بعد از دو هفته به Code node برمی‌گردد. حداقل دانش JavaScript موردنیاز: متغیر، حلقه‌ی ساده (for/forEach)، و دسترسی به property آبجکت (dot notation). بیشتر از این لازم نیست.

نمونه‌ی واقعی Expression در n8n: تبدیل فرمت تاریخ. اگر خروجی API تاریخ را به شکل 2024-03-15T10:30:00Z برمی‌گرداند و شما 15 مارس 2024 می‌خواهید، در Code node می‌نویسید: const d = new Date($json.date); return [{ formatted: d.toLocaleDateString('fa-IR') }];

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

با node AI Agent در n8n می‌توان یک ایجنت تک‌نفره ساخت که از LLM (مدل زبانی بزرگ) استفاده می‌کند، ابزار فراخوانی می‌کند، و پاسخ برمی‌گرداند — اما برای RAG پیچیده و multi-agent orchestration هنوز محدودیت جدی دارد.

دستی که یک ماژول درخشان را به زنجیره‌ی گره‌ها اضافه می‌کند و فرآیند ساخت ایجنت بدون کدنویسی را نشان می‌دهد
هر ماژول یک قابلیت ایجنت است: ابزار، حافظه یا منطق تصمیم‌گیری

ورک‌فلوی نمونه: ایجنت تک‌ابزاری#

ترتیب nodeها در این workflow: Webhook Trigger → AI Agent → HTTP Request (فراخوانی API بیرونی به‌عنوان Tool) → Code (تمیزسازی خروجی) → Telegram → Respond to Webhook. در AI Agent node، system prompt را تنظیم می‌کنید و مدل را انتخاب می‌کنید (OpenAI، Anthropic، یا مدل محلی). سپس یک Tool تعریف می‌کنید که HTTP Request node است.

مثلاً: ایجنتی که وقتی کاربر در تلگرام سوال می‌پرسد، از API قیمت ارز استفاده می‌کند و پاسخ می‌دهد. Webhook Trigger پیام را می‌گیرد، AI Agent تصمیم می‌گیرد که باید Tool را فراخوانی کند، HTTP Request قیمت را برمی‌گرداند، Code node خروجی را تمیز می‌کند، و Telegram node پاسخ را ارسال می‌کند.

محدودیت‌های واقعی AI Agent در n8n#

عدم پشتیبانی از multi-agent orchestration، memory محدود (فقط context window مدل)، و نبود native RAG pipeline. برای مقایسه: LangChain و LlamaIndex ابزارهای تخصصی‌تری برای این موارد هستند. اگر نیاز شما یک ایجنت تک‌نفره با یک یا دو Tool است، n8n کافی است. اگر multi-agent یا knowledge base پیچیده می‌خواهید، n8n به‌عنوان لایه‌ی orchestration بیرونی و LangChain به‌عنوان موتور داخلی ترکیب بهتری است.

نکته‌ی عملی: شروع با یک ایجنت تک‌ابزاری و افزودن تدریجی Toolها. هر Tool را جداگانه test کنید قبل از اینکه به ایجنت اضافه‌اش کنید.

هزینه‌ی پنهان self-host کردن n8n#

هزینه‌ی واقعی شامل سرور، زمان troubleshooting، آپدیت‌های شکسته (breaking changes)، بکاپ، و دانش فنی لازم است — نه فقط ماهانه‌ی یک VPS ارزان. این همان چیزی است که مقایسه‌های سطحی «n8n رایگان است» نادیده می‌گیرند.

هزینه‌های آشکار#

سرور VPS (حداقل 2GB RAM برای workflowهای متوسط)، دامنه، SSL، و در صورت نیاز به PostgreSQL جداگانه، هزینه‌ی دیتابیس. اینها قابل‌محاسبه‌اند.

هزینه‌های پنهان#

زمان رفع باگ آپدیت (n8n بین نسخه‌ها breaking change دارد)، downtime، بکاپ‌گیری منظم، و مستندسازی داخلی workflowها. اگر تیم فنی ندارید، این هزینه‌ها می‌تواند از هزینه‌ی Zapier بیشتر شود.

مجوز fair-code: استفاده‌ی شخصی و داخلی مجاز است. ارائه‌ی n8n به‌عنوان SaaS رقابتی یا فروش wrapper ممنوع است. اگر قصد ارائه‌ی سرویس اتوماسیون به مشتری دارید، این محدودیت حیاتی است و باید با سازنده‌ی n8n مذاکره کنید. مقایسه با Windmill (AGPL) و Node-RED (Apache 2.0) از منظر محدودیت تجاری به نفع این دو تمام می‌شود.

اشتباهات پرتکرار تازه‌کارها در n8n#

بزرگ‌ترین اشتباه ساخت workflow بدون error handling است؛ workflowی که بعد از اولین خطای API خاموش می‌شود و کاربر n8n را مقصر می‌داند در حالی که مشکل از طراحی است. این الگو در اکثر پروژه‌های تازه‌کارها تکرار شده و در کامیونیتی‌های n8n بارها گزارش شده است.

پنج اشتباه پرتکرار#

  • Workflow مرده: بدون Error Trigger و بدون retry logic. اولین خطای API کل workflow را متوقف می‌کند.
  • Code node غول‌پیکر: بارگذاری همه‌ی منطق در یک Code node به‌جای استفاده از چند node کوچک‌تر. debug کردنش غیرممکن می‌شود.
  • نادیده گرفتن rate limit: بدون Wait node، درخواست‌های پشت‌سرهم به API می‌فرستید و IP شما مسدود می‌شود.
  • Credentials بدون نام: چند workflow از یک credential مشترک استفاده می‌کنند و وقتی یکی خراب می‌شود، همه از کار می‌افتند.
  • آپدیت بدون changelog: نسخه‌ی n8n را آپدیت می‌کنید و workflowهای قبلی می‌شکنند.

چک‌لیست production-readiness#

قبل از فعال‌سازی یک workflow، این موارد را بررسی کنید: Error Trigger متصل باشد، logging فعال باشد (Save Execution Data)، retry logic برای APIهای خارجی وجود داشته باشد، timeout تنظیم شده باشد، و alert برای شکست workflow تعریف شده باشد. تکنیک debugging: از Manual Execution استفاده کنید، JSON خروجی هر node را جداگانه بررسی کنید، و Save Execution Data را فعال نگه دارید تا بعداً قابل‌مرور باشد.

این چک‌لیست از پروژه‌های واقعی تیم‌های اتوماسیون استخراج شده؛ جایی که یک workflow بدون Error Trigger در production، یک روز کامل downtime به تیم تحویل داد چون هیچ‌کس متوجه نشد چرا اعلان‌ها ارسال نشده‌اند.

جمع‌بندی عملی: n8n ابزاری قدرتمند است که مرز no-code و code-light را مبهم نگه می‌دارد. اگر workflow شما خطی است، بدون کد بسازید. اگر نیاز به تبدیل داده دارید، JavaScript مقدماتی یاد بگیرید. اگر ایجنت هوش مصنوعی می‌خواهید، با یک Tool شروع کنید و تدریجی اضافه کنید. و قبل از هر چیز، error handling را از روز اول بسازید.

اگر می‌خواهید این مسیر را با ساختار مشخص طی کنید، دوره‌ی «ساخت Ai Agent با N8N» در کامیونیتی N8N اسکول دقیقاً همین progression را پوشش می‌دهد — از نصب تا ایجنت‌های چندابزاری.