Свойства контактов
Задавайте пользовательские поля для контактов — например, тип аккаунта, регион или уровень тарифа — и передавайте их через виджет. Свойства показываются в профиле контакта, доступны для редактирования операторами и позволяют фильтровать Инбокс.
Обзор#
Свойства контактов позволяют прикреплять к диалогам структурированные данные помимо встроенных полей (email, имя, userId). В отличие от произвольных metadata, свойства имеют определённую схему с типами, метками и валидацией — по аналогии с пользовательскими полями в HubSpot или Salesforce.
Определите схему
Создавайте определения свойств в настройках агента с типами: string, number, enum, boolean, date, url
Передавайте из виджета
Передавайте значения свойств через Respondo.identify() — они сохраняются и отображаются автоматически
Фильтруйте и редактируйте
Фильтруйте диалоги по значениям свойств в Инбоксе. Операторы могут просматривать и редактировать атрибуты контакта в его профиле.
Определение свойств#
Свойства задаются для каждого агента в разделе Настройки агента → Свойства контактов. У каждого свойства есть:
| Поле | Описание |
|---|---|
| key | Уникальный идентификатор, используемый в коде. Генерируется автоматически из метки (можно изменить). Строчные буквы, цифры и подчёркивания; должен начинаться с буквы; 2–63 символа. Системные ключи (user_id, visitor_id, timezone, page_url, …) зарезервированы. Пример: account_type |
| label | Человекочитаемое имя, отображаемое в дашборде. Пример: «Тип аккаунта» |
| type | Тип значения: string, number, boolean, enum, date, url |
| enum_values | Для типа enum — список допустимых значений. Пример: ["starter", "pro", "enterprise"] |
| is_filterable | Зарезервировано для будущего управления фильтрацией; хранится вместе с определением, но выбор свойств в фильтре Инбокса сейчас показывает все заданные свойства (по умолчанию: true) |
| is_visible | Зарезервировано для будущего управления отображением; хранится вместе с определением, но пока не применяется в UI (по умолчанию: true) |
Передача из виджета#
Передавайте значения свойств в поле properties метода Respondo.identify(). Ключи должны совпадать с определениями свойств из настроек агента.
Respondo.identify({
email: 'user@example.com',
name: 'Jane Smith',
userId: 'usr_456',
properties: {
account_type: 'enterprise', // enum
region: 'eu-west', // string
monthly_spend: '15000', // number (передаётся как строка)
is_partner: 'true', // boolean (передаётся как строка)
contract_end: '2026-12-31', // date
dashboard_url: 'https://app.example.com/org/123' // url
}
});Сниппет для интеграции#
Сниппет интеграции появляется автоматически в разделе Настройки агента → Свойства контактов, как только вы определили хотя бы одно свойство, — все ваши ключи свойств уже подставлены. Нажмите Копировать, чтобы забрать его, и вставьте в своё приложение. Сгенерированный сниппет также содержит плейсхолдер userHash для проверки личности (HMAC-SHA256).
Как хранятся значения#
Значения свойств хранятся в поле metadata (JSONB) диалога с префиксом cp_. Например, свойство с ключом account_type хранится как cp_account_type.
Свойства обновляются при каждом сообщении — если виджет присылает новые значения, они перезаписывают существующие. Это значит, что значения свойств всегда отражают самые свежие данные из вашего приложения.
Фильтрация в Инбоксе#
Фильтруйте диалоги по значениям свойств через панель фильтров Инбокса или сохранённое представление. Добавьте условие Свойство, выберите свойство по имени — список показывает все определения по всем вашим агентам и также принимает произвольный ключ без определения — затем выберите значение. Поле значения подсказывает наблюдавшиеся значения и значения enum по мере ввода.
Через API эндпоинты списка диалогов принимают query-параметр cp.<key>=<value> (точный алиас attr.<key>). Свободного текстового синтаксиса запросов нет:
GET /api/v1/conversations?cp.account_type=enterpriseРедактирование значений#
Значения свойств задаются вашим приложением — через интеграцию виджета или API — и доступны только для чтения в панели деталей диалога. Панель ссылается на профиль контакта, где операторы могут просматривать и редактировать атрибуты контакта (Контакты → контакт → Атрибуты).
Свойства и метаданные
| Возможность | properties | metadata |
|---|---|---|
| Схема | Определена в настройках агента с типами | Произвольные пары ключ-значение |
| Фильтруемость | Да, через панель фильтров / сохранённые представления (API: параметр cp.<key>) | Нет |
| Редактирование операторами | Нет — значения приходят из вашего приложения; атрибуты контакта редактируются в профиле контакта | Нет |
| Отображение с учётом типа | Да (бейджи, ссылки, даты, булевы значения) | Только простой текст |
| Автодополнение | Да, подсказки значений в поле значения фильтра | Нет |
metadata для произвольных полей, которым не нужна фильтрация или типизированное отображение. Используйте properties для структурированных данных, которые ваша команда будет активно использовать для сегментации и рабочих процессов.