Documentación

Propiedades de contacto

Define campos personalizados para los contactos — como tipo de cuenta, región o nivel de contrato — y pásalos a través del widget. Las propiedades se muestran en el perfil del contacto, son editables por los operadores y filtrables en la Bandeja de entrada.

Descripción general#

Las Propiedades de contacto te permiten adjuntar datos estructurados a las conversaciones más allá de los campos integrados (email, name, userId). A diferencia de los metadata de formato libre, las propiedades tienen un esquema definido con tipos, etiquetas y validación — similar a los campos personalizados de HubSpot o Salesforce.

Definir esquema

Crea definiciones de propiedades en los Ajustes del agente con tipos como string, number, enum, boolean, date, url

Pasar desde el widget

Envía valores de propiedades mediante Respondo.identify() — se almacenan y se muestran automáticamente

Filtrar y editar

Filtra conversaciones por valores de propiedad en la Bandeja de entrada. Los operadores pueden ver y editar los atributos de un contacto en su perfil.

Definición de propiedades#

Las propiedades se definen por agente en Ajustes del agente → Propiedades de contacto. Cada propiedad tiene:

CampoDescripción
keyIdentificador único usado en el código. Autogenerado a partir de la etiqueta (editable). Letras minúsculas, dígitos y guiones bajos; debe empezar por una letra; de 2 a 63 caracteres. Las claves de sistema (user_id, visitor_id, timezone, page_url, …) están reservadas. Ejemplo: account_type
labelNombre legible que se muestra en el panel. Ejemplo: "Account Type"
typeTipo de valor: string, number, boolean, enum, date, url
enum_valuesPara el tipo enum — lista de valores permitidos. Ejemplo: ["starter", "pro", "enterprise"]
is_filterableReservado para un futuro control de filtrado; se guarda con la definición, pero el selector de filtros de la Bandeja de entrada actualmente lista todas las propiedades definidas (por defecto: true)
is_visibleReservado para un futuro control de visualización; se guarda con la definición pero aún no se aplica en la interfaz (por defecto: true)
Hasta 50 propiedades por agente. Las propiedades se pueden reordenar arrastrando y soltando en la interfaz de ajustes.

Pasar desde el widget#

Pasa los valores de las propiedades en el campo properties de Respondo.identify(). Las claves deben coincidir con las definiciones de propiedades de los Ajustes del agente.

Integración del widgetjavascript
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 (pasado como cadena)
    is_partner: 'true',           // boolean (pasado como cadena)
    contract_end: '2026-12-31',   // date
    dashboard_url: 'https://app.example.com/org/123'  // url
  }
});
Todos los valores de propiedad se pasan como cadenas. El panel gestiona la visualización específica de cada tipo (por ejemplo, boolean → Sí/No, url → enlace clicable, enum → badge).

Fragmento de integración#

El Fragmento de integración aparece automáticamente en Ajustes del agente → Propiedades de contacto en cuanto has definido al menos una propiedad, con todas tus claves de propiedad precompletadas. Haz clic en Copiar para tomarlo y pégalo en tu aplicación. El fragmento generado también incluye un placeholder de userHash para la verificación de identidad (HMAC-SHA256).

Cómo se almacenan los valores#

Los valores de las propiedades se almacenan en el campo JSONB metadata de la conversación con un prefijo cp_. Por ejemplo, una propiedad con la clave account_type se almacena como cp_account_type.

Las propiedades se actualizan en cada mensaje — si el widget envía nuevos valores, sobrescriben los existentes. Esto significa que los valores de las propiedades siempre reflejan los datos más recientes de tu aplicación.

Filtrado en la Bandeja de entrada#

Filtra conversaciones por valores de propiedad usando la barra de filtros de la Bandeja de entrada o una Vista guardada. Añade una condición Property, elige la propiedad por nombre — el selector lista todas las definiciones de todos tus agentes y también acepta una clave sin definición — y luego elige un valor. El campo de valor sugiere los valores observados y los valores enum a medida que escribes.

A través de la API, los endpoints de listado de conversaciones aceptan un parámetro de consulta cp.<key>=<value> (un alias exacto de attr.<key>). No existe una sintaxis de consulta de texto libre:

GET /api/v1/conversations?cp.account_type=enterprise

Edición de valores#

Los valores de las propiedades los establece tu aplicación — mediante la integración del widget o la API — y son de solo lectura en el panel de detalles de la conversación. El panel enlaza con el perfil del contacto, donde los operadores pueden ver y editar los atributos del contacto (Contactos → contacto → Atributos).

Propiedades vs Metadata

Característicapropertiesmetadata
EsquemaDefinido en Ajustes del agente con tiposPares clave-valor de formato libre
FiltrableSí, mediante la barra de filtros / Vistas guardadas (API: parámetro cp.<key>)No
Editable por operadoresNo — los valores provienen de tu aplicación; los atributos del contacto se editan en el perfil del contactoNo
Visualización tipadaSí (badges, enlaces, fechas, booleanos)Solo texto plano
AutocompletadoSí, sugerencias de valores en el campo de valor del filtroNo
Usa metadata para campos ad-hoc que no necesitan filtrado ni visualización tipada. Usa properties para datos estructurados que tu equipo utilizará activamente para segmentación y flujos de trabajo.