n8n Execute Sub-workflow: відпрацюйте контракт даних контакту
Створіть виклик через n8n Execute Sub-workflow і нормалізатор контактів у редакційній вправі та перевірте відсутні значення, типи й кілька елементів.

Перевірено за наведеними джерелами .
Редакційна вправа: визначте контракт даних контакту

Попрактикуйтеся з n8n Execute Sub-workflow: створіть багаторазово використовуваний нормалізатор контактів і окремий батьківський воркфлоу для розробки. Ваше завдання — визначити їхній спільний контракт, реалізувати його та зібрати фактичні вихідні дані або помилки для чотирьох запропонованих тестових випадків. Це редакційна вправа, а не виконане чи перевірене рішення.
Використовуйте власне середовище n8n для розробки, синтетичні контакти й жодних зовнішніх сервісів. Ви вже маєте вміти додавати вузли та зіставляти поля. Побудуйте вправу вручну й використовуйте синхронне виконання; публікація у виробничому середовищі, дозволи, призупинені виконання, маршрутизація до воркфлоу обробки помилок і автоматичне виокремлення наявних вузлів не входять до її обсягу.
Використовуйте запропонований нижче контракт. Значення email і name мають бути обов’язковими й непорожніми; приберіть пробіли на початку та в кінці обох значень і переведіть email у нижній регістр. Лише для цієї вправи вважайте адресу електронної пошти прийнятною, якщо вона містить @ із текстом по обидва боки й не містить пробільних символів. Це навмисно обмежена, а не повноцінна перевірка адреси електронної пошти.
| Напрямок | Поле | Тип | Правило |
|---|---|---|---|
| Вхід | Рядок | Обов’язкове; нормалізувати й перевірити | |
| Вхід | name | Рядок | Обов’язкове; прибрати крайові пробіли |
| Вихід | success | Булеве значення | True лише для коректних даних |
| Вихід | Рядок | Нормалізоване значення або порожній рядок у разі невдачі | |
| Вихід | name | Рядок | Значення без крайових пробілів або порожній рядок у разі невдачі |
| Вихід | error | Рядок | Порожній у разі успіху; причина в разі невдачі |
На нашу думку, опис контракту повернення перед побудовою вузлів робить цю вправу кориснішою: кожна перевірка отримує конкретну ціль.
Побудуйте дочірній воркфлоу з n8n Execute Sub-workflow Trigger

Почніть дочірній воркфлоу з n8n Execute Sub-workflow Trigger й оголосіть email і name як рядкові вхідні параметри. Документація n8n визначає цей тригер як перший вузол дочірнього воркфлоу; оголошені типізовані вхідні дані стають параметрами, які може заповнити батьківський воркфлоу.
Для запропонованої реалізації під’єднайте вузол Code, який перевірятиме й нормалізуватиме кожен елемент, а потім вузол Edit Fields із назвою Return. Послідовність нижче визначає запропоновану логіку. n8n повертає вихідні дані останнього вузла дочірнього воркфлоу, а його рекомендації радять використовувати завершальний вузол Set / Edit Fields, щоб явно задати контракт повернення; це не забезпечує автоматичного дотримання повної схеми вихідних даних.
- Перевірте наявність null, відсутніх значень і значень, що не є рядками, перш ніж викликати рядкові методи.
- Приберіть крайові пробіли з обох рядків, переведіть email у нижній регістр, а потім перевірте, чи значення не порожні та чи відповідає email правилу цієї вправи.
- У разі невдачі сформуйте success зі значенням false, порожні рядки email і name та рядок error із поясненням.
- У разі успіху сформуйте success зі значенням true, нормалізований email, name без крайових пробілів і порожній рядок error.
- Налаштуйте Return так, щоб він повертав лише success, email, name і error.
Для очікуваних помилок валідації зберігайте однакові назви й типи полів. Це відповідає рекомендації n8n використовувати сталу структуру повернення з прапорцем success і полем error.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflowtrigger.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-subworkflows-official/SKILL.md at main · n8n-io/skills · GitHub
Побудуйте батьківський воркфлоу для розробки

