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

# Frontend Actions

> Усі значення FrontendAction, які бекенд надсилає у відповідях чату, та як їх обробляти

<Note>
  This page is also available in [English](/guides/frontend-actions).
</Note>

## Огляд

Коли AI-асистент виконує дії під час розмови в чаті, бекенд сигналізує
фронтенду через `frontend_actions` — масив рядкових значень, що включається
в кожну відповідь чату.

```json theme={null}
{
  "role": "assistant",
  "content": "Готово! Я оновив бюджет.",
  "frontend_actions": ["update_campaign_draft"]
}
```

Масив може містити **нуль або більше** дій на повідомлення. Обробляйте кожну
незалежно.

***

## Усі дії

| Дія                         | Контекст           | Коли надсилається                                                                    | Що має зробити фронтенд                 |
| --------------------------- | ------------------ | ------------------------------------------------------------------------------------ | --------------------------------------- |
| `enable_submit_button`      | **Лише онбординг** | Асистент завершив онбординг і користувач може продовжити                             | Увімкнути кнопку "Submit" / "Continue"  |
| `disable_submit_button`     | **Лише онбординг** | Асистент потребує більше інформації                                                  | Вимкнути кнопку submit                  |
| `update_campaign_draft`     | Візард кампанії    | Асистент змінив дані чернетки (ключові слова, групи оголошень, RSA, розширення тощо) | Перезавантажити чернетку кампанії з API |
| `set_campaign_draft_step_1` | Візард кампанії    | Асистент хоче перейти до Кроку 1 (Налаштування кампанії)                             | Переключити UI візарду на крок 1        |
| `set_campaign_draft_step_2` | Візард кампанії    | Асистент хоче перейти до Кроку 2 (Групи оголошень)                                   | Переключити UI візарду на крок 2        |
| `set_campaign_draft_step_3` | Візард кампанії    | Асистент хоче перейти до Кроку 3 (Оголошення / RSA)                                  | Переключити UI візарду на крок 3        |
| `set_campaign_draft_step_4` | Візард кампанії    | Асистент хоче перейти до Кроку 4 (Розширення)                                        | Переключити UI візарду на крок 4        |

<Warning>
  `enable_submit_button` та `disable_submit_button` використовуються **виключно
  в процесі онбордингу**. Вони не пов'язані зі створенням кампаній. Не плутайте
  їх з діями візарду кампанії.
</Warning>

***

## Деталі обробки

### `update_campaign_draft`

Найпоширеніша дія. Спрацьовує, коли асистент створює, оновлює або видаляє
будь-яку частину чернетки — групи оголошень, ключові слова, RSA, розширення,
стратегію ставок тощо.

**Очікувана поведінка:** перезавантажити чернетку через
`GET /api/v1/campaigns/drafts/{id}` та оновити UI візарду.

### `enable_submit_button` / `disable_submit_button`

Ці дії є **специфічними для онбордингу**. Асистент перемикає кнопку submit
під час онбордингу. Вони не надсилаються під час створення кампанії.

### `set_campaign_draft_step_N` (нове)

Чисті сигнали навігації. Асистент надсилає їх, коли хоче направити увагу
користувача на конкретну вкладку візарду — наприклад, після редагування
ключових слів він може перейти до Кроку 2.

**Очікувана поведінка:** переключити активну вкладку на крок N (1–4).
Перезавантаження даних не потрібне — ці дії часто надсилаються разом з
`update_campaign_draft`, який вже оновлює дані.

***

## Приклад: кілька дій в одному повідомленні

Асистент може надіслати кілька дій одночасно. Наприклад, після редагування
ключових слів та бажання показати вкладку Груп оголошень:

```json theme={null}
{
  "role": "assistant",
  "content": "Я додав 5 ключових слів до групи 'Brand'. Подивіться!",
  "frontend_actions": [
    "update_campaign_draft",
    "set_campaign_draft_step_2"
  ]
}
```

Обробіть обидва: перезавантажте чернетку **та** переключіться на крок 2.
