Add Result to Output

Add Result to Output — це ключовий блок у флоу Main Action, який відповідає за передачу результатів виконання основної логіки в Output Flow. Саме через нього дані з Main Action «потрапляють» у заздалегідь описану структуру Output і стають доступними кінцевому користувачу або зовнішній системі.
Навігація
- Призначення та архітектурна логіка
- Налаштування блоку
- Режими передачі даних (Type)
- Приклади використання
HTTP + Add Result to Output
Loop + Add Result to Output
Object Builder + Add Result to Output - FAQ
Призначення та архітектурна логіка
─────────────────────────────────────────────────────────────-
Завдання блоку — передати дані, отримані або сформовані під час виконання логіки, у Output Flow, де вони будуть відображені або повернуті як результат інтеграції.
Для коректного налаштування блоку важливо розуміти унікальний порядок виконання інтеграції на DEV-платформі:
1. Output (Формування схеми) ➔ 2. Main Action (Виконання логіки)
На перший погляд це виглядає неінтуїтивно, але це свідоме архітектурне рішення:
- Output Flow запускається першим, щоб створити «Контракт даних» — технічне завдання, яке описує, які саме поля (Keys) та типи даних очікує отримати система.
- Main Action виконує бізнес-логіку (запити, розрахунки).
- Add Result to Output в кінці Main Action «заповнює» цей контракт.
Важливо: Дані передаються успішно лише тоді, коли ключі (Keys) у блоці Add Result to Output точно збігаються з ключами, налаштованими в Output Flow.
Налаштування блоку
─────────────────────────────────────────────────────────────-

Блок доступний виключно в Main Action. Його інтерфейс змінюється залежно від обраного типу передачі даних.
1 -> Type: Випадаючий список режимів роботи.
2 -> Results / Object to add to output: Область налаштування даних залежно від типу.
3 -> Перемикач режиму полів TXT / EXP:
Простий варіант (TXT режим) - все обробляється як текст.
Просунутий варіант (EXP режим) - вміст обробляється як повноцінний вираз (Expression). Дозволяє застосувати логічні оператори та функції безпосередньо в полі вибору. Наприклад, «/» у режимі TXT - це роздільник, а в режимі EXP - ділення.
Режими передачі даних (Type)
─────────────────────────────────────────────────────────────-
Вибір типу залежить від структури даних, яку ви маєте на момент завершення інтеграції.
Доступні чотири режими роботи.

1. Add whole object (1st level)
Найрозумніший спосіб передачі об'єктів (наприклад, повної відповіді API).
- Як це працює: Система аналізує вхідну змінну. Якщо вона знаходить вкладені об'єкти до 2-го рівня вкладеності, вона автоматично створює в Output Flow поле типу Struct.
- Результат в Output: Ви отримаєте всі поля 1-го рівня вкладеності + для вкладених об'єктів поля-контейнери, всередині яких будуть розкладені властивості (
Struct properties). - Коли використовувати: Коли ви хочете зберегти структуру даних (JSON) і зручно працювати з нею як з об'єктом, а не набором розрізнених рядків.

2. Add whole object (recursive)
Специфічний режим для передачі повного об'єкта. Працює схоже до 1st Level, але використовується для передачі обʼєкта без структурної інтерпретації, що може бути корисним для складних інтеграцій, де важливо зберегти "сирий" вигляд об'єкта для специфічного парсингу.

3. Construct object (basic) - Плоский список
Цей режим працює за принципом Flattening (Розгортання).
- Як це працює: Ви додаєте змінну, і система "розбирає" її на найдрібніші складові, перетворюючи все на текстові поля.
- Результат в Output: Вкладеність перетворюється на довгі назви ключів через крапку:
body.statuses.0.channel
body.statuses.0.status
body.statuses.0.date - Коли використовувати: Якщо вам потрібно "витягнути" конкретне глибоке значення як окрему змінну, або якщо структура дуже проста і не потребує вкладеності.

4. Construct object (advanced) - Іменована структура
Дає повний контроль над назвою кореневого ключа.
- Як це працює: Ви вручну задаєте Key (ім'я поля) і Value (змінну).
- Результат в Output: Система створює одне головне поле з вашим іменем (наприклад,
my_custom_data) типу Struct. Всі дані зі змінної стають властивостями цієї структури. - Коли використовувати: Коли вам потрібно перейменувати відповідь API або покласти дані у поле зі специфічною назвою, якої вимагає клієнтська частина.

Приклади використання
─────────────────────────────────────────────────────────────-
HTTP Request + Add Result to Output - Пряма передача відповіді API.
Найшвидший спосіб вивести дані. Використовуйте режим Add whole object (1st level), щоб платформа автоматично розпізнала JSON-структуру відповіді та створила відповідні поля типу Struct у вашому Output Flow. Це дозволяє уникнути ручного створення десятків полів.

Loop + Add Result to Output - Ітеративне наповнення списку
Блок Add Result to Output часто використовується всередині блоку Loop, щоб сформувати список результатів (масив). Розмістіть блок Add Result to Output всередині циклу: кожна ітерація буде додавати новий об'єкт до фінального списку результатів.

Object Builder + Add Result to Output - Передача трансформованих даних
Ідеально, коли дані з API потребують "очищення" або перепакування перед показом користувачу. Спершу сформуйте об'єкт із потрібною логікою в Object Builder, а потім передайте результат. Це гарантує, що в Output потрапить лише структурована та валідна інформація.


FAQ
─────────────────────────────────────────────────────────────-
1. Де знайти дані, передані цим блоком?
Дані потрапляють у «чергу» виводу. Щоб їх побачити, у флоу Output потрібно використати функцію Import, яка підтягне структуру з Main Action.
2. Чи можна використовувати кілька блоків Add Result to Output?
Так. Ви можете викликати цей блок у різних гілках логіки IF , якщо вам треба різна структура для виводу даних в залежності від умови.
3. Чому мій результат пустий, хоча блок Add Result to Output налаштований?
Мапінг відбувається за назвою. Якщо в Add Result to Output ви назвали ключ "lead_id", а в Output Flow ви чекаєте на "id_lead", дані не відобразяться. Ключі повинні бути ідентичними.
4. В чому різниця між Basic та Advanced конструктором?
У Basic ви не пишете ключ — система бере назву самої змінної. У Advanced ви самі вирішуєте, як назвати поле в результаті, незалежно від імені змінної.