# Actions в сценаріях — що це та як працюють

Actions (дії) — це потужний механізм розширення функціональності сценаріїв ботів у ConnectiveOne. Через actions можна виконувати складну бізнес-логіку, інтегруватися з зовнішніми системами, обробляти дані та керувати потоком виконання сценарію.

## Що таке actions?

**Actions** — це JavaScript функції, які виконуються під час виконання сценарію ботом. Коли бот досягає ноди типу `Action` в сценарії, він викликає відповідну функцію, передає їй параметри та обробляє результат.

## Типи actions

### Стандартні actions

**Стандартні actions** — це вбудовані в платформу ConnectiveOne actions, які доступні всім ботам без додаткового налаштування.

**Характеристики:**
- ✅ Доступні всім ботам на платформі
- ✅ Версіонуються разом з Engine
- ❌ Не редагуються через UI (тільки через код)
- ✅ Стабільні та протестовані
- ✅ Загальна кількість: **98 стандартних actions**

**Групи стандартних actions:**
- **Core Actions** (63) — основні дії: валідація, HTTP запити, умовна логіка, цикли, робота з даними
- **Language** (2) — робота з мовами
- **Loop** (2) — цикли
- **Schedule** (1) — перевірка розкладу
- **Interval** (4) — робота з інтервалами
- **Custom modules** (4) — робота з кастомними модулями
- **Operator panel** (4) — інтеграція з операторською панеллю
- **FastLine Pro** (6) — інтеграція з AI-агентами
- та інші групи

**Приклади стандартних actions:**
- `action_validate` — валідація вводу користувача
- `action_send_request` — відправка HTTP запитів до зовнішніх API
- `action_send_email` — відправка email повідомлень
- `action_if_else` / `action_switch` — умовна логіка та перемикачі
- `action_set` — встановлення змінних в state сценарію
- `action_fastline_pro` — інтеграція з AI-агентами FastLine Pro
- `action_tickets_create` — створення тікетів

**Документація стандартних actions:**
- [Actions Reference — повний довідник по всіх 98 actions](/uk/actionjail/reference/actions-reference.md) — таблиця з описом, конфігурацією та повертаємими значеннями

### Кастомні actions (ActionJail)

**Кастомні actions** — це actions, створені під конкретні задачі проекту через модуль ActionJail.

**Характеристики:**
- ✅ Створюються та редагуються через UI модуля ActionJail
- ✅ Специфічні для конкретного інстансу ConnectiveOne
- ✅ Можуть використовувати стандартні actions всередині себе
- ✅ Підтримують AI-генерацію коду, конфігурації та документації
- ✅ Можуть бути організовані в групи для кращої навігації

**Коли використовувати кастомні actions:**
- Потрібна специфічна бізнес-логіка, якої немає серед стандартних actions
- Потрібна інтеграція з унікальними зовнішніми системами клієнта
- Потрібна кастомна обробка даних під конкретні вимоги
- Потрібно об'єднати кілька стандартних actions в одну дію

**Документація кастомних actions:**
- [ActionJail модуль](/uk/actionjail/operator-hub.md) — створення та керування кастомними actions
- [Створити кастомний action](/uk/actionjail/how-to/admin-manage-actions.md)

## Як працюють actions в сценаріях

### Виконання action

1. **Бот досягає ноди типу `Action`** в сценарії
2. **Система шукає action** спочатку в стандартних, потім в ActionJail
3. **Виконується функція action** в контексті KwizbotEngine
4. **Обробляється результат** — action може повернути значення для умовних переходів

### Керування потоком виконання

Actions можуть повертати значення, які використовуються для умовних переходів у сценарії:

- **Успішне виконання** → перехід до наступної ноди
- **Помилка** → перехід до ноди обробки помилок
- **Умовні значення** → перехід залежно від результату (наприклад, `if_else` повертає `true` або `false`)

### Параметри та конфігурація

Кожен action має свою конфігурацію:
- **Параметри** — налаштування, які передаються в action
- **UI схема** — форма для введення параметрів в редакторі сценарію
- **Значення за замовчуванням** — дефолтні параметри

## Використання в Scenario Dialog

В Scenario Dialog actions використовуються через ноди типу `Action`:

1. **Додавання ноди** — додайте ноду типу `Action` на рабочее полотно (canvas) через React Flow toolbar
2. **Вибір action** — виберіть стандартний або кастомний action в компоненті конфігурації
3. **Налаштування параметрів** — заповніть параметри action через UI форму
4. **З'єднання з іншими нодами** — з'єднайте action з іншими нодами через edges для керування потоком

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

- [Використати action в сценарії](/uk/scenariodialog/how-to/use-action-in-scenario.md) — покрокова інструкція
- [Actions Reference](/uk/actionjail/reference/actions-reference.md) — повний довідник по всіх actions
- [ActionJail модуль](/uk/actionjail/operator-hub.md) — створення кастомних actions
- [Створити кастомний action](/uk/actionjail/how-to/admin-manage-actions.md)