Створіть окремий батьківський воркфлоу з Manual Trigger, синтетичними тестовими даними та n8n Execute Sub-workflow. Документація n8n описує Code і Edit Fields як способи створення власних тестових наборів даних. У Execute Sub-workflow виберіть Database / From list, укажіть дочірній воркфлоу та зіставте його оголошені вхідні параметри.
Увімкніть Wait for Sub-Workflow Completion і спочатку вимкніть Attempt to convert types. Очікування дає батьківському воркфлоу змогу продовжити роботу після завершення дочірнього; воно не перевіряє повернуті дані. Почніть із режиму, що передає всі вхідні елементи в одне виконання. Жоден із режимів не гарантує потрібної вам кількості вихідних елементів.
Поля для зіставлення відсутні, коли дочірній воркфлоу використовує Accept all data, тому тут задайте явні типізовані вхідні параметри. Для повторюваності можна закріпити тестові дані під час розробки, але закріплення недоступне у виробничих виконаннях; ці перевірки не дають змоги встановити поведінку у виробничому середовищі.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/work-with-data/pin-and-mock-data.md at main · n8n-io/n8n-docs · GitHub
Перевірте чотири випадки через батьківський воркфлоу

Пропустіть ці запропоновані тестові дані через межу виклику з батьківського воркфлоу й зафіксуйте, що відбувається насправді. Очікувані значення нижче — це цілі вправи, а не результати проведених тестів.
| Випадок | Вхідні дані | Ціль або спостереження |
|---|---|---|
| Коректні дані | email: ' ALICE@EXAMPLE.COM '; name: ' Alice ' | true; alice@example.com; Alice; порожнє поле error |
| Відсутнє name | Коректний email; зіставлення name видалено | false; порожні email/name; error із поясненням |
| Неправильний тип | email: 12345; name: Alice | Зафіксуйте відхилення в батьківському воркфлоу або результат дочірнього |
| Кілька елементів | Два різні коректні контакти | Ціль — два нормалізовані результати в обох режимах виконання |
Документація n8n зазначає, що видалення зіставлення запитаного поля name призводить до передавання null.
У своєму огляді від постачальника за 2026 рік Джаханзаїб Ахмед повідомляє, що під час його тесту в Docker на n8n 2.43.4 числове значення email було відхилене в батьківському воркфлоу за вимкненого перетворення типів; увімкнення перетворення передало його на перевірку в дочірній воркфлоу як рядок. Це результат, про який повідомив автор, а не незалежно перевірена поведінка в різних інсталяціях. Самостійно повторіть перевірку з обома налаштуваннями; за запропонованим правилом для email рядок 12345 має не пройти валідацію. Не припускайте, що відхилення виклику в батьківському воркфлоу перетворюється на рядок із результатом невдачі, сформований дочірнім.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow.md at main · n8n-io/n8n-docs · GitHub, n8n Sub Workflow: Build One and Handle Failures
Розберіть невідповідності та завершіть вправу
Якщо результат відрізняється від вашого контракту, спочатку перевірте оголошені вхідні параметри й зіставлення в батьківському воркфлоу, а потім обробку null і налаштування перетворення типів. Якщо повернутих даних немає, перевірте режим виконання, налаштування очікування та вихідні дані останнього вузла дочірнього воркфлоу. Порівняйте назви полів, типи й кількість елементів у батьківському воркфлоу.
Під час розбору ми радимо розглядати відхилення на межі виклику й невдачу перевірки бізнес-правил окремо: кожне з них по-своєму вказує, де саме контракт не було виконано.
Завершіть вправу, зібравши наведені нижче підтвердження. Для осмислення поясніть, чому відхилений виклик може не мати об’єкта, повернутого дочірнім воркфлоу, і як перетворення типів змінює дані, які отримує ваша перевірка.
Sources: skills/skills/n8n-subworkflows-official/SKILL.md at main · n8n-io/skills · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow.md at main · n8n-io/n8n-docs · GitHub


