مدیریت دادهها از منابع مختلف همواره یکی از چالشهای اصلی است. Merge Node در n8n این امکان را فراهم میکند تا اطلاعات از مسیرهای مختلف به شکلی منظم، دقیق و انعطافپذیر هماهنگ شوند.
آموزش گامبهگام merge در n8n
اکنون برای آموزش این بخش و درک بهتر، با یک مثال ساده پیش میرویم: فرض کنید یک لیست از دانشآموزان داریم که شامل مشخصاتی مانند نام، نمره، وضعیت فعال و تاریخ تولد است. حالا میخواهیم این دادهها را به دو گروه تقسیم کنیم و سپس این دو گروه را با هم ترکیب کنیم تا یک لیست نهایی داشته باشیم که بتوان از آن برای گزارشگیری، ارسال به سیستم دیگر یا ذخیره در پایگاه داده استفاده کرد.
بررسی حالتهای مختلف Merge Node در n8n
Merge Node در n8n ابزار بسیار قدرتمندی برای ترکیب چند مجموعه داده است. بسته به نیاز و هدف، میتوان دادهها را به روشهای مختلف ادغام کرد. در ادامه تمام حالتهای Merge Node را بررسی میکنیم و با مثال عملی نشان میدهیم چگونه خروجیها شکل میگیرند.
۱. Append
در حالت Append، تمام دادههای مسیرهای ورودی پشت سر هم اضافه میشوند. حتی اگر یک دانشآموز در هر دو مسیر باشد، دوباره تکرار میشود. هیچ فیلتری یا ترکیبی انجام نمیشود.
مثال عملی:
مسیر ۱: دانشجویانی که درسهای اصلی (Core) ثبتنام کردهاند
| دانشجو | درس |
|---|---|
| علی | ریاضی ۱ |
| سارا | فیزیک ۱ |
| رضا | شیمی ۱ |
مسیر ۲: دانشجویانی که درسهای اختیاری (Elective) ثبتنام کردهاند
| دانشجو | درس |
|---|---|
| علی | برنامهنویسی مقدماتی |
| سارا | زبان انگلیسی ۱ |
| نیما | مدیریت ۱ |
برای روشنتر شدن موضوع، همین مثال را در قالب یک ورکفلو در n8n اجرا کردهایم:

کاربرد Append:
وقتی میخواهید همه دادهها را جمع کنید و از بین رفتن یا حذف شدن هیچ رکوردی برایتان مهم نیست. مثلاً ساخت یک لیست جامع از مشتریان فعال و مشتریان VIP.
Combine-2 در n8n
Combine برای ترکیب دادهها به روشهای هوشمندانه است، یعنی برخلاف Append، دادهها بر اساس ارتباط یا ترتیب با هم ادغام میشوند.
-
Merge by Fields (Matching Fields)
در این حالت وقتی اطلاعات یک دانشجو در دو مسیر متفاوت وجود دارد، Merge by Fields آنها را بر اساس یک فیلد مشترک (مثلاً student) در یک رکورد ادغام میکند.
مثال عملی:
مسیر ۱: لیست دروس ثبتنامشده توسط دانشجویان
| دانشجو | درس |
|---|---|
| علی رضایی | ریاضی ۱ |
| سارا محمدی | فیزیک ۱ |
| رضا احمدی | شیمی ۱ |
| نرگس کریمی | آمار و احتمال |
| مهدی جعفری | برنامهنویسی ۱ |
مسیر ۲: نمرات دانشجویان در همان ترم
| دانشجو | درس |
|---|---|
| علی رضایی | ریاضی ۱ |
| سارا محمدی | فیزیک ۱ |
| رضا احمدی | شیمی ۱ |
| نرگس کریمی | آمار و احتمال |
| مهدی جعفری | برنامهنویسی ۱ |
اگر دانشجویی در هر دو مسیر باشد، Merge Node ویژگیهایش را ادغام میکند. مانند:

| دانشجو | درس | نمره |
|---|---|---|
| علی رضایی | ریاضی ۱ | ۱۸ |
| سارا محمدی | فیزیک ۱ | ۱۶ |
| رضا احمدی | شیمی ۱ | ۱۹ |
| نرگس کریمی | آمار و احتمال | ۱۷ |
| مهدی جعفری | برنامهنویسی ۱ | ۲۰ |
کاربرد Merge by Fields :
وقتی میخواهید اطلاعات پراکنده مربوط به یک موجودیت (مثل دانشآموز یا مشتری) را یکی کنید و یک نمای کامل از او داشته باشید.
-
Merge by Position
در این حالت، دادهها صرفاً بر اساس ترتیب (ایندکس) در هر مسیر ترکیب میشوند. یعنی آیتم اول لیست اول با آیتم اول لیست دوم ادغام میشود، بعدیها هم به همین ترتیب (Index 0 با ۰، Index 1 با ۱، و …).
اگر یکی از مسیرها تعداد آیتم بیشتری داشته باشد، بقیه آیتمهای بدون جفت نادیده گرفته میشوند.
مثال عملی :
-
یک کلاس دانشگاهی (ریاضی ۱)
-
میخواهیم وضعیت حضور/غیاب دانشجویان در جلسه اول را با اطلاعات پایه آنها ترکیب کنیم.
-
ترتیب دانشجویان در هر دو لیست یکسان است
مسیر ۱ : اطلاعات پایه دانشجویان
| دانشجو | شماره دانشجویی |
|---|---|
| علی رضایی | ۱۰۱ |
| سارا محمدی | ۱۰۲ |
| رضا احمدی | ۱۰۳ |
| نرگس کریمی | ۱۰۴ |
| مهدی جعفری | ۱۰۵ |
مسیر ۲ : وضعیت حضور جلسه اول
| دانشجو | حضور |
|---|---|
| علی رضایی | حاضر |
| سارا محمدی | حاضر |
| رضا احمدی | غایب |
اگر دانشجویی در هر دو مسیر باشد، Merge ویژگیهایش را ادغام میکند. مانند:
| دانشجو | شماره دانشجویی | حضور |
|---|---|---|
| علی رضایی | ۱۰۱ | حاضر |
| سارا محمدی | ۱۰۲ | حاضر |
| رضا احمدی | ۱۰۳ | غایب |
کاربرد Merge by Position در n8n:
وقتی دادهها از دو سیستم متفاوت میآیند ولی ترتیبشان یکسان است (مثلاً لیست دانشآموزان از یک فایل و لیست وضعیت حضور از فایل دیگر).
-
All Possible Combinations
در این حالت، هر آیتم مسیر اول با تمام آیتمهای مسیر دوم ترکیب میشود و همه ترکیبهای ممکن ساخته میشوند.
مثال عملی:
-
هر دانشجو با تمام درسهای اختیاری موجود ترکیب شود.
- مشابه کاری که در انتخاب واحد دانشگاهی انجام میشود، برای بررسی گزینهها یا ظرفیت کلاس.
مسیر ۱ : دانشجویان
| دانشجو |
|---|
| علی رضایی |
| سارا محمدی |
| رضا احمدی |
مسیر ۲ : درسهای اختیاری
| درس اختیاری |
|---|
| هوش مصنوعی ۱ |
| شبکههای کامپیوتری |
| طراحی وب ۱ |

