Про Custom Data в ConnectiveOne
Custom Data — це модуль ConnectiveOne, який дозволяє створювати, управляти та зберігати довільні структуровані набори даних, унікальні для бізнес-процесів вашої компанії. Він вирішує проблему необхідності зберігання специфічної інформації, яка не вписується у стандартні системні сутності. Ця сторінка пояснює принципи роботи Custom Data, типи даних та сценарії використання.
Контекст і проблема
Кожна компанія має унікальні бізнес-процеси та дані, які потрібно зберігати та використовувати:
- Специфічна інформація про клієнтів — додаткові поля, яких немає в стандартній таблиці клієнтів
- Довідники та каталоги — списки магазинів, адрес, категорій товарів, які використовуються в сценаріях
- Опитування та метрики — збір оцінок та відгуків від клієнтів після діалогу
- Структуровані дані зі зв'язками — організація даних з відношеннями між таблицями
- Інтеграція з зовнішніми системами — зберігання ID та даних з CRM, ERP та інших систем
Обмеження стандартних таблиць:
- Стандартні таблиці системи (Clients, Operators, Chats) мають фіксовану структуру
- Неможливо додати поля, специфічні для конкретної компанії
- Немає можливості створювати власні структури даних
Типові сценарії:
- Збір опитувань після діалогу з клієнтом
- Вибір магазину або адреси зі списку в сценарії бота
- Розширення інформації про клієнта додатковими полями
- Зв'язок між різними сутностями (наприклад, оператор → клієнт)
Основні концепції
Модель даних
Модель — це структура таблиці з визначеними полями та типами даних. Модель визначає, які дані можна зберігати та як вони організовані.
Як це працює:
- Інтегратор створює модель, визначаючи назву та опис
- Додає поля з визначеними типами (STRING, TEXT, INTEGER, DATE, ASSOCIATION)
- Налаштовує особливості полів (унікальність, обов'язковість)
- Наповнює модель даними (вручну або через імпорт)
- Модель стає доступною для використання в сценаріях та операторській панелі
Приклад моделі:
- Назва:
shops(Магазини) - Поля:
city(STRING),address(STRING),phone(STRING),work_schedule(STRING)
Типи полів
Custom Data підтримує різні типи полів для різних видів даних:
- STRING — короткий текст (до 255 символів), для назв, кодів, телефонів
- TEXT — довгий текст (необмежена довжина), для коментарів, описів
- INTEGER — цілі числа, для ID, кількості, оцінок
- DATE — дати, для дат подій, термінів
- ASSOCIATION — зв'язок між таблицями (one-to-many), для вибору значень з іншої таблиці
Вибір типу поля:
- Використовуйте STRING для полів, по яких буде пошук (швидше)
- Використовуйте TEXT для довгих текстів (коментарі, описи)
- Використовуйте ASSOCIATION для організації структурованих даних зі зв'язками
Записи та дані
Запис — це конкретний рядок даних в таблиці, який містить значення для всіх полів моделі.
Як працює збереження:
- Дані збираються в сценарії через блоки "Wait for Response" або "Message with Keyboard"
- Зберігаються в змінних типу
model_name:field_name(наприклад,customer:name) - Використовується action
custom_modules__setдля створення запису - Запис стає доступним для використання в інших частинах системи
Зв'язки між таблицями
ASSOCIATION — тип поля, який дозволяє створювати зв'язки між різними моделями даних.
Як це працює:
- Створюються дві моделі (наприклад, "Priorities" та "Tasks")
- В одній моделі додається поле типу ASSOCIATION
- Налаштовується зв'язок (one-to-many) з іншою моделлю
- При створенні запису доступний випадаючий список зі значеннями з пов'язаної таблиці
Приклад:
- Модель "Tasks" має поле
priorityтипу ASSOCIATION - Це поле пов'язане з моделлю "Priorities"
- При створенні завдання можна вибрати пріоритет зі списку ("Високий", "Середній", "Низький")
Розширення контактів клієнтів
Custom Data може використовуватися для додавання додаткових полів до таблиці Clients.
Як це працює:
- Створюється модель з опцією "Use for extending contact fields"
- Додається поле
reg_user_idтипу INTEGER з параметромunique: true - Додаються інші поля, які потрібно відображати в таблиці Clients
- Дані з Custom Data таблиці автоматично з'являються в таблиці Clients
Приклад:
- Модель
client_expansionз полями:reg_user_id,date_of_birth,loyalty_card_number - Дані з цієї моделі відображаються в таблиці Clients для відповідного клієнта
Варіанти підходів
Прості таблиці vs Структуровані дані
Прості таблиці:
- ✅ Плюси: Простота створення та використання, швидкий доступ до даних
- ❌ Мінуси: Немає зв'язків між даними, можливе дублювання інформації
Структуровані дані зі зв'язками:
- ✅ Плюси: Організація даних з відношеннями, забезпечення цілісності даних
- ❌ Мінуси: Складніше налаштування, потрібне розуміння структури
Коли використовувати:
- Прості таблиці — для опитувань, відгуків, простих довідників
- Структуровані дані — для складних бізнес-процесів з відношеннями між сутностями
Автоматичне збереження vs Actions
Автоматичне збереження з блоків:
- ✅ Плюси: Простота налаштування, автоматичне збереження після введення
- ❌ Мінуси: Обмежена гнучкість, не підходить для складних сценаріїв
Що таке автоматичне збереження: Це функція блоків "Wait for Response" та "Message with Keyboard", яка дозволяє автоматично зберігати відповіді користувача в Custom Data таблицю. Дані зберігаються не одразу, а після виконання action в сценарії. Детальніше: Як зберегти дані зі сценарію в Custom Data
Actions (custom_modules__set):
- ✅ Плюси: Гнучкість, можливість збору кількох полів перед збереженням, валідація
- ❌ Мінуси: Потрібна додаткова налаштування
Коли використовувати:
- Автоматичне збереження — для простих сценаріїв з одним полем
- Actions — для складних сценаріїв з кількома полями та валідацією
Стандартні actions vs Кастомні actions
Стандартні actions (custom_modules__set, custom_modules__get, custom_modules__update):
- ✅ Плюси: Готові рішення, покривають більшість потреб, простота використання
- ❌ Мінуси: Обмежена функціональність для складних сценаріїв
Кастомні actions:
- ✅ Плюси: Повна гнучкість, можливість інтеграції з зовнішніми системами, складна бізнес-логіка
- ❌ Мінуси: Потрібна розробка, підтримка коду
Коли використовувати:
- Стандартні actions — для більшості сценаріїв (CRUD операції, пошук, фільтрація)
- Кастомні actions — для інтеграцій з CRM, складної валідації, масових операцій
Прийняті рішення
Гнучкість структури даних
Custom Data дозволяє створювати будь-які структури даних, адаптовані під конкретні бізнес-процеси. Це забезпечує максимальну гнучкість без необхідності зміни стандартних таблиць системи.
Інтеграція зі сценаріями
Custom Data повністю інтегрована зі сценаріями ботів, дозволяючи:
- Автоматичне збереження даних з блоків введення
- Використання даних у повідомленнях через змінні
- Пошук та фільтрацію даних в сценаріях
- Каскадний пошук з залежністю від попередніх виборів
Розширення стандартних таблиць
Custom Data може розширювати стандартні таблиці системи (наприклад, Clients), додаючи додаткові поля без зміни базової структури. Це забезпечує сумісність зі стандартними функціями системи.
Підтримка різних типів даних
Система підтримує різні типи даних (текст, числа, дати, зв'язки), що дозволяє зберігати будь-які види інформації та організовувати складні структури даних.
Наслідки для користувачів і імплементації
Для інтеграторів
При роботі з Custom Data важливо:
- Проектувати та створювати моделі — продумати структуру, створити модель з потрібними полями
- Наповнювати дані — заповнити моделі даними вручну або через імпорт для використання в сценаріях
- Вибирати правильні типи полів — STRING для пошуку, TEXT для довгих текстів, ASSOCIATION для зв'язків
- Використовувати стандартні actions — для більшості сценаріїв достатньо стандартних actions
- Організовувати дані — групувати моделі, використовувати унікальні поля для пошуку
Для адміністраторів
При управлінні Custom Data важливо:
- Контролювати доступ — налаштовувати права доступу до моделей, обмежувати доступ до чутливих даних
- Моніторити використання — відстежувати, які моделі використовуються та як, аналізувати навантаження
Типові помилки
Помилка: Створення моделі без продуманої структури
Проблема: Потрібні зміни після створення, що може призвести до втрати даних
Рішення: Завжди продумувати структуру моделі перед створенням, використовувати AI Magic для допомоги
Помилка: Використання TEXT полів для пошуку
Проблема: Пошук по TEXT полям повільний
Рішення: Використовувати STRING поля для пошуку, TEXT тільки для довгих текстів
Помилка: Відсутність унікальних полів
Проблема: Неможливо надійно знайти запис
Рішення: Додавати унікальні поля (email, phone, ID) для надійного пошуку
Помилка: Створення кастомних actions для простих операцій
Проблема: Зайва складність, підтримка коду
Рішення: Використовувати стандартні actions для більшості сценаріїв
Рекомендації
- Почніть з простих таблиць — для перших кроків використовуйте прості структури
- Використовуйте стандартні actions — вони покривають більшість потреб
- Організуйте дані — групуйте моделі, використовуйте зрозумілі назви
- Документуйте структуру — додавайте описи до моделей та полів
- Тестуйте перед використанням — перевіряйте структуру та дані перед інтеграцією в сценарії
Пов'язані документи
- Integrator Hub: Навігація по всіх інструкціях — центральна сторінка для інтеграторів
- How-to: Створити модель — інструкція зі створення моделі
- How-to: Зберегти дані зі сценарію — як зберігати дані автоматично
- How-to: Використати custom_modules__set — створення запису через action
- How-to: Використати custom_modules__get — отримання запису
- How-to: Створити зв'язок між таблицями — організація структурованих даних
- How-to: Розширити контакти клієнтів — додавання полів до таблиці Clients
- Reference: Довідник термінів — визначення термінів Custom Data, Модель, Поле, Запис