n8n دو سیستم کاملاً متفاوت درون خودش دارد: یک طرف workflow اتوماسیون stateless است که داده را از نقطه‌ی A به B می‌برد و تمام می‌شود؛ طرف دیگر ایجنت هوش مصنوعی (AI Agent) stateful است که مکالمه را در حافظه نگه می‌دارد. بیشتر شکست‌هایی که در آموزش n8n می‌بینید، از اشتباه‌گرفتن این دو در یک الگوی واحد debug و مدیریت state ناشی می‌شود. اگر از همان ابتدا این تفکیک را درک کنید، ساعت‌ها دیباگ بی‌مصرف حذف می‌شود.

آموزش n8n از کجا شروع شود؟#

آموزش n8n از درک معماری node-based آن شروع می‌شود: هر workflow یک گراف جهت‌دار است که نود Trigger رویداد را می‌گیرد، نودهای میانی داده را تبدیل می‌کنند و نود پایانی خروجی را ارسال می‌کند. کلیدواژه‌ی «آموزش n8n» یعنی یاد بگیرید این گراف را بخوانید، نه اینکه صرفاً نودها را بکشید و رها کنید.

معماری node-based و مفهوم Trigger، Action و Transformation#

هر workflow سه نقش دارد. نود Trigger (راه‌انداز) رویداد را می‌گیرد — مثلاً Webhook، Schedule یا Message از Slack. نودهای میانی داده را تبدیل می‌کنند — HTTP Request، Code، IF، Merge. نود پایانی خروجی را ارسال می‌کند — Email، Slack Message، Webhook Response.

n8n صدها نود یکپارچه‌سازی داخلی (built-in integration) دارد، پس تقریباً هر API‌ای که نیاز دارید از قبل پوشش داده شده. این عدد در عمل یعنی: اگر با نود آماده‌ای مواجه شدید که کارتان را ۸۰ درصد انجام می‌دهد، وقتتان را صرف ساخت نود سفارشی نکنید.

Expression Editor ابزار اصلی خواندن داده‌ی JSON بین نودهاست. هر نود خروجی‌اش را به‌صورت آرایه‌ای از آیتم‌ها (items) در اختیار نود بعدی می‌گذارد. با نوشتن {{ $json.fieldName }} به فیلد نود قبلی دسترسی پیدا می‌کنید. اگر خروجی آرایه است، {{ $json[0].name }} آیتم اول را می‌دهد.

ساخت اولین workflow گام‌به‌گام#

فرض کنید می‌خواهید هر فرم تماس سایت را به Slack بفرستید:

  1. نود Webhook Trigger بسازید و path را روی /contact-form تنظیم کنید.
  2. نود HTTP Request اضافه کنید تا داده‌ی فرم را از body استخراج کند.
  3. نود Code با JavaScript بنویسید و فیلدهای نام، ایمیل و پیام را در یک شیء ساده مرتب کنید.
  4. نود Slack Message را به کانال مورد نظر وصل کنید و خروجی Code Node را در بلاک متن قرار دهید.
  5. روی هر نود جداگانه Execute بزنید و خروجی JSON را بررسی کنید.

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

مقایسه n8n با Make، Zapier و Pipedream#

n8n در طیف low-code تا code-able قرار دارد: از Make ساده‌تر در منطق شرطی، از Zapier انعطاف‌پذیرتر در اتصال به API سفارشی، و از Pipedream در مدیریت state و sub-workflow قوی‌تر است. انتخاب بین این چهار ابزار به پیچیدگی منطق، نیاز به self-hosted و مقیاس پروژه بستگی دارد.

معیار n8n Make Zapier Pipedream
مدل قیمت‌گذاری self-hosted رایگان + Cloud با پلن اجرا execution-based task-based step-based
Self-hosted بله (Docker) خیر (رسمی) خیر خیر
پشتیبانی AI Agent LangChain native محدود (AI modules) AI Actions با کد دستی
Sub-workflow Native محدود (Custom Apps) خیر با import
یادگیری متوسط ساده ساده سخت (code-first)

نتیجه‌ی عملی: اگر پروژه‌ی شما بیش از 15 نود دارد یا نیاز به ایجنت هوش مصنوعی دارید، n8n انتخاب منطقی‌تر است. اگر فقط 2-3 قدم خطی دارید، Make سریع‌تر setup می‌شود. Zapier را برای سناریوهای واقعی چند-نودی توصیه نمی‌کنم؛ مدل task-based آن در پروژه‌های پیچیده هزینه‌ی اجرا را غیرقابل‌پیش‌بینی می‌کند.

آیا برای n8n برنامه‌نویسی لازم است؟#