کاربرد All Possible Combinations :
این حالت تمام ترکیبهای ممکن بین دو مجموعه داده را میسازد و هیچ موردی از دست نمیرود.
مثلاً میتوانید برای همه محصولات، هر رنگ و هر سایز را با هم ترکیب کنید، یا هر کارمند را با تمام پروژههای موجود جفت کنید، یا هر مشتری را با همه کمپینهای تبلیغاتی منطبق کنید، به طوری که هیچ ترکیبی از قلم نیفتد.
SQL Query -3 (در Merge Node)
گاهی نیاز دارید دادهها را دقیقاً مثل یک کوئری SQL ترکیب کنید و کنترل کاملی روی نحوه ادغام داشته باشید. Merge Node در حالت SQL Query به شما اجازه میدهد شرایط پیچیده را روی چند مسیر ورودی اعمال کنید و فقط رکوردهای موردنظر را بگیرید.
مثال عملی:
فقط دانشجویانی که هم در لیست کل هستند و هم وضعیت فعال دارند را انتخاب کنیم.
مسیر ۱ :همه دانشجویان کلاس
| دانشجو | شماره دانشجویی |
|---|---|
| علی رضایی | ۱۰۱ |
| سارا محمدی | ۱۰۲ |
| رضا احمدی | ۱۰۳ |
| نرگس کریمی | ۱۰۴ |
| مهدی جعفری | ۱۰۵ |
مسیر ۲ :دانشجویان فعال
| دانشجو | وضعیت فعال |
|---|---|
| علی رضایی | فعال |
| رضا احمدی | فعال |
| مهدی جعفری | فعال |
میخواهیم خروجی شامل ویژگی دانشجویانی باشد که هم در لیست کلی هستند و هم فعالاند.
با حالت SQL Query میتوانیم رکوردها را با JOIN و شرطها فیلتر کنیم:

کاربردSQL Query :
-
وقتی نیاز دارید دادهها را بر اساس شرایط دقیق و ترکیبی فیلتر یا ادغام کنید.
-
مثل گرفتن مشتریانی که هم فعال هستند و هم خرید اخیر داشتهاند
-
گرفتن سفارشهایی که هم در یک لیست موجودی هستند و هم در لیست ارسال قرار دارند
-
Choose Branch -4 در n8n
این حالت دادهها را ترکیب نمیکند، بلکه تصمیم میگیرد کدام مسیر ورودی به خروجی برود. یعنی به جای ادغام یا ترکیب دادهها، شما مشخص میکنید فقط یکی از مسیرهای ورودی ادامه پیدا کند.
مثال عملی:
- ارسال پیام یا اطلاعرسانی فقط به دانشجویان فعال، نادیده گرفتن غیرفعالها.
مسیر ۱ : دانشجویان فعال
| student | studentId | active |
|---|---|---|
| علی رضایی | ۱۰۱ | فعال |
| رضا احمدی | ۱۰۳ | فعال |
| مهدی جعفری | ۱۰۵ | فعال |
مسیر ۲ : دانشجویان غیرفعال
| student | studentId | active |
|---|---|---|
| سارا محمدی | ۱۰۲ | غیرفعال |
| نرگس کریمی | ۱۰۴ | غیرفعال |
با استفاده از Choose Branch میتوانید تعیین کنید خروجی فقط از مسیر اول بیاید، یا فقط از مسیر دوم(Input 1 یا Input 2.) بدون اینکه دادهها با هم ترکیب شوند.

کاربرد Choose Branch :
-
وقتی میخواهید بر اساس شرایط خاص فقط یکی از مسیرها ادامه پیدا کند.
-
مثال: ارسال ایمیل اطلاعرسانی فقط برای کاربران فعال و نادیده گرفتن غیرفعالها.
-
یا اعمال تغییرات فقط روی رکوردهای انتخاب شده، بدون دستکاری دیگر دادهها.
سخن پایانی
Merge Node فراتر از یک ابزار ساده برای ادغام دادههاست؛ با تسلط بر حالتهای مختلف آن میتوانید سناریوهای پیشرفتهتری خلق کنید، از فیلتر دقیق اطلاعات گرفته تا ساخت همه ترکیبهای ممکن و هماهنگسازی خودکار دادهها از منابع مختلف. این ابزار به شما امکان میدهد جریان اطلاعات را کاملاً کنترل کرده، فرآیندهای اتوماسیون را هوشمندتر و گزارشهای تحلیلی را دقیقتر و قابل اعتمادتر بسازید. با Merge Node، مدیریت دادهها ساده، منعطف و قدرتمند میشود.