# Як створити запис у Custom Data з даних сценарію?

Після того як користувач ввів дані (рейтинг після діалогу, дату інтерв'ю, контакти для зворотного дзвінку), їх потрібно зберегти в Custom Data. Дія `custom_modules__set` створює новий запис із значень змінних стану. Усі блоки введення до цієї дії збирають дані і зберігають їх у змінні типу «назва_моделі:назва_поля».

## Коли знадобиться

- Після C-SAT опитування — зберегти рейтинг і chat_id для аналітики.
- Користувач заповнив заявку на інтерв'ю або зворотний дзвінок — створити запис для обробки оператором.
- Потрібно зберегти комплексну інформацію про взаємодію для подальшого використання в сценарії або дашбордах.

## Що важливо знати

- **custom_modules__set** — дія для створення нового запису в Custom Data.
- Всі блоки введення до цієї дії збирають дані та зберігають їх у змінні типу "назва_моделі:назва_поля".
- Після створення запису він зберігається в змінну, вказану в параметрі `set_to`.
- Використовується для створення нових записів, а не для оновлення існуючих.

## Перед початком

- [x] Ви увійшли в систему з правами інтегратора або адміністратора.
- [x] У системі є створена модель Custom Data з потрібними полями.
- [x] Ви маєте доступ до конструктора сценаріїв.
- [x] Ви зібрали дані від користувача в попередніх блоках сценарію.

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

### Підготовка даних

1. У сценарії додайте блоки для збору даних від користувача:
   - **"Очікування відповіді"** — для текстового введення
   - **"Повідомлення з клавіатурою"** — для вибору з варіантів
2. Переконайтеся, що дані зберігаються в змінні типу "назва_моделі:назва_поля" (наприклад, `customer:name`, `customer:email`).

### Налаштування дії

1. Додайте блок **"Дія"** в сценарій після блоків збору даних.
2. У налаштуваннях блоку "Дія" оберіть функцію **`custom_modules__set`**.
3. У полі конфігурації (JSON) введіть параметри:

```json
{
  "module_name": "customer",
  "set_to": "customer"
}
```

- `module_name` — назва моделі з кастомною таблицею (наприклад, "customer", "product", "order")
- `set_to` — назва змінної, в яку збережеться створений запис (наприклад, "customer", "new_order")

4. Збережіть зміни в дії та сценарії.

### Використання створеного запису

Після створення запису можна вивести його атрибути в блоці повідомлення, використовуючи змінну з `set_to`. Наприклад, якщо `set_to` = "customer", можна використати `{{customer:name}}` або `{{customer:email}}` для виведення значень полів.

## Приклад використання

**Сценарій:**
1. Блок "Очікування відповіді" → зберігає в `customer:name`
2. Блок "Очікування відповіді" → зберігає в `customer:email`
3. Блок "Дія" з `custom_modules__set` → створює запис та зберігає в `customer`
4. Блок "Повідомлення" → виводить `{{customer:name}}` та `{{customer:email}}`

---

## Типові сценарії

| Сценарій | Поля моделі | Послідовність |
|----------|-------------|------|
| **C-SAT / feedback** | chat_id, rating, created_at | Після опитування → set record → використання в дашбордах Metabase |
| **Заявка на інтерв'ю** | interview_date, interview_time, status | Користувач обирає дату/час → set record → оператор обробляє |
| **Заявка на зворотний дзвінок** | phone, preferred_time, status | Користувач вводить дані → set record → пізніше видалення після завершення |

## Що відбувається після

Після виконання дії `custom_modules__set` новий запис створюється в таблиці Custom Data з усіма даними, зібраними в попередніх блоках. Запис стає доступним для перегляду в модулі Custom Data та може використовуватися в інших частинах сценарію через змінну з `set_to`.

## Як переконатися, що все вдалось

- Перевірте, що всі дані зібрані в змінні типу "назва_моделі:назва_поля".
- Переконайтеся, що назва моделі в `module_name` відповідає існуючій моделі.
- Протестуйте сценарій та перевірте, що запис створився в Custom Data.
- Перевірте, що змінна з `set_to` містить створений запис.

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

- [Патерни та приклади Custom Data](/uk/customdata/explanation/custom-data-patterns-and-examples.md) — як обрати підхід під задачу
- [Як отримати запис з Custom Data](/uk/customdata/how-to/use-custom-modules-get.md)
- [Зберегти дані зі сценарію](/uk/customdata/how-to/save-data-from-scenario.md)
- [Створити модель](/uk/customdata/how-to/create-model.md)

