Нода Merge в n8n: об'єднання двох гілок без дублікатів
Посібник з ноди Merge в n8n: як об'єднати дві гілки без дублікатів і втрачених елементів, враховуючи збіг полів і конфлікти назв.

Перевірено за наведеними джерелами .
Передумови: що потрібно перед об'єднанням двох гілок
Перш ніж з'єднати дві гілки в одну, переконайтеся, що нода Merge в n8n отримує потрібні дані для узгодження. Офіційна документація n8n описує ноду Merge як стандартний спосіб об'єднати дані з окремих гілок або нод назад в один потік — незалежно від того, чи стався поділ раніше у workflow, чи ці дві ноди взагалі ніколи не належали до однієї гілки.
Sources: Merge data | Build | n8n Docs
Мета: об'єднати дві гілки в один точний потік
Мету легко сформулювати, але легко й помилитися: взяти дві гілки workflow і отримати один потік елементів, у якому нічого не дублюється і нічого з жодної гілки непомітно не зникає. Нода Merge в n8n створена саме для цього завдання, але саме від вибраних вами налаштувань залежить, чи отримаєте ви чисте об'єднання, чи потік, повний дублікатів або втрачених елементів.
Sources: Merge data | Build | n8n Docs
Кроки: налаштування ноди Merge в n8n

Почніть із вирішення того, як дві гілки мають співвідноситися одна з одною. Нода Merge в n8n пропонує налаштування Mode із кількома окремими поведінками, і саме вибраний вами режим визначає, чи отримаєте ви дублікати елементів, втрачені елементи, чи чисте об'єднання двох гілок.
| Режим | Що він робить | Найкраще використовувати, коли |
|---|---|---|
| Append | Поміщає кожен елемент з обох гілок в один список, один за іншим | Вам потрібні просто всі елементи з обох гілок, без узгодження за ключем чи позицією |
| Combine by Matching Fields | Парує елементи з кожної гілки, що мають однакове значення у вибраному полі | Обидві гілки представляють одні й ті самі записи, наприклад за ID або email, і ви хочете отримати один об'єднаний запис на кожен збіг |
| Combine by Position | Парує перший елемент Input 1 з першим елементом Input 2, другий із другим і так далі | Обидві гілки надійно видають однакову кількість елементів у тому самому порядку |
Після того як ви обрали Combine, налаштуйте його свідомо, а не приймайте перший варіант, який побачите.
Покрокове налаштування ноди Merge
- Оберіть режим: Вирішіть, чи потрібен вам Append, Combine by Matching Fields, чи Combine by Position, залежно від того, як пов'язані дві гілки.
- Налаштуйте поля збігу: Для Combine by Matching Fields оберіть поле або поля, що ідентифікують один і той самий запис в обох гілках.
- Оберіть налаштування Multiple Matches: Вирішіть, чи включати всі збіги, чи лише перший збіг для кожної пари, що збіглася.
- Перевірте на конфлікти назв полів: Перед об'єднанням перевірте, чи є поля з однаковою назвою в обох гілках.
Sources: Merge | Nodes | n8n Docs, Merge data | Build | n8n Docs, Merge Node Only Outputting 1 Instead of 2 Items - Questions - n8n Community
Очікувані результати: як виглядає правильно об'єднаний вивід
Коли нода Merge в n8n налаштована правильно, кількість елементів на виході відповідає тому, що очікується від обраного вами режиму: Append дає суму кількостей елементів обох гілок, Combine by Matching Fields дає один елемент на кожну пару, що збіглася, а Combine by Position дає один елемент на кожну позицію. Значення полів мають надходити з того входу, який ви мали на увазі, і жоден запис не повинен з'являтися більше одного разу, якщо тільки ви свідомо не обрали налаштування, що включає всі збіги.
Sources: Merge | Nodes | n8n Docs, Merge data | Build | n8n Docs, Merge Node Only Outputting 1 Instead of 2 Items - Questions - n8n Community
Усунення проблем із дублікатами елементів

