# Секції редактора дій ActionJail

Майстер створення/редагування дії в ActionJail складається з п'яти секцій (акордеонів). Кожна секція відповідає за певний аспект дії та має прямий зв'язок з тим, як дія відображається в Конструкторі сценаріїв.

## Редагування коду, JSON і документації

Коли ви відкриваєте секції **Код реалізації**, **JSON конфігурація** або **Документація**, текст редагується в **нижній панелі** редактора. У верхній частині залишаються назва секції, підказки та кнопки (зокрема AI-генерація). Так зручніше працювати з довгим кодом: прокрутка колесом миші рухає саме текст у редакторі, а не всю сторінку.

На секції **Код реалізації** у заголовку нижньої панелі (поруч із AI-генерацією) є кнопка **Відкрити код на весь екран**. Вона відкриває той самий код у великому вікні; зміни одразу відображаються в нижній панелі. На секціях **JSON конфігурація** та **Документація** цієї кнопки немає — там текст редагується лише в нижній панелі.

На секціях без текстового редактора — **Основна інформація**, **UI схема** та **Тестування** — нижня панель не показується, і форма займає всю висоту вікна. У майстрі створення нової дії нижня панель з’являється на кроках з кодом, JSON і документацією; на кроках з формами вона прихована.

## 1. Інформація про дію

**Що заповнювати:**
- **Відображуване ім'я** — назва, яку бачать користувачі при виборі дії в сценарії.
- **Системний ID** — унікальний ідентифікатор (`action_*`), не змінюється після створення.
- **Опис** — коротке пояснення призначення дії.
- **Група** — категорія для групування дій у бібліотеці.

**Де видно в Scenario Builder:**
- Відображуване ім'я — у списку дій при додаванні блоку Action, у назві обраної дії.
- Група — у фільтрі «Оберіть action групу» у сайдбарі блоку Action.

---

## 2. Код реалізації

**Що заповнювати:**
- JavaScript-функція, яка виконує логіку дії.
- Функція має починатися з `action_` і експортуватися через `module.exports`.
- Використовуйте `this.getCurrentNodeParamsJSON()` для отримання параметрів з JSON-конфігу.
- Використовуйте `this.getCurrentConstJSON()` для доступу до констант сценарію.

**Де видно в Scenario Builder:**
- Код не відображається в UI — він виконується на бекенді при проходженні сценарію через блок Action.

**AI-генерація:** Кнопка «Швидка генерація» / «Згенерувати код» — генерує чернетку коду за описом. Потрібно налаштований OpenAI-токен для обраного процесу (бота).

**Повноекранний режим:** доступний лише в цій секції — див. [Редагування коду, JSON і документації](#редагування-коду-json-і-документаціі) вище.

---

## 3. JSON конфігурація

**Що заповнювати:**
- Схема параметрів: `parameters` — масив об'єктів з полями `name`, `type`, `required`, `description`, `defaultValue` тощо.
- `ui` — групування полів для форми (accordion, groups).
- `json_example` — приклад валідного JSON.
- `events_schema` — можливі значення `return` для роутингу.

**Де видно в Scenario Builder:**
- У блоці Action у режимі **Form** — кожен параметр з `parameters` стає полем форми (input, select, textarea тощо).
- Групи з `ui.groups` відображаються як секції акордеону.
- У режимі **JSON** — користувач вводить значення напряму в JSON; структура береться з `parameters` і `json_example`.

**AI-генерація:** «Згенерувати з коду» — аналізує код і витягує параметри з `getCurrentNodeParamsJSON()` у JSON-схему.

---

## 4. UI схема

**Що заповнювати:**
- Ті самі параметри, що й у JSON-конфігу, але у вигляді візуального списку полів.
- Для кожного поля: key, type, label, placeholder, required, description, default, validation, options, dataSource тощо.

**Де видно в Scenario Builder:**
- UI-схема визначає, як саме відображаються поля в режимі Form:
  - тип поля: текст, число, перемикач (так/ні), список вибору;
  - підпис, підказка в полі, додаткові пояснення;
  - групування (accordion) з `ui.groups`.

**Зв'язок:** UI-схема — це представлення `json_config.parameters` та `json_config.ui`. Зміни в одному місці синхронізуються з іншим.

---

## 5. Документація

**Що заповнювати:**
- Markdown-текст: опис дії, параметри, приклад використання, значення return.

**Де видно в Scenario Builder:**
- Документація не відображається безпосередньо в блоці Action.
- Вона використовується в довідниках, підказках та для інтеграторів (Actions Reference).

**AI-генерація:** «Згенерувати документацію» — створює Markdown за назвою дії, кодом та параметрами.

---

## Зв'язок полів ActionJail → Scenario Builder (Form mode)

| Поле в ActionJail        | Відображення в Scenario Builder (Form)                    |
|--------------------------|------------------------------------------------------------|
| Відображуване ім'я       | Назва обраної дії в блоці Action                           |
| Група                    | Фільтр «Оберіть action групу» у сайдбарі                   |
| Опис                     | Підказки, довідники                                        |
| `parameters`             | Поля форми (input, select, textarea тощо)                  |
| `parameters[].label`     | Підпис поля                                               |
| `parameters[].placeholder` | Placeholder у полі вводу                                |
| `parameters[].type`      | Тип віджета (string → text, number → number, boolean → switch) |
| `ui.groups`              | Секції акордеону в формі параметрів                        |
| `json_example`           | Дефолтні значення при першому відкритті                    |

---

## Пов'язані інструкції

- [Про те, як дані з Action Jail потрапляють у Scenario Builder](/uk/actionjail/explanation/action-to-scenario-flow.md)
- [Як створити кастомну дію](/uk/actionjail/how-to/create-custom-action.md)
- [Налаштування AI-генератора](/uk/actionjail/how-to/admin-ai-generator-setup.md)
- [Actions Reference](/uk/actionjail/reference/actions-reference.md)
