مقدمه
بسیاری از کارهای روزمره کسبوکارها شامل چند مرحله تکراری هستند. برای مثال، پس از ثبت یک سفارش باید اطلاعات آن بررسی شود، اطلاعات مشتری ذخیره شود، پیام تأیید ارسال شود و در نهایت نتیجه برای مدیر کسبوکار گزارش شود.
اگر این مراحل بهصورت دستی انجام شوند، علاوه بر اتلاف وقت، احتمال خطای انسانی نیز افزایش پیدا میکند.
ابزار n8n این امکان را فراهم میکند که سرویسها، APIها و ابزارهای مختلف را در قالب یک Workflow به یکدیگر متصل کنیم و اجرای مراحل مختلف را بهصورت خودکار پیش ببریم.
در این مقاله یاد میگیریم چگونه با n8n یک اتوماسیون چندمرحلهای بسازیم که اطلاعات یک سفارش فرضی را دریافت کند، دادهها را بررسی کند، در صورت معتبر بودن سفارش پیام تأیید بفرستد و نتیجه را در یک مرحله جداگانه پردازش کند.
اتوماسیون چندمرحلهای در n8n چیست؟
اتوماسیون چندمرحلهای به فرایندی گفته میشود که در آن چند عملیات مختلف به ترتیب یا بر اساس شرایط مشخص اجرا میشوند.
برای مثال، یک Workflow ساده میتواند مراحل زیر را داشته باشد:
- دریافت اطلاعات سفارش از یک Webhook
- بررسی معتبر بودن اطلاعات سفارش
- محاسبه مبلغ نهایی
- ذخیره یا ارسال اطلاعات سفارش به یک سرویس دیگر
- ارسال پیام تأیید به مشتری
- مدیریت خطاهای احتمالی
هر مرحله در n8n معمولاً با یک Node پیادهسازی میشود. خروجی هر Node میتواند ورودی مرحله بعدی باشد و به این ترتیب، چند سرویس مختلف در یک فرایند واحد با یکدیگر ارتباط برقرار میکنند.
نکته مهم این است که برای ساخت چنین سیستمی لزوماً نیازی به نوشتن کدهای پیچیده ندارید. بسیاری از مراحل را میتوان با نودهای آماده n8n پیادهسازی کرد.
پیش از شروع چه چیزهایی نیاز داریم؟
برای پیادهسازی مثال این مقاله به موارد زیر نیاز دارید:
- یک نمونه فعال از n8n
- آشنایی اولیه با Workflow و Node
- آشنایی مقدماتی با JSON
- یک ابزار برای ارسال درخواست آزمایشی به Webhook، مانند مرورگر یا یک ابزار تست API
- در صورت استفاده از سرویس خارجی، اطلاعات دسترسی یا API Key آن سرویس
در این آموزش، برای اینکه مثال بدون وابستگی به سرویس پولی یا حساب خارجی قابل اجرا باشد، ابتدا از Webhook و دادههای آزمایشی استفاده میکنیم. برای ارسال پیام واقعی میتوانید بعداً یک سرویس ایمیل یا پیامرسان را به Workflow اضافه کنید.
مرحله اول: ساخت Workflow جدید
ابتدا وارد پنل n8n شوید و یک Workflow جدید بسازید.
یک نام مشخص مانند زیر برای آن انتخاب کنید:
Order Processing Automation
نامگذاری مناسب باعث میشود زمانی که تعداد Workflowهای شما زیاد شد، پیدا کردن و مدیریت آنها آسانتر باشد.
حالا باید اولین Node را اضافه کنیم تا اطلاعات سفارش را دریافت کند.
مرحله دوم: دریافت اطلاعات با Webhook
Webhook یکی از روشهای رایج برای شروع خودکار یک Workflow است. با این روش، یک سرویس خارجی میتواند با ارسال درخواست HTTP، اجرای Workflow را آغاز کند.
در Workflow جدید، یک Node از نوع Webhook اضافه کنید.
تنظیمات پایه را به این شکل قرار دهید:
- HTTP Method:
POST - Path:
new-order - Respond: متناسب با نسخه n8n و نحوه پاسخدهی مورد نیاز شما؛ برای شروع میتوانید از حالت پاسخدهی ساده استفاده کنید.
پس از ذخیره Node، n8n آدرس آزمایشی Webhook را نمایش میدهد. در زمان آزمایش از Test URL و در زمان اجرای واقعی از Production URL استفاده کنید.
حالا یک درخواست POST با بدنه JSON زیر به Webhook ارسال کنید:
{
"order_id": 1001,
"customer_name": "علی رضایی",
"email": "customer@example.com",
"product": "Wireless Mouse",
"quantity": 2,
"unit_price": 750000
}
در این مثال، اطلاعات سفارش شامل شناسه سفارش، نام مشتری، ایمیل، نام محصول، تعداد و قیمت واحد است.
پس از ارسال درخواست، اجرای Workflow را بررسی کنید. اگر همهچیز درست باشد، اطلاعات دریافتشده باید در خروجی Node مربوط به Webhook دیده شوند.
نکته: آدرس ایمیل این مثال صرفاً آزمایشی است و برای ارسال واقعی پیام باید از نشانی معتبر استفاده کنید.
مرحله سوم: بررسی و اعتبارسنجی اطلاعات سفارش
دریافت داده بهتنهایی کافی نیست. ممکن است تعداد محصول صفر باشد، قیمت منفی ارسال شود یا اطلاعات ضروری سفارش وجود نداشته باشد.
برای بررسی این موارد، یک Node از نوع IF بعد از Webhook قرار دهید.
برای نمونه، شرطهایی در نظر بگیرید که بررسی کنند:
- شناسه سفارش وجود داشته باشد.
- تعداد محصول بیشتر از صفر باشد.
- قیمت واحد صفر یا منفی نباشد.
- ایمیل مشتری خالی نباشد.
در صورت امکان، این شرایط را در همان Node یا با ترکیب چند شرط تعریف کنید. نحوه دقیق انتخاب فیلدها به ساختار خروجی Webhook و نسخه رابط کاربری n8n بستگی دارد.
اگر دادههای ورودی مستقیماً در ریشه خروجی قرار گرفته باشند، مسیر فیلدها ممکن است به شکل زیر باشد:
order_id
quantity
unit_price
email
اگر دادهها داخل یک شیء دیگر مانند body قرار گرفته باشند، باید مسیر فیلدها را مطابق خروجی واقعی تنظیم کنید؛ برای مثال:
body.order_id
body.quantity
body.unit_price
body.email
در n8n همیشه خروجی واقعی Node قبلی را بررسی کنید و مسیر فیلدها را بر اساس همان ساختار انتخاب کنید.
خروجی شرط IF دو شاخه دارد:
- True: اطلاعات با شرط تعریفشده مطابقت دارند.
- False: اطلاعات معتبر نیستند یا شرط برقرار نشده است.
در ادامه، شاخه True را برای پردازش سفارش و شاخه False را برای مدیریت داده نامعتبر استفاده میکنیم.
مرحله چهارم: محاسبه مبلغ سفارش
در مرحله بعد باید مبلغ کل سفارش محاسبه شود.
یک Node از نوع Edit Fields (Set) به شاخه True متصل کنید. در برخی نسخهها یا Workflowهای قدیمی ممکن است نام Set را مشاهده کنید.
یک فیلد جدید با نام total_price بسازید و مقدار آن را با Expression محاسبه کنید:
{{ Number($json.quantity) * Number($json.unit_price) }}
این عبارت تعداد محصول را در قیمت واحد ضرب میکند.
برای داده آزمایشی این مقاله:
- تعداد: ۲
- قیمت واحد: ۷۵۰٬۰۰۰
- مبلغ کل: ۱٬۵۰۰٬۰۰۰
در این مثال فرض کردهایم قیمتها به یک واحد پولی مشخص ثبت شدهاند. اگر سیستم واقعی شما از تومان یا ریال استفاده میکند، واحد پولی را در کل فرایند یکسان نگه دارید.
همچنین اگر دادهها از مسیر body میآیند، Expression باید با ساختار خروجی شما هماهنگ شود؛ برای مثال:
{{ Number($json.body.quantity) * Number($json.body.unit_price) }}
برای اینکه مقدار محاسبهشده در مراحل بعدی در دسترس باشد، مطمئن شوید Node مورد استفاده سایر فیلدهای مورد نیاز را نیز حفظ میکند یا آنها را مجدداً به خروجی اضافه کردهاید.
مرحله پنجم: ارسال اطلاعات به یک سرویس دیگر
حالا اطلاعات سفارش آماده است و میتوانیم آن را به یک سرویس دیگر ارسال کنیم.
برای مثال، ممکن است بخواهید اطلاعات سفارش را به یکی از موارد زیر ارسال کنید:
- نرمافزار CRM
- یک API داخلی
- سامانه مدیریت سفارش
- سرویس ثبت اطلاعات
- یک پایگاه داده
برای ارتباط با API میتوانید از Node نوع HTTP Request استفاده کنید.
یک Node از این نوع بعد از مرحله محاسبه مبلغ اضافه کنید و تنظیمات را بر اساس مستندات API مقصد انجام دهید.
تنظیمات معمول شامل موارد زیر است:
- Method: یکی از روشهای پشتیبانیشده مانند
POST - URL: آدرس API مقصد
- Authentication: روش احراز هویت مورد نیاز سرویس
- Send Body: فعال
- Body Content Type: معمولاً JSON، اگر API مقصد چنین فرمتی میپذیرد.
برای نمونه، ساختار دادهای که میخواهیم به سرویس مقصد بفرستیم میتواند چنین باشد:
{
"order_id": 1001,
"customer_name": "علی رضایی",
"product": "Wireless Mouse",
"quantity": 2,
"total_price": 1500000
}
این JSON صرفاً نمونه ساختار داده است. برای ارسال واقعی باید URL، نام فیلدها، روش احراز هویت و قالب درخواست را با مستندات API مقصد تطبیق دهید.
اگر سرویس مقصد پاسخ موفق برگرداند، میتوانیم مراحل بعدی را اجرا کنیم. اگر درخواست شکست بخورد، باید تصمیم بگیریم که Workflow متوقف شود، خطا ثبت شود یا عملیات دوباره تلاش شود.
مرحله ششم: ارسال پیام تأیید به مشتری
پس از ثبت موفق سفارش در سرویس مقصد، میتوانیم یک پیام تأیید برای مشتری ارسال کنیم.
برای این کار میتوانید یکی از روشهای زیر را انتخاب کنید:
- ارسال ایمیل با Node مربوط به سرویس ایمیل
- ارسال پیام در Telegram
- ارسال پیامک از طریق API یک ارائهدهنده پیامک
در این مقاله، فرض میکنیم قصد داریم ایمیلی با اطلاعات سفارش ارسال کنیم.
Node سرویس ایمیل مورد نظر را بعد از مرحله ثبت سفارش قرار دهید. اطلاعات اتصال و احراز هویت آن را طبق راهنمای همان سرویس تنظیم کنید.
مقدار گیرنده را از ایمیل دریافتشده در سفارش بگیرید و موضوع پیام را مثلاً به این شکل تعیین کنید:
تأیید ثبت سفارش
نمونه متن ایمیل:
سلام {{ customer_name }}
سفارش شما با شماره {{ order_id }} دریافت شد.
محصول: {{ product }}
تعداد: {{ quantity }}
مبلغ کل: {{ total_price }}
از خرید شما سپاسگزاریم.
این متن فقط نمونهای برای نمایش دادههای مورد نیاز است. در Node ایمیل باید مقادیر واقعی را با Expressionهای n8n به فیلدهای خروجی مراحل قبلی متصل کنید. قالب دقیق Expressionها به ساختار داده موجود در آن مرحله بستگی دارد.
نکته مهم: اگر سفارش هنوز در سیستم مقصد ثبت نشده است، پیام تأیید نهایی برای مشتری ارسال نکنید. بهتر است پیام موفقیت پس از دریافت پاسخ موفق از سرویس ثبت سفارش ارسال شود.
مرحله هفتم: مدیریت سفارشهای نامعتبر
در مرحله اعتبارسنجی، شاخه False مربوط به Node نوع IF را خالی نگذارید.
میتوانید این شاخه را به یک Node دیگر متصل کنید تا اطلاعات نامعتبر را ثبت کند یا گزارشی برای مدیر بفرستد.
برای نمونه، در صورت نامعتبر بودن سفارش میتوانید:
- شناسه سفارش و علت رد شدن را ثبت کنید.
- یک پیام هشدار برای تیم پشتیبانی ارسال کنید.
- در صورت نیاز، پاسخ مناسبی به درخواست اولیه Webhook برگردانید.
بهتر است پیام خطا مشخص کند کدام شرط برقرار نبوده است؛ برای مثال، «تعداد محصول باید بیشتر از صفر باشد».
اگر از Webhook برای دریافت درخواست استفاده میکنید، پاسخ HTTP و نحوه اعلام خطا به سیستم ارسالکننده را نیز طراحی کنید. این کار به سرویس مبدأ کمک میکند تشخیص دهد درخواست پذیرفته شده یا باید اصلاح شود.
مرحله هشتم: مدیریت خطاهای احتمالی
در اتوماسیون واقعی، همه سرویسها همیشه در دسترس نیستند. ممکن است API مقصد پاسخ ندهد، اتصال ایمیل با مشکل مواجه شود یا اطلاعاتی که دریافت کردهایم ناقص باشند.
برای مدیریت این وضعیتها، چند اقدام مفید وجود دارد.
۱. بررسی خروجی هر Node
پس از اجرای آزمایشی Workflow، خروجی Nodeها را بررسی کنید. این کار کمک میکند بفهمید خطا در دریافت داده، محاسبه، ارسال درخواست یا مرحله دیگری رخ داده است.
۲. تنظیم رفتار خطا
n8n برای بسیاری از Nodeها تنظیماتی جهت کنترل رفتار هنگام خطا دارد. بر اساس اهمیت هر مرحله، میتوانید اجرای Workflow را متوقف کنید یا از مسیر مدیریت خطا استفاده کنید.
در برخی سناریوها میتوان از قابلیت Error Workflow نیز استفاده کرد تا هنگام شکست اجرای یک Workflow، یک Workflow جداگانه برای اطلاعرسانی و ثبت خطا اجرا شود.
۳. جلوگیری از ثبت تکراری سفارش
اگر درخواست به سرویس مقصد ارسال شود ولی پاسخ آن به دلیل مشکل شبکه دریافت نشود، ممکن است مشخص نباشد عملیات واقعاً انجام شده است یا نه.
در چنین شرایطی، اجرای مجدد ساده میتواند سفارش تکراری ایجاد کند. اگر API مقصد پشتیبانی میکند، از شناسه یکتای سفارش یا قابلیت Idempotency استفاده کنید. همچنین قبل از تکرار عملیات حساس، وضعیت ثبت سفارش را بررسی کنید.
۴. ثبت اطلاعات خطا
اطلاعاتی مانند شناسه اجرا، شناسه سفارش، مرحله شکستخورده و پیام خطا را ثبت کنید. از ثبت رمز عبور، API Key، توکن دسترسی یا اطلاعات حساس مشتری در لاگها خودداری کنید.
مرحله نهم: آزمایش کامل Workflow
پس از اتصال Nodeها، Workflow را از ابتدا تا انتها آزمایش کنید.
برای تست اولیه میتوانید سه سناریو داشته باشید:
سناریوی اول: سفارش معتبر
اطلاعات کامل و صحیح ارسال کنید.
انتظار میرود:
- Webhook اطلاعات را دریافت کند.
- شرط IF به شاخه True برود.
- مبلغ سفارش محاسبه شود.
- اطلاعات برای سرویس مقصد ارسال شود.
- پس از ثبت موفق، پیام تأیید ارسال شود.
سناریوی دوم: سفارش نامعتبر
تعداد محصول را صفر قرار دهید یا یک فیلد ضروری را حذف کنید.
انتظار میرود Workflow وارد شاخه False شود و سفارش بهعنوان یک سفارش معتبر پردازش نشود.
سناریوی سوم: خطای سرویس مقصد
در محیط آزمایش، یک پاسخ خطای کنترلشده از سرویس مقصد شبیهسازی کنید یا تنظیمات اتصال را به شکلی آزمایش کنید که درخواست موفق نشود.
بررسی کنید که Workflow رفتار مشخصی در برابر خطا داشته باشد و پیام موفقیت برای مشتری ارسال نشود.
مرحله دهم: فعالسازی Workflow
وقتی همه سناریوها را آزمایش کردید، نوبت استفاده واقعی است.
پیش از فعالسازی، این موارد را بررسی کنید:
- آدرس Production Webhook را به سیستم مبدأ معرفی کرده باشید.
- Workflow فعال باشد.
- اطلاعات دسترسی سرویسها بهدرستی تنظیم شده باشند.
- پاسخ API مقصد بررسی شود.
- مسیرهای مدیریت خطا مشخص باشند.
- از ارسال پیامهای تکراری جلوگیری شده باشد.
- اطلاعات حساس در لاگها یا پیامهای عمومی قرار نگیرند.
اگر Workflow را روی سرور شخصی و با Docker یا Coolify اجرا میکنید، دسترسی عمومی Webhook، تنظیمات HTTPS و محدودیت دسترسی به پنل n8n را نیز بررسی کنید. Webhook عمومی بدون کنترل مناسب میتواند در معرض درخواستهای ناخواسته قرار بگیرد.
ساختار نهایی Workflow
در پایان، ساختار کلی اتوماسیون ما به این شکل خواهد بود:
Webhook
|
v
IF - اعتبارسنجی سفارش
|
+---- False ----> ثبت خطا / هشدار
|
+---- True -----> محاسبه مبلغ
|
v
ثبت در سرویس مقصد
|
v
ارسال پیام تأیید
این ساختار یک نمونه پایه است. در پروژههای واقعی ممکن است مرحله بررسی موجودی، محاسبه تخفیف، کنترل پرداخت، ذخیره در پایگاه داده یا تأیید مدیر نیز به آن اضافه شود.
اشتباهات رایج هنگام ساخت اتوماسیون چندمرحلهای در n8n
اشتباه اول: نادیده گرفتن ساختار JSON
ممکن است یک فیلد در خروجی Webhook داخل body باشد، اما در Expression آن را مستقیماً از ریشه بخوانید. نتیجه این اشتباه معمولاً مقدار خالی یا undefined است.
راهحل: خروجی Node قبلی را بررسی کنید و مسیر دقیق فیلد را مطابق همان ساختار بنویسید.
اشتباه دوم: استفاده از داده قبل از آماده شدن آن
اگر یک Node به خروجی Node دیگری وابسته است، باید اتصال و ترتیب اجرا درست باشد. همچنین ممکن است خروجی یک Node ساختار داده قبلی را تغییر دهد.
راهحل: در هر مرحله بررسی کنید فیلدهای مورد نیاز مراحل بعدی همچنان موجود باشند.
اشتباه سوم: ارسال پیام موفقیت قبل از ثبت سفارش
اگر پیام تأیید زودتر از ثبت موفق سفارش ارسال شود، ممکن است مشتری پیام موفقیت دریافت کند اما سفارش در سیستم ثبت نشده باشد.
راهحل: مرحله ارسال پیام را پس از ثبت موفق سفارش قرار دهید.
اشتباه چهارم: تکرار عملیات بدون کنترل
تلاش مجدد برای یک درخواست ناموفق میتواند باعث ثبت چندباره اطلاعات یا ارسال پیامهای تکراری شود.
راهحل: از شناسه یکتا، بررسی وضعیت عملیات و قابلیتهای جلوگیری از تکرار در سرویس مقصد استفاده کنید.
اشتباه پنجم: نادیده گرفتن امنیت Webhook
اگر Webhook عمومی باشد و هیچ کنترل دسترسی مناسبی نداشته باشد، افراد غیرمجاز ممکن است درخواستهای جعلی ارسال کنند.
راهحل: در صورت پشتیبانی سناریو، احراز هویت، امضای درخواست یا روش مناسب اعتبارسنجی را پیادهسازی کنید. اطلاعات محرمانه را در URL یا لاگهای عمومی قرار ندهید.
چه کاربردهایی برای اتوماسیون چندمرحلهای وجود دارد؟
این نوع Workflow فقط برای فروشگاهها نیست. چند نمونه دیگر عبارتاند از:
- مدیریت سرنخهای فروش: دریافت فرم، بررسی اطلاعات، ثبت در CRM و اطلاعرسانی به کارشناس.
- پشتیبانی مشتریان: دریافت پیام، دستهبندی موضوع، ثبت درخواست و ارسال پاسخ اولیه.
- تولید محتوا: دریافت موضوع، ارسال به سرویس هوش مصنوعی، بررسی خروجی و ذخیره پیشنویس.
- گزارشگیری: دریافت اطلاعات از چند API، پردازش دادهها و ارسال گزارش دورهای.
- مدیریت سفارش: بررسی اطلاعات، کنترل پرداخت، ثبت سفارش و اطلاعرسانی به مشتری.
در هر مورد، باید وابستگی مراحل، رفتار خطا و نحوه جلوگیری از اجرای تکراری را متناسب با نیاز پروژه طراحی کنید.
سؤالات متداول
آیا برای ساخت اتوماسیون چندمرحلهای در n8n باید برنامهنویسی بلد باشیم؟
خیر. بسیاری از Workflowها با نودهای آماده و تنظیمات بصری قابل پیادهسازی هستند. با این حال، آشنایی با JSON، Expressionها، API و مفاهیم اولیه HTTP برای ساخت اتوماسیونهای پیچیدهتر بسیار مفید است.
آیا میتوان چند سرویس مختلف را در یک Workflow متصل کرد؟
بله. n8n میتواند سرویسهای مختلف را از طریق Nodeهای اختصاصی، Webhook و HTTP Request به هم متصل کند؛ البته امکان اتصال به هر سرویس به API، روش احراز هویت و قابلیتهای آن سرویس بستگی دارد.
اگر یکی از مراحل Workflow با خطا مواجه شود چه اتفاقی میافتد؟
رفتار دقیق به تنظیمات Node و Workflow بستگی دارد. میتوانید اجرای Workflow را متوقف کنید، خطا را ثبت کنید یا از مسیر مدیریت خطا برای اطلاعرسانی و بررسی مشکل استفاده کنید.
آیا میتوان از هوش مصنوعی در اتوماسیون چندمرحلهای استفاده کرد؟
بله. میتوانید یک Node مرتبط با مدل هوش مصنوعی را برای دستهبندی پیامها، استخراج اطلاعات، خلاصهسازی یا تولید متن به Workflow اضافه کنید. بهتر است خروجی مدل پیش از انجام عملیات حساس اعتبارسنجی شود.
آیا اتوماسیون چندمرحلهای برای کسبوکارهای کوچک هم مناسب است؟
بله. حتی یک فرایند ساده مانند دریافت سفارش، ثبت اطلاعات و ارسال پیام تأیید میتواند زمان انجام کارهای تکراری را کاهش دهد. بهتر است از یک Workflow کوچک شروع کنید و سپس مراحل مورد نیاز را اضافه کنید.
جمعبندی
اتوماسیون چندمرحلهای یکی از کاربردهای مهم n8n است. با ترکیب Webhook، شرطهای IF، پردازش دادهها، HTTP Request و Nodeهای ارتباطی میتوان چند سرویس را در یک Workflow به هم متصل کرد.
برای ساخت یک اتوماسیون قابلاعتماد، فقط اتصال Nodeها کافی نیست. باید دادهها را اعتبارسنجی کنید، پاسخ سرویسهای مقصد را بررسی کنید، از عملیات تکراری جلوگیری کنید و برای خطاها مسیر مشخصی در نظر بگیرید.
پیشنهاد میشود ابتدا یک Workflow کوچک را با دادههای آزمایشی بسازید و پس از بررسی تمام مسیرهای موفق و ناموفق، آن را به سرویسهای واقعی متصل کنید.





