Use Case 7: Скарга в Custom Data
Рівень: базовий · Модулі: Scenario Builder, Custom Data · Action: custom_modules__set
Необхідні права та доступ
| Що потрібно | Де в меню | Навіщо |
|---|---|---|
| Scenario Builder | Меню → Scenario Builder | Збір тексту/телефону, запис у CD |
| Custom Data | Меню → Custom Data | Модель complaints |
Якщо розділу немає в меню — перевірте права облікового запису або зверніться до підтримки ConnectiveOne.
Бізнес-контекст
Клієнт залишає скаргу — запис потрапляє у таблицю Custom Data з ID для підтвердження («Ваша скарга №…»). Це патерн для будь-яких форм: заявки, звернення, feedback без CSAT.
Очікуваний результат
- Модель Custom Data
complaints(поляtext,phone,status). custom_modules__setстворює запис; ID доступний для підтвердження клієнту ({{complaint:id}}).- Edges success / error оброблені — немає тиші.
Архітектура flow
MessageKeyboard («Залишити скаргу») → WaitForInput (text) → WaitForInput (phone)
→ custom_modules__set
├─ success → «Скаргу №{{complaint:id}} прийнято»
└─ error → «Не вдалося зберегти»
Покрокова реалізація
Крок 0. Custom Data — модель
Custom Data → Нова модель:
| Поле | Тип | Alias / ім'я |
|---|---|---|
| Текст скарги | text | text |
| Телефон | phone | phone |
| Статус | text або select | status (default new) |
Alias моделі: complaints — має точно збігатися з module_name у action (регістр важливий).
Крок 1. MessageKeyboard — вхід у flow
| Параметр | Значення |
|---|---|
| Текст | «Хочете залишити скаргу?» |
| Кнопка | «Так» · complaint_yes |
Edges: → WaitForInput (текст скарги).
Крок 2. WaitForInput — текст і телефон
Нода 1 — текст
| Параметр | Значення | Навіщо |
|---|---|---|
| messageText | «Опишіть скаргу» | |
| outputVariable | complaints:text |
Формат module:field для custom_modules__set |
| Validation | none або min символи |
Нода 2 — телефон
| outputVariable | complaints:phone |
| Validation | phone |
Edges: ланцюжок → Action set.
Крок 3. Action — custom_modules__set
Що робить: створює новий рядок у таблиці complaints з constants complaints:*.
| node_params | Значення | Навіщо |
|---|---|---|
module_name |
complaints |
Alias моделі в Custom Data |
set_to |
complaint |
Об'єкт запису → {{complaint:id}}, {{complaint:text}} … |
Додатково можна задати complaints:status = new через ноду Set або попередній WaitForInput.
Edges:
| Edge | Куди | Навіщо |
|---|---|---|
| success | MessageKeyboard «Дякуємо! Номер скарги: {{complaint:id}}» | Клієнт має reference |
| error | «Не вдалося зберегти скаргу» | Перевірити alias моделі та поля |
Крок 4. Перевірка
- Custom Data → модуль
complaints— з'явився новий рядок. - Runs → після success constants містять
complaintзid.
Критерії приймання (self-check Runs)
Типові помилки
| Симптом | Причина | Що зробити |
|---|---|---|
__set error |
Невірний module_name або поле |
Звірити alias моделі і constants |
Немає complaint:id |
Невірний set_to |
Перевірити set_to: complaint |
| Бот «замовкає» | Edge error не підключений | Підключити error → MessageKeyboard |
| Рядок без телефону | Validation phone відхилила | Перевірити формат або Validation none |