> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Цикл (пакетна обробка)

> Обробляйте кілька елементів однією дією, перебираючи масив

<Tip>
  Наполегливо рекомендуємо створювати автоматизації за допомогою дії «Запуск сценарію», оскільки вона охоплює всі типи дій, зокрема ті, які інакше довелося б створювати вручну. Просто опишіть свої вимоги ШІ в чаті.

  Зверніть увагу: якщо ви додасте дії вручну, ШІ надалі не розпізнаватиме й не змінюватиме їх.
</Tip>

Цикл дає змогу виконувати дію **один раз для кожного елемента** масиву. Замість обробки одного запису або надсилання одного листа цикл повторює дію для кожного елемента списку — масово створює записи, надсилає персоналізовані листи списку контактів або виконує виклики API для кожного елемента.

Елементи обробляються по черзі, а результати всіх ітерацій повертаються як масив, який можуть використовувати наступні кроки.

## Підтримувані дії

| Дія                         | Підтримка циклу |
| --------------------------- | --------------- |
| Створити запис              | Так             |
| Оновити запис               | Так             |
| Надіслати електронний лист  | Так             |
| HTTP-запит                  | Так             |
| Генерування за допомогою ШІ | Так             |

## Звідки беруться масиви

Для використання циклу потрібен масив як вхідні дані. Поширені джерела:

| Джерело                                              | Що ви отримаєте                                                      |
| ---------------------------------------------------- | -------------------------------------------------------------------- |
| Дія **Отримати записи**                              | Масив записів із запиту до таблиці                                   |
| Тригер **Отримано вебхук**                           | Тіло JSON може містити масиви (наприклад, список позицій замовлення) |
| Дія **Генерування за допомогою ШІ** (результат JSON) | ШІ може повернути масив структурованих елементів                     |
| Дія **HTTP-запит**                                   | Відповідь API, що містить масив                                      |
| Дія **Сценарій**                                     | Сценарій може вивести будь-який масив через `output.set()`           |

## Як налаштувати

1. Відкрийте підтримувану дію (наприклад, «Створити запис» або «Надіслати електронний лист»).
2. Натисніть **Запуск циклу** під засобом вибору таблиці (або в області налаштування дії).
3. У засобі вибору джерела даних виберіть **змінну-масив** із попереднього кроку. Наприклад, масив записів із кроку «Отримати записи».
4. В області зіставлення полів тепер відображаються властивості кожного окремого елемента, а не всього масиву. Натисніть **+**, щоб посилатися на властивості **поточного елемента** — наприклад, ім’я, електронну адресу або статус поточного запису.
5. Збережіть дію. Під час виконання робочого процесу дія виконуватиметься один раз для кожного елемента масиву.

## Як посилатися на поточний елемент

Коли цикл активний, засіб вибору змінних **+** показує властивості поточного елемента ітерації. Наприклад:

* Під час перебору результату дії «Отримати записи» можна посилатися на `поточний елемент → поля → Ім’я`, `поточний елемент → поля → Електронна пошта` тощо.
* Під час перебору масиву вебхука можна посилатися на `поточний елемент → product_name`, `поточний елемент → quantity` тощо.

Це відрізняється від режиму без циклу, де ви посилаєтеся на весь масив або певний індекс.

## Конкретний приклад: надсилання нагадувань про прострочені завдання

1. **Тригер:** у запланований час — щодня о 9:00.
2. **Дія 1:** Отримати записи — з таблиці завдань; фільтр: дата виконання раніше за сьогодні І статус не дорівнює «Виконано».
3. **Дія 2:** Надіслати електронний лист із увімкненим **Циклом**, джерело даних = масив записів Дії 1.
   * **Кому:** поле електронної адреси виконавця поточного елемента.
   * **Тема:** `Нагадування: "{{current item → Task Name}}" прострочено`
   * **Текст:** `Вітаємо, {{current item → Assignee Name}}! Термін виконання завдання "{{current item → Task Name}}" минув {{current item → Due Date}}. Оновіть його.`

Результат: один персоналізований лист для кожного простроченого завдання.

## Масив у тілі HTTP-запиту

Для дій HTTP-запиту цикл пропонує спеціальний режим **Масив у тілі**. Замість надсилання окремого HTTP-запиту для кожного елемента (що може бути повільним і призвести до перевищення обмежень частоти) цей режим надсилає **весь масив як один масив JSON** в одному запиті.

Це корисно, якщо зовнішній API підтримує пакетні операції — наприклад, створення кількох записів одним викликом API або надсилання пакета подій аналітичному сервісу.

Щоб використовувати масив у тілі:

1. Увімкніть цикл у дії HTTP-запиту.
2. Виберіть режим **Масив у тілі** замість стандартного режиму для окремих елементів.
3. Увесь масив буде серіалізовано як масив JSON і надіслано в тілі запиту.

## Міркування щодо продуктивності

* Цикл обробляє елементи **послідовно**, а не паралельно. Цикл зі 100 елементів триватиме приблизно в 100 разів довше, ніж одне виконання.
* Для великих масивів (сотень або тисяч елементів) з’ясуйте, чи може зовнішня дія приймати пакетні вхідні дані. Використовуйте масив у тілі HTTP-запиту, якщо API його підтримує.
* Якщо ви перебираєте результат дії «Отримати записи» й виконуєте HTTP-запити для кожного запису, зважайте на обмеження частоти зовнішнього API.
* Для дуже великих наборів даних розділяйте роботу на менші пакети за допомогою пагінації в дії «Отримати записи» (Пропустити/Взяти) і кількох запусків автоматизації.

## Коли використовувати

* **Масове створення записів.** Отримайте записи з однієї таблиці та в циклі створіть відповідні записи в іншій.
* **Надсилання персоналізованих листів списку.** Отримайте список контактів і в циклі надішліть кожному персоналізований лист.
* **Оновлення кількох записів.** Отримайте записи, що відповідають умові, і в циклі оновіть кожен із них (наприклад, позначте всі прострочені завдання як «Передано на вищий рівень»).
* **Виклики API для кожного запису.** По черзі передавайте дані кожного запису до зовнішньої системи.
* **Обробка пакета записів за допомогою ШІ.** Переберіть записи в циклі й скористайтеся дією «Генерування за допомогою ШІ», щоб класифікувати, узагальнити або видобути дані з кожного запису.

## Поради

* Перед увімкненням циклу завжди перевіряйте розмір масиву. Якщо дія «Отримати записи» повертає 1 000 записів, цикл виконається 1 000 разів.
* Якщо цикл створює або оновлює записи в тій самій таблиці, яка запустила автоматизацію, остерігайтеся повторного запуску автоматизації. Використовуйте фільтри тригера, щоб уникнути циклів.
* Результати всіх ітерацій циклу доступні наступним крокам як масив, але для дуже великих циклів цей масив може бути великим. Посилайтеся лише на потрібні дані.

## Пов’язані матеріали

* [Отримання записів](/uk/basic/automation/actions/records/get-records) — найпоширеніше джерело масивів для циклу
* [Створення запису](/uk/basic/automation/actions/records/create-record) — часто використовується в циклі для масового створення записів
* [HTTP-запит](/uk/basic/automation/actions/logic/http-request) — часто використовується в циклі для окремого виклику API для кожного елемента
* [Надсилання електронного листа](/uk/basic/automation/actions/communication/send-email-overview) — часто використовується в циклі для масового надсилання листів
