Перейти к основному содержимому

Встроенные базы данных

Используйте встроенные базы данных, чтобы хранить информацию по проекту: списки клиентов, адреса магазинов, настройки или товары.

Формат данных

Все данные хранятся в формате ключ-значение:

  • Ключ (key) — строка, которая однозначно идентифицирует запись в базе данных.
  • Значение (value) — JSON-объект, который содержит любые данные.

Примеры записей

Для небольших списков, которые нужны целиком (например, адреса филиалов), можно использовать одну запись.

  • Ключ: pharmacy_addresses

  • Значение:

    {
    "main_office": "ул. Примерная, дом 3",
    "branch_pushkin": "ул. Пушкина, дом 5",
    "city": "Москва"
    }

Создание баз данных

Общая база для аккаунта

Чтобы создать базу данных, которая будет доступна во всех проектах аккаунта:

  1. Перейдите на главную страницу — к списку всех проектов Agent Platform.
  2. Выберите Базы данных в меню слева.
  3. Нажмите Создать базу данных.
  4. Введите название базы данных и нажмите Добавить.

Такая база имеет область видимости ACCOUNT.

База данных для проекта

Чтобы создать базу данных, которая будет доступна только в одном проекте:

  1. Перейдите в проект.

  2. В меню слева выберите Базы данных.

    примечание

    Вы можете также добавить базу данных в разделе Интеграции. Процесс добавления не отличается.

  3. Нажмите Создать базу данных.

  4. Введите название.

  5. Выберите область видимости:

    • PROJECT — база данных будет доступна в этом проекте вне зависимости от сессии, канала или клиента.
    • CHANNEL — база привязана к конкретному каналу. Данные из разных каналов не пересекаются.
    • CLIENT — база привязана к конкретному клиенту. У каждого клиента будет свой независимый набор записей.
    • SESSION — база данных для временного хранения внутри одного диалога. Обычно ее не требуется создавать вручную. Подробнее о работе с такими базами читайте в разделе Хранение данных внутри диалога.
  6. Нажмите Добавить.

Управление записями через интерфейс

Прямо в интерфейсе платформы можно просматривать, добавлять, редактировать и удалять записи.

Ограничения

Сейчас интерфейс поддерживает работу только с базами ACCOUNT и PROJECT. Записями в остальных базах можно управлять только через код процесса.

Просмотр записей

Чтобы перейти к записям базы данных:

  1. Перейдите в раздел Базы данных на главной странице или в конкретном проекте.
  2. Нажмите на карточку вашей базы данных. Вы увидите список всех записей, которые есть в базе данных.

Поиск

Поиск проходит по всем записям в базе данных и возвращает те, чьи значения (JSON) соответствуют критериям. Для сложных запросов, например, чтобы найти числа больше определенного значения или указать логические условия, используйте операторы MongoDB.

Запрос должен быть в формате JSON: заключайте условия поиска в фигурные скобки {...}. Примеры:

  • Найти конкретного человека по email:

    {"email": "ivanov@example.com"}
  • Найти всех клиентов старше 25 лет. Используется оператор $gt (greater than):

    {"age": {"$gt": 25}}
  • Найти клиентов, у которых тариф базовый или которые отключили автопродление. Используется оператор $or:

    { "$or": [ {"tariff": "basic"}, {"auto_renewal": false} ] }

Добавление записи

  1. Нажмите Добавить запись.
  2. Укажите ключ, например client:ivanov.
  3. Введите значение в формате JSON, например: {"name": "Иванов Иван", "age": 30}.
  4. Нажмите Добавить.

Редактирование записи

  1. Нажмите у записи.

  2. Укажите новое значение в формате JSON.

    предупреждение

    Технически ключ нельзя переименовать. Если вы измените ключ при редактировании, система создаст запись с новым ключом, а старая запись останется на месте.

  3. Нажмите Сохранить.

Как использовать в процессе

Управлять данными прямо в процессе можно с помощью функций Db. Вы можете добавить блоки этих функций в процесс или подключить их к агенту.

подсказка

Для вызова функций Db в коде вам потребуется ID интеграции с вашей базой данных. Чтобы получить ID:

  1. Перейдите в проект.
  2. В меню слева выберите Интеграции.
  3. На карточке вашей базы данных нажмите и выберите Скопировать ID интеграции.

Пример

// Получение данных конкретного клиента по ключу
const record = await Db.get("1000123456-example-abc", "client:ivanov");

// Обращаемся к данным внутри поля value
const email = record.value.email;

/* Структура record:
{
"key": "client:ivanov",
"value": { ... }
}
*/