برای workflowهای ساده نیازی به کدنویسی نیست، اما درک مفاهیم JSON، ساختار HTTP Request/Response و REST API برای هر اتوماسیون غیرساده ضروری است. Code Node با JavaScript فقط برای منطق شرطی پیچیده و تبدیل داده استفاده می‌شود، نه برای هر نود.

پیش‌نیازهای واقعی — JSON، HTTP Method، Header/Body، Status Code#

اگر نمی‌دانید تفاوت GET و POST چیست یا چرا یک API پاسخ 401 می‌دهد، n8n شما را در نود HTTP Request متوقف می‌کند. این‌ها مفاهیم اتوماسیون‌اند، نه برنامه‌نویسی. 2-3 ساعت روی Postman و ساخت درخواست ساده وقت بگذارید و بعد برگردید. بدون این سرمایه‌گذاری کوچک، هر بار که یک API تغییر می‌دهد، ساعت‌ها در Expression Editor سرگردان می‌مانید.

Code Node در مقابل Function Node در Make#

Code Node در n8n به context کامل workflow دسترسی دارد: $json، $node، $items و حتی $getWorkflowStaticData(). Function Node در Make scope محدودتری دارد و به داده‌ی نودهای دورتر دسترسی مستقیم نمی‌دهد. این تفاوت در workflowهای چند-شاخه‌ای خودش را نشان می‌دهد.

اشتباه رایج: «هر نود باید stateless باشد». در workflow اتوماسیون این درست است، اما در ایجنت هوش مصنوعی با Memory node دقیقاً برعکس عمل می‌کنید — state بین اجراها حفظ می‌شود. اگر این تفکیک را ندانید، در AI Agent با مشکل context loss مواجه می‌شوید.

ساخت ایجنت هوش مصنوعی در n8n با نودهای LangChain#

ایجنت هوش مصنوعی (AI Agent) در n8n با نودهای LangChain ساخته می‌شود و معماری آن با workflow اتوماسیون متفاوت است: ایجنت stateful است، از Memory node برای حفظ مکالمه استفاده می‌کند و Tool Calling آن را به APIهای بیرونی متصل می‌سازد. n8n در سال 2019 توسط Jan Oberhauser تأسیس شد؛ نودهای LangChain و AI Agent حدود سال 2023 به هسته‌ی ابزار اضافه شدند.

مغز دیجیتال درخشان متصل به نودهای زنجیره‌ای که مفهوم ایجنت هوشمند در محیط اتوماسیون را نشان می‌دهد
نودهای LangChain پل میان مدل زبانی و منطق تجاری workflow شما هستند

تفاوت معماری — workflow stateless vs AI Agent stateful#

در workflow معمولی، هر اجرا مستقل است. داده می‌آید، تبدیل می‌شود، خروجی می‌رود. تمام. در ایجنت، مکالمه بین چند اجرا ادامه دارد. Memory node تاریخچه را نگه می‌دارد و Agent Node بر اساس آن تصمیم می‌گیرد.

اگر workflow معمولی را با ذهنیت stateful بسازید، داده‌های تکراری و race condition می‌گیرید. اگر ایجنت را با ذهنیت stateless بسازید، مکالمه فراموش می‌شود. این دو اشتباه در کلاس‌های عملی کامیونیتی اسکول مکرر تکرار می‌شوند و هر دو در دیباگ بسیار پرهزینه‌اند.

اجزای ایجنت: Chat Model، Tool، Memory، Agent#

ایجنت در n8n از چهار نود اصلی تشکیل شده:

  • Chat Model Node — مدل زبانی (OpenAI، Anthropic یا مدل محلی) را وصل می‌کند.
  • Tool Node — ایجنت را به ابزار بیرونی متصل می‌کند؛ معمولاً HTTP Request یا Calculator.
  • Memory Node — تاریخچه‌ی مکالمه را ذخیره می‌کند (Buffer Memory یا Postgres Memory).
  • Agent Node — مغز ایجنت است؛ تصمیم می‌گیرد چه زمانی Tool صدا بزند و چه زمانی پاسخ دهد.

ورک‌فلو مشخص ایجنت: Webhook Trigger → Agent Node (با LangChain) → Tool Node (HTTP Request) → Memory Node → Response.

نکته‌ی عملی: Tool Calling را ابتدا با یک نود ساده HTTP Request تست کنید، سپس به Agent Node وصل کنید. اگر مستقیم ایجنت را با Tool بسازید، وقتی خطا می‌گیرید نمی‌دانید مشکل از مدل، از Tool یا از Memory است.

نصب n8n با Docker یا n8n Cloud؟ هزینه‌ی واقعی هر دو#

