Документация

Свойства контактов

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

Обзор#

Свойства контактов позволяют прикреплять к диалогам структурированные данные помимо встроенных полей (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)
До 50 свойств на агента. Свойства можно переупорядочивать перетаскиванием в интерфейсе настроек.

Передача из виджета#

Передавайте значения свойств в поле properties метода Respondo.identify(). Ключи должны совпадать с определениями свойств из настроек агента.

Интеграция виджетаjavascript
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
  }
});
Все значения свойств передаются как строки. Дашборд обрабатывает отображение с учётом типа (например, boolean → Да/Нет, url → кликабельная ссылка, enum → бейдж).

Сниппет для интеграции#

Сниппет интеграции появляется автоматически в разделе Настройки агента → Свойства контактов, как только вы определили хотя бы одно свойство, — все ваши ключи свойств уже подставлены. Нажмите Копировать, чтобы забрать его, и вставьте в своё приложение. Сгенерированный сниппет также содержит плейсхолдер 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 — и доступны только для чтения в панели деталей диалога. Панель ссылается на профиль контакта, где операторы могут просматривать и редактировать атрибуты контакта (Контакты → контакт → Атрибуты).

Свойства и метаданные

Возможностьpropertiesmetadata
СхемаОпределена в настройках агента с типамиПроизвольные пары ключ-значение
ФильтруемостьДа, через панель фильтров / сохранённые представления (API: параметр cp.<key>)Нет
Редактирование операторамиНет — значения приходят из вашего приложения; атрибуты контакта редактируются в профиле контактаНет
Отображение с учётом типаДа (бейджи, ссылки, даты, булевы значения)Только простой текст
АвтодополнениеДа, подсказки значений в поле значения фильтраНет
Используйте metadata для произвольных полей, которым не нужна фильтрация или типизированное отображение. Используйте properties для структурированных данных, которые ваша команда будет активно использовать для сегментации и рабочих процессов.