Atributos del Cliente
Los Atributos del Cliente son pares clave-valor flexibles que se pueden adjuntar a cualquier registro de cliente para almacenar metadatos personalizados, configuraciones o información específica del negocio que no encaja en los campos estándar del cliente.
Para la categorización visual de clientes y enlaces clicables, consulte Etiquetas de Cliente. Para información básica del cliente, consulte Clientes, Contactos, Sitios y Servicios.
A diferencia de los campos de base de datos fijos, los atributos le permiten extender dinámicamente los registros de clientes sin modificar el esquema de la base de datos. Esto los hace ideales para almacenar datos específicos de implementación, parámetros de integración o banderas de lógica de negocio personalizadas.
Propósito y Casos de Uso
Los casos de uso comunes para los Atributos del Cliente incluyen:
1. Datos de Integración
Almacenar identificadores de sistemas externos o claves API específicas para este cliente:
external_crm_id= "SF-12345" (ID de cliente de Salesforce)legacy_system_id= "OLD-CRM-789" (Referencia de migración)hubspot_contact_id= "12345678" (Integración de HubSpot)
2. Lógica de Negocio Personalizada
Almacenar banderas o configuraciones que controlan el comportamiento específico del cliente:
billing_method= "quarterly" (Anular la facturación mensual predeterminada)auto_provision= "true" (Habilitar la provisión automática de servicios)support_tier= "premium" (Nivel de soporte personalizado)credit_limit= "10000" (Límite de crédito específico del cliente)
3. Datos de Cumplimiento y Regulatorios
Rastrear metadatos relacionados con el cumplimiento:
gdpr_consent_date= "2025-01-01" (Consentimiento para el procesamiento de datos)tax_exempt= "true" (Estado de exención fiscal)regulatory_entity= "FCC-123456" (Identificador regulatorio)
4. Metadatos Operacionales
Almacenar información operacional:
preferred_contact_method= "email" (Preferencia de comunicación)account_manager= "<john.smith@company.com>" (Gerente de cuenta asignado)onboarding_date= "2025-01-15" (Seguimiento del ciclo de vida del cliente)churn_risk_score= "0.23" (Análisis predictivo)
5. Parámetros de Provisión
Almacenar configuraciones específicas de provisión:
radius_username_format= "email" (Formato RADIUS personalizado)vlan_id= "100" (Configuración de red)ipv6_enabled= "true" (Banderas de características)
Atributos vs. Campos Estándar
Use Atributos Cuando:
- Los datos son específicos de la implementación o varían según la instalación
- Los requisitos cambian con frecuencia
- Almacenar metadatos específicos de integración
- Prototipar nuevas características antes de agregar campos de base de datos
- Los datos no necesitan consultas complejas o uniones
Use Campos Estándar Cuando:
- Los datos son fundamentales para el modelo de cliente (nombre, correo electrónico, dirección)
- Se requiere búsqueda, filtrado o informes frecuentes
- Los datos tienen restricciones de integridad referencial
- El rendimiento es crítico para consultas a gran escala
Gestión de Atributos a través de la UI
Visualización de Atributos del Cliente
Para ver los atributos de un cliente:
- Navegue a la página de resumen del cliente
- Haga clic en la pestaña Atributos
- Verá una tabla de todos los atributos para este cliente, mostrando:
- Nombre del Atributo (clave)
- Valor del Atributo
- Fecha de Creación
- Fecha de Última Modificación
Creación de un Nuevo Atributo
Para crear un nuevo atributo para un cliente:
- Navegue a la página de resumen del cliente
- Haga clic en la pestaña Atributos
- Haga clic en el botón Agregar Atributo
- Complete los campos requeridos:
- Nombre del Atributo (requerido): La clave/nombre para este atributo (por ejemplo,
external_crm_id) - Valor del Atributo (requerido): El valor a almacenar (por ejemplo,
SF-12345)
- Nombre del Atributo (requerido): La clave/nombre para este atributo (por ejemplo,
- Haga clic en Crear Atributo
Convenciones de Nomenclatura:
- Use minúsculas con guiones bajos:
external_system_id✓ - Evite espacios:
external system id✗ - Mantenga los nombres descriptivos pero concisos
- Use nombres consistentes entre clientes para los mismos tipos de atributos
Edición de un Atributo
Para editar un atributo existente:
- Navegue a la página de resumen del cliente
- Haga clic en la pestaña Atributos
- Encuentre el atributo que desea editar en la tabla
- Haga clic en el botón Editar (lápiz)
- Modifique el nombre o valor del atributo
- Haga clic en Actualizar Atributo
::: note ::: title Nota :::
Cambiar el nombre de un atributo crea un nuevo par clave-valor. Asegúrese de que esto no rompa las integraciones que dependen del nombre original del atributo. :::
Eliminación de un Atributo
Para eliminar un atributo:
- Navegue a la página de resumen del cliente
- Haga clic en la pestaña Atributos
- Encuentre el atributo que desea eliminar en la tabla
- Haga clic en el botón Eliminar (papelera)
- Confirme la eliminación en la ventana emergente
::: warning ::: title Advertencia :::
Eliminar atributos utilizados por integraciones, flujos de trabajo de provisión o lógica de facturación puede causar fallos. Verifique las dependencias antes de la eliminación. :::
Referencia de Campo de Atributos
Integración de API
Los atributos se pueden gestionar programáticamente a través de la API:
Crear o Actualizar un Atributo
Endpoint: PUT /crm/attribute/
Permiso Requerido: create_customer_attribute
Cuerpo de la Solicitud:
{
"customer_id": 123,
"attribute_name": "external_crm_id",
"attribute_value": "SF-12345"
}
Respuesta:
{
"attribute_id": 456,
"customer_id": 123,
"attribute_name": "external_crm_id",
"attribute_value": "SF-12345",
"created": "2025-01-04 10:30:00",
"last_modified": "2025-01-04 10:30:00"
}
Actualizar un Atributo Existente
Endpoint: PATCH /crm/attribute/attribute_id/{attribute_id}
Permiso Requerido: update_customer_attribute
Cuerpo de la Solicitud:
{
"attribute_value": "SF-54321"
}
Obtener Atributo por ID
Endpoint: GET /crm/attribute/attribute_id/{attribute_id}
Permiso Requerido: view_customer_attribute
Respuesta:
{
"attribute_id": 456,
"customer_id": 123,
"attribute_name": "external_crm_id",
"attribute_value": "SF-12345",
"created": "2025-01-04 10:30:00",
"last_modified": "2025-01-04 10:30:00"
}
Obtener Todos los Atributos por ID de Cliente
Endpoint: GET /crm/attribute/customer_id/{customer_id}
Permiso Requerido: view_customer_attribute
Respuesta:
[
{
"attribute_id": 456,
"customer_id": 123,
"attribute_name": "external_crm_id",
"attribute_value": "SF-12345",
"created": "2025-01-04 10:30:00",
"last_modified": "2025-01-04 10:30:00"
},
{
"attribute_id": 457,
"customer_id": 123,
"attribute_name": "billing_method",
"attribute_value": "quarterly",
"created": "2025-01-04 10:35:00",
"last_modified": "2025-01-04 10:35:00"
}
]
Eliminar un Atributo
Endpoint: DELETE /crm/attribute/attribute_id/{attribute_id}
Permiso Requerido: delete_customer_attribute
Respuesta:
{
"result": "success"
}
Operaciones de Atributos en Masa
Gestión de Múltiples Atributos
Para establecer múltiples atributos para un cliente a la vez (por ejemplo, durante la incorporación o sincronización de integración):
import requests
customer_id = 123
attributes = [
{"attribute_name": "external_crm_id", "attribute_value": "SF-12345"},
{"attribute_name": "billing_method", "attribute_value": "quarterly"},
{"attribute_name": "support_tier", "attribute_value": "premium"}
]
for attr in attributes:
attr["customer_id"] = customer_id
requests.put(
"https://api.example.com/crm/attribute/",
json=attr,
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
Consultando Clientes por Atributo
Aunque los atributos no tienen puntos finales de búsqueda integrados, puede filtrar clientes por atributo utilizando la API de búsqueda de clientes con filtrado personalizado:
# Obtener todos los clientes, luego filtrar por atributo en el código de la aplicación
customers = requests.get("https://api.example.com/crm/customer/").json()
for customer in customers:
attributes = requests.get(
f"https://api.example.com/crm/attribute/customer_id/{customer['customer_id']}"
).json()
# Encontrar clientes con un atributo específico
for attr in attributes:
if attr['attribute_name'] == 'support_tier' and attr['attribute_value'] == 'premium':
print(f"Cliente premium: {customer['customer_name']}")
::: note ::: title Nota :::
Para consultas frecuentes basadas en atributos, considere agregar campos de base de datos indexados o implementar un punto final de búsqueda dedicado. :::
Mejores Prácticas
1. Convenciones de Nomenclatura
- Use snake_case:
external_system_id✓ - Sea descriptivo:
billing_method✓ vsmethod✗ - Evite palabras clave reservadas o caracteres especiales
- Documente los significados de los atributos en su guía de implementación
2. Tipos de Datos
- Los atributos almacenan valores como cadenas (máx. 150 caracteres)
- Para booleanos, use "true"/"false" (minúsculas)
- Para fechas, use el formato ISO 8601: "2025-01-04 10:30:00"
- Para datos JSON grandes, considere campos de base de datos dedicados en su lugar
3. Validación
- Valide los valores de los atributos en el código de la aplicación antes de guardar
- Use formatos de valor consistentes entre clientes
- Documente los valores esperados para cada nombre de atributo
4. Documentación
- Mantenga un registro de los nombres y propósitos de los atributos
- Documente qué sistemas/integraciones dependen de atributos específicos
- Incluya ejemplos de valores válidos
5. Migración y Limpieza
- Audite regularmente los atributos no utilizados
- Elimine atributos obsoletos después de migraciones del sistema
- Versione los nombres de atributos al cambiar esquemas (por ejemplo,
api_key_v2)
Ejemplos de Flujos de Trabajo
Integración de Incorporación
Al migrar clientes de un sistema heredado:
# Almacenar referencia del sistema heredado para depuración
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "legacy_crm_id",
"attribute_value": "OLD-12345"
}
# Rastrear fecha de migración
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "migrated_date",
"attribute_value": "2025-01-04"
}
Reglas de Facturación Personalizadas
Anular el ciclo de facturación predeterminado para un cliente específico:
# Establecer facturación trimestral
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "billing_cycle",
"attribute_value": "quarterly"
}
# Luego en el código de facturación, verifique el atributo antes de procesar
attributes = GET /crm/attribute/customer_id/123
billing_cycle = next(
(a['attribute_value'] for a in attributes if a['attribute_name'] == 'billing_cycle'),
'monthly' # predeterminado
)
Banderas de Características
Habilitar características beta para clientes específicos:
# Habilitar provisión IPv6
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "feature_ipv6_enabled",
"attribute_value": "true"
}
Permisos
Las operaciones de atributos requieren los siguientes permisos:
view_customer_attribute- Ver atributoscreate_customer_attribute- Crear nuevos atributosupdate_customer_attribute- Modificar atributos existentesdelete_customer_attribute- Eliminar atributos
Consulte rbac para la configuración de control de acceso basado en roles.
Solución de Problemas
Atributo No Aparece en la UI
- Verifique que el atributo fue creado (verifique la respuesta de la API)
- Actualice la página para recargar los datos del cliente
- Verifique que el usuario tenga el permiso
view_customer_attribute
No se Puede Actualizar el Atributo
- Asegúrese de tener el permiso
update_customer_attribute - Verifique que el attribute_id sea correcto
- Verifique que el atributo pertenezca al cliente especificado
Integración Fallando Después de la Eliminación de Atributo
- Restaure el atributo con el valor anterior
- Actualice el código de integración para manejar atributos faltantes de manera adecuada
- Audite las dependencias de atributos antes de la eliminación
Valor del Atributo Truncado
- Los valores de los atributos tienen un límite de 150 caracteres
- Para datos más largos, divídalos en múltiples atributos o use el campo de notas del cliente
- Considere almacenar datos grandes en campos de base de datos dedicados