---
title: "Use Case 8: Секція-макрос"
description: "Секція з прапорцем «макрос», параметр order_id, перевірка в Runs; OP Process macro — опційно E2E."
---

# Use Case 8: Секція-макрос у сценарії

**Рівень:** базовий · **Модулі:** Scenario Builder · **Settings → Operator Panel → Process macro** *(опційно E2E)*

## Необхідні права та доступ

| Що потрібно | Де в меню | Навіщо |
|-------------|-----------|--------|
| **Scenario Builder** | Меню → Scenario Builder | Секція-макрос, логіка всередині |
| **Settings → Operator Panel → Process macro** | Налаштування → Операторська панель → Process macro | Опційно: кнопка в Operator Line (E2E) |

Якщо розділу **Process macro** немає в меню — core Use Case 8 можна завершити лише перевіркою в **Runs**; E2E через Operator Line — опційно.

## Бізнес-контекст

Оператор у діалозі запускає короткий сценарій (перевірка статусу замовлення, lookup) — логіка живе в **секції Scenario Builder** з прапорцем «макрос», а не в окремому боті.

## Очікуваний результат

- Окрема **секція** з прапорцем «Використовується як макрос».
- Вхідний параметр макросу (напр. `order_id`).
- Логіка перевірена в **Runs** (trace макрос-секції).
- *(Опційно E2E)* Process макрос у Settings → кнопка «Запустити макрос» у Operator Line.

## Архітектура flow

```text
[Секція-macro] Start (macro) → WaitForInput / форма макросу (order_id)
   → action_send_request або MessageKeyboard «Статус OK для {{order_id}}»
   → End / повернення в діалог оператора
```

## Зв'язок з іншими налаштуваннями

Settings → Operator Panel → **Process macro** → обрати бота з макрос-секцією. Це потрібно лише для опційної E2E-перевірки в Operator Line.

→ [Огляд для інтегратора — макроси](/uk/learn/implementer/implementer-overview.md)

## Покрокова реалізація

### Крок 1. Секція сценарію під макрос

Scenario Builder → **нова секція** (напр. `Macro Check Status`):

| Налаштування секції | Значення | Навіщо |
|---------------------|----------|--------|
| **Використовується як макрос** | увімкнено | Секція доступна з OP, не як звичайний вхід клієнта |
| Змінна макросу | `order_id` (text, обов'язкова) | Оператор вводить при запуску → `{{order_id}}` у нодах |

---

### Крок 2. Логіка всередині секції (спрощено)

**Варіант A — без API (мінімум):**

| Нода | Параметри |
|------|-----------|
| MessageKeyboard *(або нода результату макросу)* | «Перевірено замовлення **{{order_id}}**: статус OK» |

**Варіант B — mock API (як Use Case 4):**

| Action `action_send_request` | `url` з `{{order_id}}` або фіксований mock |
| Edges | `ok` → текст з `{{crm_data…}}` · `not_ok` → «CRM недоступна» |

Макрос **не повинен** викликати `operator_panel__connect` — він уже всередині діалогу оператора.

---

### Крок 3. Підключення в Operator Panel *(опційно — E2E)*

Settings → Operator Panel → **Process macro** → обрати бота з макрос-секцією.

**Acceptance (core):** Runs trace макрос-секції з тестовим `order_id`.

**Acceptance (опційно E2E):** кнопка «Запустити макрос» у діалозі Operator Line.

---

### Крок 4. Тест *(опційно E2E)*

1. Відкрити діалог клієнта (після [Use Case 3](/uk/learn/implementer/training/basic/use-case-03-handoff-to-operator.md) зручно).
2. Кнопка **«Запустити макрос»** → обрати макрос → ввести `order_id`.
3. Результат у діалозі; Runs — trace макрос-секції.

**Core-тест без OP:** Scenario Builder → Runs → запуск макрос-секції з тестовим `order_id` у trace.

## Критерії приймання (self-check Runs)

- [ ] Секція позначена «Використовується як макрос».
- [ ] Параметр `order_id` доступний у нодах як `{{order_id}}`.
- [ ] Runs trace показує виконання макрос-секції з тестовим значенням.
- [ ] У секції **немає** `operator_panel__connect`.
- [ ] (Опційно E2E) Макрос з'являється в Operator Line після налаштування Process macro.

## Типові помилки

| Симптом | Причина | Що зробити |
|---------|---------|------------|
| Макрос не в OP | Не налаштовано Process macro | Settings → OP → Process macro |
| `{{order_id}}` порожній | Параметр не оголошено в секції | Додати змінну макросу в налаштуваннях секції |
| Connect всередині макросу | Зайва нода | Прибрати connect — макрос уже в діалозі |
| Trace порожній | Запуск не через Runs макросу | Запустити trace секції з параметром |

## Пов'язана документація

- [Огляд для інтегратора](/uk/learn/implementer/implementer-overview.md)
- [Use Case 4 — mock API](/uk/learn/implementer/training/basic/use-case-04-api-integration.md)
- [FAQ — Macros](/uk/learn/implementer/training/reference/faq.md)
- Далі: [Use Case 9 — аудит сценарію](/uk/learn/implementer/training/basic/use-case-09-scenario-audit.md)