Якщо об'єднаний вивід має більше елементів, ніж ви очікували, спершу перевірте налаштування Multiple Matches. Include All Matches спеціально розроблено так, щоб виводити окремий елемент для кожного знайденого збігу, тож повторюване значення поля в будь-якій із гілок навмисно, а не випадково, створює кілька елементів на виході.
Дублікати також з'являються, коли самі вхідні дані вже містять дублікати записів ще до того, як вони потрапляють у Merge. В одному задокументованому випадку у workflow на n8n Cloud, що працював на версії 1.67.1, користувач об'єднував дані за Matching Fields після кроків Split Out і HTTP Request і виявив на виході більше елементів, ніж на вході; модератор спільноти встановив, що причиною були дублікати записів, які вже були присутні в обох вхідних гілках, оскільки нода Merge за задумом не дедуплікує свої входи. Перш ніж вважати винною ноду, перевірте, що насправді надсилає кожна гілка.
Sources: Merge | Nodes | n8n Docs, Merge node creating duplicate records - Questions - n8n Community
Усунення проблем із втраченим або зупиненим виводом
Втрачені елементи зазвичай пов'язані з нерівною кількістю елементів на вході. Коли дві гілки, що подаються в Merge, надсилають різну кількість елементів, n8n у режимі Combine обробляє елементи лише до кількості елементів Input 1, тож будь-які зайві елементи в Input 2 понад цю кількість відкидаються. У гілці обговорень спільноти 2023 року було зазначено пов'язаний ризик: якщо кожна гілка гарантовано видає лише один елемент, Combine by Position парує їх чисто, але будь-яка невідповідність у цій кількості непомітно відкидає елемент.
Інший тип збою виглядає як workflow, що ніколи не завершується, а не той, що втрачає дані. Та сама гілка обговорень 2023 року описує дизайн, за якого два окремі тригери запускають кожен свій власний запуск, тож один запуск workflow досягає Merge з даними лише в одній гілці, і нода залишається чекати вхід, якого ніколи не отримає.
Незалежний технічний блог повідомляє, без підтвердження в офіційній документації n8n, що за замовчуванням нода Merge чекає на обидва входи і може зависнути безкінечно, якщо одна гілка законно не видає жодного елемента. Це джерело описує опцію на кшталт 'Only One Input' як спосіб дозволити виконанню продовжуватися лише з одним наявним входом, хоча точна назва цієї опції не підтверджена в офіційній документації, наданій тут.
Sources: Merge | Nodes | n8n Docs, Merge Node Only Outputting 1 Instead of 2 Items - Questions - n8n Community, n8n Merge Node: Combine, Multiplex, Pass-Through Explained | Emil Ingemar Karlsson
Рекомендації для workflow, що належать команді
Кілька звичок допомагають зробити ноду Merge в n8n передбачуваною, коли за workflow відповідає більше однієї людини.
- Починайте з Combine by Matching Fields, коли гілки мають спільний ключ на кшталт ID або email; залишайте Combine by Position для гілок, які гарантовано видають однакову кількість елементів у тому самому порядку
- Перш ніж вважати ноду глючною, перевірте кількість і вміст елементів, що надходять із кожної гілки, оскільки кілька реальних повідомлень про дублікати та втрачені елементи були пов'язані з вихідними даними, а не з самою нодою
- Якщо гілка може законно повертати нуль елементів, спроєктуйте це явно, а не залишайте Merge чекати нескінченно
- Перейменуйте поля з однаковими назвами за допомогою ноди Set або Edit Fields перед об'єднанням, якщо потрібно зберегти значення обох гілок, оскільки Merge за замовчуванням перезаписує однойменні поля з Input 1 значенням з Input 2
- Документуйте, який режим Merge та які опції використовує workflow, щоб наступна людина розуміла очікувану кількість елементів
Одна деталь, яку варто перевірити самостійно: офіційний довідник по ноді Merge, розглянутий тут, не вказує, яке налаштування Multiple Matches є типовим за замовчуванням, тож перевірте це у своєму власному екземплярі ноди, перш ніж на нього покладатися.
Sources: Merge | Nodes | n8n Docs, Merge node creating duplicate records - Questions - n8n Community, Merge Node Only Outputting 1 Instead of 2 Items - Questions - n8n Community, n8n Merge Node: Combine, Multiplex, Pass-Through Explained | Emil Ingemar Karlsson


