Sort

Sort — це блок для впорядкування даних. Він дозволяє відсортувати масив (список) елементів за заданими критеріями: за числом, текстом, напрямком (зростання / спадання), а також зберегти або змінити зв’язок між індексами та значеннями.
Навігація
- Призначення блоку.
- Налаштування блоку.
- Робота з Compare Value {{value}}.
- Механіка сортування.
- Приклади використання.
- FAQ.
Призначення блоку
─────────────────────────────────────────────────────────────-
Блок використовується коли вам потрібно змінити порядок елементів у списку перед їх подальшою обробкою або виводом.
Типові задачі:
- знайти останній або перший елемент (наприклад, найновіший контакт)
- відсортувати список за id, created_at, price, priority
- підготувати дані для коректної ітерації в Loop
- забезпечити стабільний порядок елементів у флоу.
Блок може працювати з будь-якими об’єктами:
контакти, моделі, проєкти, папки, списки, аудиторії тощо.
Налаштування блоку
─────────────────────────────────────────────────────────────-

Інтерфейс блоку вимагає розуміння роботи з масивами.
1 -> Object to sort: Сюди передається масив, який треба відсортувати, зазвичай це масив із попереднього блоку (HTTP Request, JSON Parser, Declare Variable тощо).
- Це має бути список (List), наприклад
[10, 5, 20]або список об'єктів[{id:1}, {id:2}]. - Поле працює виключно в режимі EXP, оскільки воно очікує змінну, а не статичний текст.
2 -> Maintain index association: Перемикач, що впливає на збереження ключів масиву.
- Вимкнено (Сірий): Стандартний режим. Масив переіндексується (0, 1, 2...). Використовуйте це для звичайних списків (може призвести до втрати відповідності між даними).
- Увімкнено (Синій): Режим збереження ключів. Якщо ви сортуєте асоціативний масив, де ключі мають значення, цей режим дозволить зберегти прив'язку "ключ-значення" після зміни порядку (кожен об’єкт залишається цілісним, просто змінюється порядок).
3 -> Sorting options: Тут ви задаєте правила сортування. Може бути одне або декілька.
4 -> Direction: Напрямок сортування.
- Ascending — за зростанням (A → Z, 1 → 9)
- Descending — за спаданням (Z → A, 9 → 1)
5 -> Compare as: Тип даних для порівняння.
- Numbers — для чисел (
price,timestamp, id). - Texts — для рядків (
name,email,status, id (може бути текстове)).
6 -> Compare value: Критерій сортування. Визначає, що саме ми порівнюємо. (Детальніше у наступному розділі).
7 -> Кнопка "+ Add Item": дозволяє додати кілька рівнів сортування (наприклад, спочатку за "status", а потім за "created_at").
Робота з Compare Value {{value}}
─────────────────────────────────────────────────────────────-
Це найважливіше поле налаштувань. Тут ви вказуєте системі, по якому полю або значенню треба сортувати.
Поле працює в режимі EXP і використовує спеціальну змінну {{value}}, яка позначає поточний елемент масиву під час перебору.
Варіант 1. Простий масив
Якщо у вас масив простих чисел або слів: [10, 50, 2, 5]
- Що писати в полі:
{{value}} - Логіка: Система бере саме число і порівнює його з іншими.
Було:

Стало:

Варіант 2. Масив об'єктів (Найчастіший кейс)
Якщо у вас список користувачів, де кожен елемент — це об'єкт:
JSON
Ви не можете сортувати просто по {{value}}, бо незрозуміло, що важливіше: ім'я чи вік.
Було:

Стало:

Приклади для сортування масивів:
- Сортування по ID:
{{value}}['id'] - Сортування по імені:
{{value}}['name'] Сортування по ціні: {{value}}['price']- Сортування по вкладеному полю:
{{value}}['company']['title']
Синтаксис: {{value}}["field_name"] — це стандартний спосіб звернутися до властивості об'єкта під час сортування.
Також тут можна застосовувати функції, наприклад TO_NUMBER({{value}}['price']), щоб гарантувати коректність типу даних.
Механіка сортування
─────────────────────────────────────────────────────────────-
- Блок отримує масив із Object to sort
- Кожен елемент масиву підставляється в {{value}}
- Значення з Compare value використовується для порівняння
- Дані впорядковуються відповідно до правил
- На виході — відсортований масив, доступний для наступних блоків
Приклади використання
─────────────────────────────────────────────────────────────-
HTTP Request + Sort
Ви отримали від API список моделей, але вони йдуть у випадковому порядку, потрібно відсортувати за id в алфавітному порядку.
- У полі Object to sort вставляємо змінну відповіді
{{Body.data}}. - У Sorting options обираємо:
Direction: Ascending (за зростанням).
Compare as: Texts (так як id містить текст в даному випадку).
Compare value:{{value}}['id'].
Результат: Список впорядковано по алфавіту від a - z.

Sort + Loop
Після сортування даних блок Sort видає новий масив. Саме цю змінну (результат роботи блоку Sort) потрібно передавати в Loop для подальшої обробки, щоб ітерація відбувалася вже у правильному порядку.

FAQ
─────────────────────────────────────────────────────────────-
1. Чи змінює блок Sort оригінальний масив?
Ні, він створює новий відсортований масив у результатах своєї роботи. Оригінальна змінна залишається без змін.
2. Що таке {{value}}?
Це технічна змінна, яка існує тільки всередині налаштувань блоку Sort (та деяких інших блоків циклів). Вона динамічно підставляє "поточний предмет", який система "тримає в руках" у момент порівняння.
3. Чи можна сортувати за результатом обчислення?
Так. У полі Compare value можна писати вирази. Наприклад, {{value}}['price'] * {{value}}['quantity'] дозволить відсортувати замовлення за загальною вартістю, навіть якщо цього поля немає в базі, а є тільки ціна і кількість.
4. Чи можна сортувати не масив?
Ні. Блок працює тільки з масивами (List).