Atributos do Cliente
Atributos do Cliente são pares flexíveis de chave-valor que podem ser anexados a qualquer registro de cliente para armazenar metadados personalizados, configurações de configuração ou informações específicas do negócio que não se encaixam nos campos padrão do cliente.
Para categorização visual de clientes e links clicáveis, veja Atributos do Cliente. Para informações básicas sobre clientes, veja Clientes, Contatos, Sites e Serviços.
Ao contrário dos campos fixos do banco de dados, os atributos permitem que você estenda dinamicamente os registros de clientes sem modificar o esquema do banco de dados. Isso os torna ideais para armazenar dados específicos de implantação, parâmetros de integração ou flags de lógica de negócios personalizadas.
Propósito e Casos de Uso
Casos de uso comuns para Atributos do Cliente incluem:
1. Dados de Integração
Armazene identificadores de sistemas externos ou chaves de API específicas para este cliente:
external_crm_id= "SF-12345" (ID do cliente Salesforce)legacy_system_id= "OLD-CRM-789" (Referência de migração)hubspot_contact_id= "12345678" (Integração HubSpot)
2. Lógica de Negócios Personalizada
Armazene flags ou configurações que controlam o comportamento específico do cliente:
billing_method= "quarterly" (Substituir a cobrança mensal padrão)auto_provision= "true" (Ativar provisionamento automático de serviços)support_tier= "premium" (Nível de suporte personalizado)credit_limit= "10000" (Limite de crédito específico do cliente)
3. Dados de Conformidade e Regulatórios
Rastreie metadados relacionados à conformidade:
gdpr_consent_date= "2025-01-01" (Consentimento para processamento de dados)tax_exempt= "true" (Status de isenção fiscal)regulatory_entity= "FCC-123456" (Identificador regulatório)
4. Metadados Operacionais
Armazene informações operacionais:
preferred_contact_method= "email" (Preferência de comunicação)account_manager= "<john.smith@company.com>" (Gerente de conta designado)onboarding_date= "2025-01-15" (Rastreamento do ciclo de vida do cliente)churn_risk_score= "0.23" (Análise preditiva)
5. Parâmetros de Provisionamento
Armazene configurações específicas de provisionamento:
radius_username_format= "email" (Formato RADIUS personalizado)vlan_id= "100" (Configuração de rede)ipv6_enabled= "true" (Flags de recurso)
Atributos vs. Campos Padrão
Use Atributos Quando:
- Os dados são específicos de implantação ou variam por instalação
- Os requisitos mudam com frequência
- Armazenar metadados específicos de integração
- Prototipar novos recursos antes de adicionar campos ao banco de dados
- Os dados não precisam de consultas complexas ou junções
Use Campos Padrão Quando:
- Os dados são essenciais para o modelo de cliente (nome, email, endereço)
- Busca, filtragem ou relatórios frequentes são necessários
- Os dados têm restrições de integridade referencial
- O desempenho é crítico para consultas em larga escala
Gerenciando Atributos via a UI
Visualizando Atributos do Cliente
Para visualizar atributos de um cliente:
- Navegue até a página de visão geral do cliente
- Clique na aba Atributos
- Você verá uma tabela de todos os atributos para este cliente, mostrando:
- Nome do Atributo (chave)
- Valor do Atributo
- Data de Criação
- Data da Última Modificação
Criando um Novo Atributo
Para criar um novo atributo para um cliente:
- Navegue até a página de visão geral do cliente
- Clique na aba Atributos
- Clique no botão Adicionar Atributo
- Preencha os campos obrigatórios:
- Nome do Atributo (obrigatório): A chave/nome para este atributo
(ex:
external_crm_id) - Valor do Atributo (obrigatório): O valor a ser armazenado (ex:
SF-12345)
- Nome do Atributo (obrigatório): A chave/nome para este atributo
(ex:
- Clique em Criar Atributo
Convenções de Nomenclatura:
- Use letras minúsculas com underscores:
external_system_id✓ - Evite espaços:
external system id✗ - Mantenha os nomes descritivos, mas concisos
- Use nomenclatura consistente entre clientes para os mesmos tipos de atributos
Editando um Atributo
Para editar um atributo existente:
- Navegue até a página de visão geral do cliente
- Clique na aba Atributos
- Encontre o atributo que você deseja editar na tabela
- Clique no botão Editar (lápis)
- Modifique o nome ou valor do atributo
- Clique em Atualizar Atributo
::: note ::: title Nota :::
Alterar o nome de um atributo cria um novo par chave-valor. Certifique-se de que isso não quebre integrações que dependem do nome original do atributo. :::
Deletando um Atributo
Para deletar um atributo:
- Navegue até a página de visão geral do cliente
- Clique na aba Atributos
- Encontre o atributo que você deseja deletar na tabela
- Clique no botão Deletar (lixeira)
- Confirme a exclusão na janela pop-up
::: warning ::: title Aviso :::
Deletar atributos usados por integrações, fluxos de trabalho de provisionamento ou lógica de cobrança pode causar falhas. Verifique as dependências antes da exclusão. :::
Referência de Campo de Atributo
Integração API
Atributos podem ser gerenciados programaticamente via API:
Criar ou Atualizar um Atributo
Endpoint: PUT /crm/attribute/
Permissão Necessária: create_customer_attribute
Corpo da Solicitação:
{
"customer_id": 123,
"attribute_name": "external_crm_id",
"attribute_value": "SF-12345"
}
Resposta:
{
"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"
}
Atualizar um Atributo Existente
Endpoint: PATCH /crm/attribute/attribute_id/{attribute_id}
Permissão Necessária: update_customer_attribute
Corpo da Solicitação:
{
"attribute_value": "SF-54321"
}
Obter Atributo por ID
Endpoint: GET /crm/attribute/attribute_id/{attribute_id}
Permissão Necessária: view_customer_attribute
Resposta:
{
"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"
}
Obter Todos os Atributos por ID do Cliente
Endpoint: GET /crm/attribute/customer_id/{customer_id}
Permissão Necessária: view_customer_attribute
Resposta:
[
{
"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"
}
]
Deletar um Atributo
Endpoint: DELETE /crm/attribute/attribute_id/{attribute_id}
Permissão Necessária: delete_customer_attribute
Resposta:
{
"result": "success"
}
Operações em Lote de Atributos
Gerenciando Múltiplos Atributos
Para definir múltiplos atributos para um cliente de uma vez (ex: durante onboarding ou sincronização de integração):
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
Embora os atributos não tenham endpoints de busca integrados, você pode filtrar clientes por atributo usando a API de busca de clientes com filtragem personalizada:
# Obter todos os clientes, depois filtrar por atributo no código da aplicação
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 com 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 frequentes baseadas em atributos, considere adicionar campos de banco de dados indexados ou implementar um endpoint de busca dedicado. :::
Melhores Práticas
1. Convenções de Nomenclatura
- Use snake_case:
external_system_id✓ - Seja descritivo:
billing_method✓ vsmethod✗ - Evite palavras-chave reservadas ou caracteres especiais
- Documente os significados dos atributos em seu guia de implantação
2. Tipos de Dados
- Atributos armazenam valores como strings (máx. 150 caracteres)
- Para booleanos, use "true"/"false" (minúsculas)
- Para datas, use o formato ISO 8601: "2025-01-04 10:30:00"
- Para grandes dados JSON, considere campos de banco de dados dedicados
3. Validação
- Valide os valores dos atributos no código da aplicação antes de salvar
- Use formatos de valor consistentes entre clientes
- Documente os valores esperados para cada nome de atributo
4. Documentação
- Mantenha um registro dos nomes e propósitos dos atributos
- Documente quais sistemas/integrações dependem de atributos específicos
- Inclua exemplos de valores válidos
5. Migração e Limpeza
- Audite regularmente atributos não utilizados
- Remova atributos obsoletos após migrações de sistema
- Versione nomes de atributos ao alterar esquemas (ex:
api_key_v2)
Exemplos de Fluxos de Trabalho
Integração de Onboarding
Ao migrar clientes de um sistema legado:
# Armazenar referência do sistema legado para depuração
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "legacy_crm_id",
"attribute_value": "OLD-12345"
}
# Rastrear data da migração
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "migrated_date",
"attribute_value": "2025-01-04"
}
Regras de Cobrança Personalizadas
Substituir o ciclo de cobrança padrão para um cliente específico:
# Definir cobrança trimestral
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "billing_cycle",
"attribute_value": "quarterly"
}
# Então no código de cobrança, verifique o atributo antes de processar
attributes = GET /crm/attribute/customer_id/123
billing_cycle = next(
(a['attribute_value'] for a in attributes if a['attribute_name'] == 'billing_cycle'),
'monthly' # padrão
)
Flags de Recursos
Ativar recursos beta para clientes específicos:
# Ativar provisionamento IPv6
PUT /crm/attribute/
{
"customer_id": 123,
"attribute_name": "feature_ipv6_enabled",
"attribute_value": "true"
}
Permissões
Operações de atributos requerem as seguintes permissões:
view_customer_attribute- Visualizar atributoscreate_customer_attribute- Criar novos atributosupdate_customer_attribute- Modificar atributos existentesdelete_customer_attribute- Remover atributos
Veja rbac para configuração de controle de acesso baseado em função.
Solução de Problemas
Atributo Não Aparecendo na UI
- Verifique se o atributo foi criado (verifique a resposta da API)
- Atualize a página para recarregar os dados do cliente
- Verifique se o usuário tem permissão
view_customer_attribute
Não é Possível Atualizar Atributo
- Certifique-se de que você tem permissão
update_customer_attribute - Verifique se o attribute_id está correto
- Verifique se o atributo pertence ao cliente especificado
Integração Falhando Após Exclusão de Atributo
- Restaure o atributo com o valor anterior
- Atualize o código de integração para lidar com atributos ausentes de forma adequada
- Audite as dependências de atributos antes da exclusão
Valor do Atributo Truncado
- Os valores dos atributos têm limite de 150 caracteres
- Para dados mais longos, divida em múltiplos atributos ou use o campo de notas do cliente
- Considere armazenar grandes dados em campos de banco de dados dedicados