self-hosted با Docker کنترل کامل و هزینه‌ی سرور ماهانه دارد، اما هزینه‌ی آپدیت، بکاپ، مانیتورینگ و زمان‌بندی cron را هم باید حساب کنید. n8n Cloud این بارها را حذف می‌کند ولی پلن رایگان آن محدودیت تعداد اجرا (execution) دارد. «self-hosted یعنی رایگان» بزرگ‌ترین اشتباه محاسباتی در انتخاب معماری است.

لایسنس fair-code و محدودیت‌های تجاری#

n8n از Sustainable Use License استفاده می‌کند. اجازه‌ی استفاده‌ی داخلی و شخصی می‌دهد، اما اجازه‌ی فروش n8n به‌عنوان SaaS چند-مستأجری (multi-tenant) نمی‌دهد. برای اتوماسیون داخلی کسب‌وکار معمولاً مشکلی نیست. اگر محصولتان را به‌عنوان SaaS می‌فروشید، با تیم حقوقی بررسی کنید.

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

سرور VPS، آپدیت امنیتی، بکاپ منظم، مانیتورینگ uptime و مدیریت زمان‌بندی cron همه هزینه‌ی فرصت دارند. اگر زیر 500 execution در ماه دارید، Cloud ساده‌تر است. اگر داده حساس دارید یا مقیاس بالا نیاز دارید، self-hosted با Docker. مرز واقعی بین این دو، نه حجم اجرا، بلکه تعداد نفراتی است که می‌توانند سرور را مدیریت کنند.

رایج‌ترین اشتباهات n8n و الگوی دیباگ workflow#

رایج‌ترین اشتباه در آموزش n8n، اجرای کامل workflow برای پیدا کردن خطاست. الگوی Expression-first debugging یعنی روی هر نود به‌صورت مستقل Execute بزنید و خروجی JSON را قبل از اتصال به نود بعدی بررسی کنید. این الگو در پروژه‌های واقعی اعضای کامیونیتی اسکول مشاهده شده و در آموزش‌های فارسی‌زبان تقریباً هیچ‌جا توضیح داده نشده.

الگوی Expression-first debugging#

هر نود دکمه‌ی Execute دارد. قبل از وصل کردن نود بعدی، خروجی نود فعلی را ببینید. اگر JSON ساختار مورد انتظار را ندارد، مشکل را همان‌جا حل کنید. اجرای کامل workflow فقط وقتی خطای بصری دارد — مثلاً نود قرمز می‌شود — مفید است. برای خطای منطقی، Expression-first سریع‌تر است.

Sub-workflow برای پروژه‌های بزرگ#

هر workflow بیش از 15 نود بدون sub-workflow به‌سرعت غیرقابل‌نگهداری می‌شود. الگوی شکستن: هر sub-workflow یک مسئولیت مشخص دارد — استخراج داده، تبدیل، یا ارسال خروجی. workflow اصلی فقط orchestration می‌کند. اشتباه رایج: «هرچه نود بیشتر بهتر». workflow بدون sub-workflow به spaghetti تبدیل می‌شود و دیباگش کابوس است.

الگوی retry با exponential backoff برای rate limit در workflowهای چند-نودی: روی نود HTTP Request، retry count را 3 و retry delay را فزاینده تنظیم کنید. این الگو از خطاهای 429 API جلوگیری می‌کند.

چه زمانی n8n انتخاب غلط است؟#

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

  • اتوماسیون خطی 2-3 قدمی: Make با رابط بصری سریع‌تر setup می‌شود.
  • پروژه‌ی code-heavy با نیاز به Git workflow: Pipedream یا کدنویسی مستقیم Node.js.
  • SaaS چند-مستأجری: محدودیت fair-code license مانع می‌شود.
  • مقیاس بسیار بالا با latency حساس: معماری single-process n8n محدودیت دارد.

جمع‌بندی: آموزش n8n یعنی درک دو معماری متفاوت — workflow stateless و ایجنت stateful — و انتخاب الگوی دیباگ مناسب برای هرکدام. اگر این تفکیک را از روز اول در ذهن داشته باشید، هم در اتوماسیون ساده و هم در ایجنت هوش مصنوعی، ساعت‌ها جلوتر از بقیه هستید. اگر می‌خواهید ایجنت با n8n را از صفر تا درآمد عملی بسازید، دوره‌ی «ساخت Ai Agent با N8N» در کامیونیتی اسکول دقیقاً همین مسیر را با پروژه‌ی واقعی طی می‌کند. شرایط عضویت و دسترسی به سرفصل‌ها در کامیونیتی N8N اسکول آمده است.