Встроенные базы данных
Используйте встроенные базы данных, чтобы хранить информацию по проекту: списки клиентов, адреса магазинов, настройки или товары.
Формат данных
Все данные хранятся в формате ключ-значение:
- Ключ (key) — строка, которая однозначно идентифицирует запись в базе данных.
- Значение (value) — JSON-объект, который содержит любые данные.
Примеры записей
- Справочник
- Клиенты
Для небольших списков, которые нужны целиком (например, адреса филиалов), можно использовать одну запись.
-
Ключ:
pharmacy_addresses -
Значение:
{
"main_office": "ул. Примерная, дом 3",
"branch_pushkin": "ул. Пушкина, дом 5",
"city": "Москва"
}
Для сущностей, по которым вы планируете делать поиск (клиенты, товары), создавайте отдельную запись для каждого объекта. В качестве ключа удобно использовать ID, email или артикул.
Запись 1:
- Ключ:
client:ivanov - Значение:
{
"name": "Иванов Иван",
"email": "ivanov@example.com",
"age": 30,
"services": ["streaming", "cloud_storage"]
}
Запись 2:
- Ключ:
client:petrov - Значение:
{
"name": "Петров Петр",
"email": "petrov@example.com",
"age": 25,
"services": ["books"]
}
Создание баз данных
Общая база для аккаунта
Чтобы создать базу данных, которая будет доступна во всех проектах аккаунта:
- Перейдите на главную страницу — к списку всех проектов Agent Platform.
- Выберите Базы данных в меню слева.
- Нажмите Создать базу данных.
- Введите название базы данных и нажмите Добавить.
Такая база имеет область видимости ACCOUNT.
База данных для проекта
Чтобы создать базу данных, которая будет доступна только в одном проекте:
-
Перейдите в проект.
-
В меню слева выберите Базы данных.
примечаниеВы можете также добавить базу данных в разделе Интеграции. Процесс добавления не отличается.
-
Нажмите Создать базу данных.
-
Введите название.
-
Выберите область видимости:
- PROJECT — база данных будет доступна в этом проекте вне зависимости от сессии, канала или клиента.
- CHANNEL — база привязана к конкретному каналу. Данные из разных каналов не пересекаются.
- CLIENT — база привязана к конкретному клиенту. У каждого клиента будет свой независимый набор записей.
- SESSION — база данных для временного хранения внутри одного диалога. Обычно ее не требуется создавать вручную. Подробнее о работе с такими базами читайте в разделе Хранение данных внутри диалога.
-
Нажмите Добавить.
Управление записями через интерфейс
Прямо в интерфейсе платформы можно просматривать, добавлять, редактировать и удалять записи.
Сейчас интерфейс поддерживает работу только с базами ACCOUNT и PROJECT. Записями в остальных базах можно управлять только через код процесса.
Просмотр записей
Чтобы перейти к записям базы данных:
- Перейдите в раздел Базы данных на главной странице или в конкретном проекте.
- Нажмите на карточку вашей базы данных. Вы увидите список всех записей, которые есть в базе данных.
Поиск
Поиск проходит по всем записям в базе данных и возвращает те, чьи значения (JSON) соответствуют критериям. Для сложных запросов, например, чтобы найти числа больше определенного значения или указать логические условия, используйте операторы MongoDB.
Запрос должен быть в формате JSON: заключайте условия поиска в фигурные скобки {...}.
Примеры:
-
Найти конкретного человека по email:
{"email": "ivanov@example.com"} -
Найти всех клиентов старше 25 лет. Используется оператор
$gt(greater than):{"age": {"$gt": 25}} -
Найти клиентов, у которых тариф базовый или которые отключили автопродление. Используется оператор
$or:{ "$or": [ {"tariff": "basic"}, {"auto_renewal": false} ] }
Добавление записи
- Нажмите Добавить запись.
- Укажите ключ, например
client:ivanov. - Введите значение в формате JSON, например:
{"name": "Иванов Иван", "age": 30}. - Нажмите Добавить.
Редактирование записи
-
Нажмите у записи.
-
Укажите новое значение в формате JSON.
предупреждениеТехнически ключ нельзя переименовать. Если вы измените ключ при редактировании, система создаст запись с новым ключом, а старая запись останется на месте.
-
Нажмите Сохранить.
Как использовать в процессе
Управлять данными прямо в процессе можно с помощью функций Db.
Вы можете добавить блоки этих функций в процесс или подключить их к агенту.
Для вызова функций Db в коде вам потребуется ID интеграции с вашей базой данных.
Чтобы получить ID:
- Перейдите в проект.
- В меню слева выберите Интеграции.
- На карточке вашей базы данных нажмите и выберите Скопировать ID интеграции.
Пример
// Получение данных конкретного клиента по ключу
const record = await Db.get("1000123456-example-abc", "client:ivanov");
// Обращаемся к данным внутри поля value
const email = record.value.email;
/* Структура record:
{
"key": "client:ivanov",
"value": { ... }
}
*/