خلاصه مقاله: نود Merge در n8n به شما کمک میکند دادههای ورودی از چند مسیر را با یکدیگر ترکیب کنید یا اطلاعات مرتبط را کنار هم قرار دهید. در این آموزش، با روشهای مختلف Merge، تنظیمات مهم، مثالهای عملی و خطاهای رایج آشنا میشوید.
یکی از چالشهای مهم هنگام ساخت اتوماسیون با n8n، مدیریت دادههایی است که از منابع مختلف دریافت میشوند. ممکن است اطلاعات مشتری از یک API دریافت شود، سوابق سفارش او از پایگاه داده به دست بیاید و اطلاعات پرداخت نیز از یک سرویس دیگر دریافت شود. برای ساخت یک خروجی کامل، گاهی لازم است این اطلاعات را با یکدیگر ترکیب کنیم.
نود Merge دقیقاً برای مدیریت چنین سناریوهایی کاربرد دارد. با استفاده از آن میتوانیم دادههای چند ورودی را در یک مرحله ترکیب کنیم و اطلاعات موردنیاز را برای ادامه Workflow آماده سازیم.
در این مقاله، بهصورت گامبهگام یاد میگیریم Merge در n8n چیست، چه حالتهایی دارد، چگونه دو مجموعه داده را با هم ترکیب کنیم و هنگام استفاده از این نود باید به چه نکاتی توجه داشته باشیم.
نود Merge در n8n چیست؟
Merge یکی از نودهای اصلی n8n برای ترکیب یا هماهنگکردن دادههایی است که از چند ورودی دریافت میشوند.
فرض کنید یک Workflow اطلاعات زیر را دریافت میکند:
ورودی اول؛ اطلاعات مشتری
{
"customer_id": 101,
"name": "Ali Ahmadi",
"email": "ali@example.com"
}
ورودی دوم؛ اطلاعات سفارش
{
"customer_id": 101,
"order_id": 5001,
"amount": 850000
}
هر مجموعه داده بهتنهایی بخشی از اطلاعات موردنیاز را دارد. اما برای ارسال یک گزارش کامل، ممکن است بخواهیم نام و ایمیل مشتری را در کنار شناسه سفارش و مبلغ آن داشته باشیم.
با استفاده از Merge میتوانیم این اطلاعات را بر اساس شناسه مشترک مشتری ترکیب کنیم.
خروجی مورد انتظار میتواند به شکل زیر باشد:
{
"customer_id": 101,
"name": "Ali Ahmadi",
"email": "ali@example.com",
"order_id": 5001,
"amount": 850000
}
البته خروجی دقیق به حالت انتخابشده، ساختار دادهها و تنظیمات Merge بستگی دارد.
نکته مهم: Merge صرفاً به معنی چسباندن دو JSON به یکدیگر نیست. این نود میتواند دادهها را بر اساس موقعیت، فیلد مشترک یا حالتهای دیگر ترکیب کند. بنابراین، انتخاب روش مناسب اهمیت زیادی دارد.
چه زمانی به نود Merge نیاز داریم؟
استفاده از Merge در سناریوهای مختلفی مفید است؛ از جمله:
- ترکیب اطلاعات مشتری با سفارشهای او
- کنار هم قراردادن اطلاعات دریافتی از دو API
- ترکیب دادههای یک فایل با اطلاعات پایگاه داده
- اتصال اطلاعات محصول به موجودی انبار
- ترکیب دادههای تکمیلی پیش از تولید گزارش
- هماهنگکردن دادههای چند مسیر در یک Workflow
برای مثال، اگر اطلاعات محصولات از یک API و موجودی آنها از API دیگری دریافت شود، میتوان با استفاده از Merge اطلاعات محصول و موجودی را ترکیب کرد؛ به شرط آنکه شناسهها یا ساختار دادهها برای تطبیق مناسب باشند.
آموزش ساخت اولین Workflow با Merge
در این مثال، دو مجموعه اطلاعات را دریافت میکنیم و آنها را در یک خروجی ترکیب خواهیم کرد.
مرحله اول: ایجاد Workflow
وارد n8n شوید و یک Workflow جدید بسازید.
دو مسیر آزمایشی ایجاد میکنیم که هرکدام یک نود Edit Fields دارند. برای شروع میتوانید از Manual Trigger استفاده کنید و هر دو مسیر را بهگونهای طراحی کنید که با اجرای Workflow دادههای آزمایشی تولید کنند.
ساختار کلی:
Manual Trigger → مسیر اول: Edit Fields
Manual Trigger → مسیر دوم: Edit Fields
در این مثال، دو نود Edit Fields دو مجموعه داده مستقل تولید میکنند.
مرحله دوم: تعریف دادههای ورودی اول
در نود Edit Fields اول، اطلاعات مشتری را تعریف کنید.
برای مثال:
{
"customer_id": 101,
"name": "Ali Ahmadi",
"email": "ali@example.com"
}
این مجموعه داده شامل شناسه، نام و ایمیل مشتری است.
مرحله سوم: تعریف دادههای ورودی دوم
در نود Edit Fields دوم، اطلاعات سفارش را وارد کنید:
{
"customer_id": 101,
"order_id": 5001,
"amount": 850000
}
در این مجموعه نیز فیلد customer_id وجود دارد. این فیلد میتواند برای تطبیق اطلاعات مشتری و سفارش استفاده شود.
مرحله چهارم: اضافهکردن نود Merge
یک نود Merge به Workflow اضافه کنید.
خروجی نود Edit Fields اول را به ورودی اول Merge و خروجی نود Edit Fields دوم را به ورودی دوم آن متصل کنید.
ساختار کلی Workflow:
Edit Fields (اطلاعات مشتری) → Input 1
Edit Fields (اطلاعات سفارش) → Input 2
هر دو ورودی به نود Merge متصل میشوند.
مرحله پنجم: انتخاب روش ترکیب دادهها
نود Merge را باز کنید و حالت مناسب را انتخاب کنید.
برای این مثال، اگر نسخه n8n شما گزینهای مانند Combine و سپس Matching Fields یا گزینه معادل تطبیق فیلدها را دارد، آن را انتخاب کنید.
فیلد تطبیق را در هر دو ورودی customer_id قرار دهید.
در این حالت، n8n تلاش میکند آیتمهای دو ورودی را بر اساس مقدار این فیلد با یکدیگر تطبیق دهد.
اگر دادههای هر دو ورودی شناسه 101 داشته باشند، میتوان اطلاعات مشتری و سفارش را در یک آیتم ترکیب کرد.
در پایان، Workflow را اجرا کنید و خروجی Merge را بررسی کنید.
توجه: عنوان و محل گزینهها ممکن است در نسخههای مختلف n8n متفاوت باشد. همچنین اگر چند آیتم دارای شناسه تکراری باشند، یا هیچ شناسه مشترکی پیدا نشود، نتیجه به تنظیمات تطبیق و رفتار انتخابشده بستگی دارد.
حالتهای مهم نود Merge در n8n
Merge میتواند با روشهای مختلفی دادههای ورودی را مدیریت کند. حالتهای دقیق و گزینههای موجود ممکن است با نسخه n8n تفاوت داشته باشند؛ بنابراین بهتر است نام گزینهها را در نسخه نصبشده خود بررسی کنید.
۱. ترکیب بر اساس فیلد مشترک
این روش زمانی مناسب است که دو مجموعه داده یک شناسه یا فیلد مشترک داشته باشند.
برای مثال، داده اول:
{
"product_id": 20,
"product_name": "Keyboard",
"price": 1200000
}
داده دوم:
{
"product_id": 20,
"stock": 15
}
در این مثال، فیلد product_id برای تطبیق دو مجموعه استفاده میشود.
خروجی مورد انتظار:
{
"product_id": 20,
"product_name": "Keyboard",
"price": 1200000,
"stock": 15
}
این روش برای ترکیب اطلاعات محصولات، کاربران، سفارشها و رکوردهای مرتبط در سیستمهای مختلف کاربرد زیادی دارد.
۲. ترکیب بر اساس موقعیت آیتمها
گاهی دو ورودی، آیتمهایی دارند که ترتیب آنها با یکدیگر هماهنگ است.
برای مثال، ورودی اول:
[
{
"name": "Ali"
},
{
"name": "Sara"
}
]
ورودی دوم:
[
{
"score": 90
},
{
"score": 85
}
]
اگر هدف این باشد که آیتم اول ورودی اول با آیتم اول ورودی دوم و آیتم دوم با آیتم دوم ترکیب شود، میتوان از حالت ترکیب بر اساس موقعیت استفاده کرد.
خروجی مورد انتظار:
[
{
"name": "Ali",
"score": 90
},
{
"name": "Sara",
"score": 85
}
]
این روش فقط زمانی مناسب است که ترتیب آیتمها معنای مشخصی داشته باشد و دو ورودی واقعاً با یکدیگر همتراز باشند.
هشدار: اگر ترتیب دادهها تغییر کند یا تعداد آیتمهای دو ورودی متفاوت باشد، نتیجه ممکن است مطابق انتظار شما نباشد. در چنین شرایطی، تطبیق بر اساس شناسه یکتا معمولاً مطمئنتر است.
۳. افزودن آیتمهای دو ورودی به یکدیگر
گاهی نمیخواهیم فیلدهای دو ورودی را در یک آیتم ترکیب کنیم؛ بلکه میخواهیم آیتمهای هر دو ورودی را در یک مجموعه قرار دهیم.
برای مثال، یک مسیر فهرست مشتریان فعال را تولید میکند و مسیر دیگر فهرست مشتریان جدید را. در صورت مناسببودن ساختار و نیاز Workflow، میتوان از حالتهایی مانند Append استفاده کرد تا آیتمهای ورودی اول و دوم بهصورت متوالی در خروجی قرار بگیرند.
این روش با ترکیب فیلدهای دو آیتم متفاوت است.
در Append، معمولاً هر آیتم هویت مستقل خود را حفظ میکند؛ بنابراین نباید انتظار داشته باشید اطلاعات دو آیتم بهصورت خودکار در یک شیء واحد ادغام شوند.
۴. نگهداشتن نتایج منطبق یا نامنطبق
در برخی حالتهای ترکیب، میتوان تعیین کرد کدام گروه از نتایج در خروجی باقی بمانند؛ برای مثال، فقط آیتمهای منطبق یا آیتمهایی که در یک ورودی معادل ندارند.
این قابلیت برای بررسی تفاوت دادههای دو سیستم بسیار مفید است.
فرض کنید شناسه محصولات در سیستم فروشگاه و سیستم انبار را مقایسه میکنید. میتوانید بهدنبال محصولاتی باشید که در هر دو سیستم وجود دارند یا محصولاتی را پیدا کنید که فقط در یکی از آنها ثبت شدهاند.
گزینههای دقیق این بخش به نسخه و حالت انتخابشده Merge بستگی دارد. قبل از استفاده در یک فرآیند واقعی، حتماً خروجی را با دادههای آزمایشی بررسی کنید.
مثال عملی: ترکیب اطلاعات مشتری و سفارش
در این بخش، یک سناریوی واقعیتر را بررسی میکنیم.
فرض کنید یک سیستم فروشگاهی داریم که اطلاعات مشتری و سفارش را از دو منبع جداگانه دریافت میکند.
منبع اول، اطلاعات مشتری را برمیگرداند:
{
"customer_id": 205,
"full_name": "Sara Mohammadi",
"mobile": "09120000000"
}
منبع دوم، اطلاعات سفارش را برمیگرداند:
{
"customer_id": 205,
"order_number": "ORD-9002",
"total_price": 1450000,
"status": "paid"
}
هدف این است که یک خروجی واحد برای گزارشگیری یا ارسال اعلان بسازیم.
گام اول: دریافت اطلاعات مشتری
در یک Workflow واقعی، میتوانید اطلاعات مشتری را از API، پایگاه داده یا منبع دیگری دریافت کنید.
برای نمونه، اگر اطلاعات از API دریافت میشود، میتوان از HTTP Request استفاده کرد.
گام دوم: دریافت اطلاعات سفارش
در مسیر دوم، اطلاعات سفارش را از منبع مربوط دریافت کنید.
مطمئن شوید که هر دو مجموعه داده شامل شناسه قابلاعتماد مشتری هستند.
گام سوم: ترکیب دو مجموعه داده
هر دو مسیر را به ورودیهای نود Merge متصل کنید.
حالت Combine و روش تطبیق بر اساس فیلد را انتخاب کنید و customer_id را بهعنوان فیلد مشترک در نظر بگیرید.
گام چهارم: بررسی خروجی
اگر دو ورودی حاوی اطلاعات متناظر برای مشتری شماره 205 باشند، خروجی میتواند شامل اطلاعات زیر باشد:
{
"customer_id": 205,
"full_name": "Sara Mohammadi",
"mobile": "09120000000",
"order_number": "ORD-9002",
"total_price": 1450000,
"status": "paid"
}
اکنون میتوانید این خروجی را به نودهای بعدی ارسال کنید؛ برای مثال:
- ارسال پیامک ثبت یا پرداخت سفارش
- ثبت گزارش در Google Sheets
- ارسال اطلاعات به یک API دیگر
- تولید گزارش فروش
- ذخیره اطلاعات تکمیلی در پایگاه داده
اگر اطلاعات مشتری یا سفارش پیدا نشود، باید با توجه به نیاز سیستم مشخص کنید که آن آیتم حذف شود، جداگانه بررسی شود یا به مسیر خطایابی منتقل شود.
تفاوت Merge با اتصال ساده نودها چیست؟
در n8n، اتصال یک نود به نود دیگر به این معنی است که داده از یک مرحله به مرحله بعد منتقل میشود.
اما Merge برای ترکیب یا مدیریت دادههای چند ورودی طراحی شده است.
برای مثال، اگر نود A به نود B متصل باشد، خروجی A به B میرسد. این اتصال بهخودیخود به معنای ترکیب دادههای B با خروجی یک مسیر مستقل دیگر نیست.
زمانی که دو مجموعه داده مستقل دارید و لازم است آنها را در یک مرحله کنار هم قرار دهید، معمولاً باید از نودی مانند Merge استفاده کنید.
تفاوت Merge با Switch در n8n
Switch و Merge هر دو در Workflowهای چندمسیره کاربرد دارند، اما وظایف متفاوتی دارند.
| ویژگی | Switch | Merge |
|---|---|---|
| کاربرد اصلی | انتخاب یا مسیریابی بر اساس شرط | ترکیب یا مدیریت دادههای چند ورودی |
| هدف | فرستادن داده به مسیر مناسب | ایجاد خروجی بر اساس ورودیهای مختلف |
| مثال | تقسیم سفارشها بر اساس وضعیت پرداخت | ترکیب اطلاعات سفارش و مشتری |
| تعداد ورودی | معمولاً یک ورودی اصلی برای بررسی | چند ورودی برای ترکیب دادهها |
| نقش در Workflow | تصمیمگیری و مسیریابی | ادغام یا هماهنگکردن دادهها |
برای مثال، اگر بخواهید سفارشها را بر اساس وضعیت پرداخت به چند مسیر هدایت کنید، Switch مناسب است.
اما اگر بخواهید اطلاعات سفارش را با اطلاعات مشتری ترکیب کنید، Merge انتخاب مناسبتری خواهد بود.
در یک Workflow پیچیده، حتی ممکن است ابتدا با Switch دادهها را مسیریابی کنید و سپس در مرحله دیگری با Merge اطلاعات لازم را ترکیب کنید؛ البته نحوه اتصال مسیرها باید با منطق اجرای Workflow سازگار باشد.
نکات مهم برای استفاده حرفهای از Merge
۱. از شناسه مناسب برای تطبیق استفاده کنید
اگر دو مجموعه داده شناسه مشترک دارند، بهتر است از همان شناسه برای تطبیق استفاده کنید.
فیلدهایی مانند نام یا عنوان محصول ممکن است تکراری یا دارای تفاوت در فاصلهها و حروف باشند. شناسه یکتا معمولاً گزینه مطمئنتری است.
۲. نام فیلدهای تکراری را بررسی کنید
اگر هر دو ورودی فیلدی با نام یکسان داشته باشند، مانند status یا name، باید بررسی کنید که تنظیمات Merge در مواجهه با این فیلدها چه رفتاری دارند.
در صورت نیاز، قبل از Merge با Edit Fields نام فیلدها را مشخصتر کنید؛ برای مثال:
customer_statusorder_status
این کار به خوانایی خروجی و جلوگیری از ابهام کمک میکند.
۳. تعداد آیتمهای ورودی را کنترل کنید
دو ورودی ممکن است تعداد آیتمهای متفاوتی داشته باشند. همچنین ممکن است یک شناسه در یک ورودی چند بار تکرار شده باشد.
پیش از انتخاب روش ترکیب، بررسی کنید که تعداد آیتمها و رابطه میان رکوردها با منطق موردنظر شما سازگار است.
۴. خروجی را با دادههای واقعی آزمایش کنید
یک مثال ساده ممکن است بهخوبی کار کند، اما داده واقعی شامل فیلدهای خالی، شناسههای تکراری یا رکوردهای نامنطبق باشد.
برای آزمایش کامل، دستکم این موارد را بررسی کنید:
- دو آیتم با شناسه یکسان
- دو آیتم با شناسه متفاوت
- نبودن فیلد تطبیق در یکی از ورودیها
- وجود چند آیتم با شناسه تکراری
- تفاوت تعداد آیتمهای دو ورودی
۵. اطلاعات حساس را در خروجی غیرضروری قرار ندهید
اگر دادهها شامل شماره تماس، اطلاعات پرداخت یا سایر اطلاعات حساس هستند، فقط فیلدهای موردنیاز را به مراحل بعدی ارسال کنید.
برای مثال، اگر هدف ارسال اعلان وضعیت سفارش است، احتمالاً نیازی به انتقال تمام اطلاعات حساب مشتری به نود ارسال پیام وجود ندارد.
۶. به رفتار اجرای مسیرها توجه کنید
در Workflowهای چندمسیره، نحوه اجرای نودهای قبلی و زمان آمادهشدن ورودیها اهمیت دارد.
اگر یک ورودی هنوز دادهای تولید نکرده یا مسیر مربوط به آن اجرا نشده باشد، خروجی Merge ممکن است با انتظار شما متفاوت باشد.
برای بررسی این وضعیت، اجرای نودهای قبلی، وضعیت هر ورودی و تنظیمات حالت انتخابشده را بررسی کنید.
خطاهای رایج هنگام استفاده از Merge در n8n
خطای اول: خروجی Merge خالی است
یکی از دلایل احتمالی این است که هیچ آیتمی مطابق شرایط تطبیق پیدا نکرده است.
برای مثال، یک ورودی دارای customer_id برابر 101 است، اما ورودی دیگر شناسه 102 دارد.
راهحل:
- خروجی هر دو نود ورودی را جداگانه بررسی کنید.
- مطمئن شوید فیلد تطبیق در هر دو ورودی وجود دارد.
- مقدار واقعی شناسهها را مقایسه کنید.
- حالت و تنظیمات Merge را بررسی کنید.
- یک مثال ساده با شناسه یکسان آزمایش کنید.
خطای دوم: بعضی فیلدها در خروجی دیده نمیشوند
ممکن است فیلدهای همنام یا تنظیمات مربوط به ترکیب دادهها بر نتیجه تأثیر گذاشته باشند.
راهحل: خروجی هر ورودی را بررسی کنید و در صورت نیاز، قبل از Merge نام فیلدهای تکراری را با Edit Fields تغییر دهید.
خطای سوم: آیتمها اشتباه با یکدیگر ترکیب میشوند
اگر از روش ترکیب بر اساس موقعیت استفاده کنید، ترتیب آیتمها اهمیت دارد. اگر دادهها همتراز نباشند، ممکن است اطلاعات نامرتبط کنار هم قرار گیرند.
راهحل: اگر شناسه یکتا در اختیار دارید، در صورت تناسب با نیاز Workflow، ترکیب بر اساس فیلد مشترک را انتخاب کنید.
خطای چهارم: خروجی تعداد آیتمهای غیرمنتظرهای دارد
تعداد خروجی به روش ترکیب، تعداد آیتمهای هر ورودی، تعداد تطبیقها و تنظیمات نود بستگی دارد.
راهحل: ابتدا خروجی دو ورودی را بررسی کنید و سپس نتیجه را با رفتار مورد انتظار در حالت انتخابشده مقایسه کنید. بهخصوص اگر یک شناسه چند بار تکرار شده باشد، نتیجه را با دادههای آزمایشی بررسی کنید.
خطای پنجم: Workflow منتظر ورودی دیگر میماند یا نتیجه ناقص است
در بعضی سناریوها، یک مسیر داده تولید نمیکند یا اجرای آن به پایان نمیرسد. این وضعیت میتواند بر نتیجه Merge اثر بگذارد.
راهحل: وضعیت اجرای مسیرهای قبلی را بررسی کنید. مطمئن شوید هر دو ورودی موردنیاز بهدرستی به Merge متصل شدهاند و منطق Workflow برای حالت نبود داده مشخص است.
پرسشهای متداول درباره Merge در n8n
نود Merge در n8n چه کاری انجام میدهد؟
Merge برای ترکیب یا مدیریت دادههای دریافتشده از چند ورودی استفاده میشود. بسته به حالت انتخابشده، میتوان آیتمها را بر اساس فیلد مشترک یا موقعیت ترکیب کرد یا آنها را به شکلهای دیگری کنار هم قرار داد.
آیا میتوان با Merge دو API را ترکیب کرد؟
بله. اگر دو API اطلاعات مرتبط تولید کنند، میتوانید خروجی آنها را با Merge ترکیب کنید. برای این کار باید روش مناسب ترکیب و در صورت نیاز، فیلد مشترک قابلاعتماد را انتخاب کنید.
تفاوت Combine و Append در Merge چیست؟
در حالت Combine، هدف ترکیب دادهها یا آیتمهای ورودی بر اساس روش انتخابشده است. در حالت Append، هدف معمولاً قرار دادن آیتمهای ورودی پشت سر یکدیگر در یک مجموعه خروجی است؛ نه ادغام فیلدهای آیتمهای متناظر در یک شیء.
آیا برای استفاده از Merge باید فیلد مشترک داشته باشیم؟
خیر. در بعضی حالتها میتوان بر اساس موقعیت آیتمها ترکیب انجام داد یا آیتمها را به یک مجموعه اضافه کرد. اما برای تطبیق منطقی رکوردهای مرتبط، داشتن یک شناسه مشترک مناسب است.
چرا Merge بعضی آیتمها را ترکیب نمیکند؟
ممکن است مقادیر فیلد تطبیق یکسان نباشند، فیلد موردنظر در یکی از ورودیها وجود نداشته باشد یا تنظیمات انتخابشده با ساختار دادهها سازگار نباشند. خروجی هر ورودی و تنظیمات نود را بررسی کنید.
آیا Merge جایگزین Switch است؟
خیر. Switch برای مسیریابی دادهها بر اساس شرط استفاده میشود؛ Merge برای ترکیب یا مدیریت دادههای چند ورودی کاربرد دارد. این دو نود وظایف متفاوتی دارند.
آیا Merge میتواند دادههای بیش از دو مسیر را ترکیب کند؟
بسته به حالت و تنظیمات نود، امکان کار با چند ورودی وجود دارد. تعداد ورودیهای قابلاستفاده و نحوه تنظیم آنها را در نسخه n8n خود بررسی کنید.
جمعبندی
نود Merge یکی از ابزارهای مهم برای ساخت Workflowهای کاربردی در n8n است. زمانی که دادهها از چند منبع یا مسیر مختلف دریافت میشوند، این نود کمک میکند آنها را بر اساس نیاز فرآیند ترکیب یا مدیریت کنید.
برای استفاده صحیح از Merge، باید تفاوت حالتهای ترکیب داده را بشناسید، فیلدهای مناسب برای تطبیق انتخاب کنید، نام فیلدهای تکراری را مدیریت کنید و خروجی را با دادههای واقعی آزمایش کنید.
اگر قصد دارید اتوماسیونهایی مانند مدیریت سفارش، گزارشگیری، همگامسازی اطلاعات محصولات یا اتصال چند API بسازید، یادگیری Merge به شما کمک میکند Workflowهای منظمتر و قابلنگهداریتری طراحی کنید.
در مقاله بعدی، به سراغ Loop Over Items در n8n میرویم و یاد میگیریم چگونه مجموعهای از دادهها را بهصورت حلقهای پردازش کنیم.





