Traits e evolução do perfil
Um evento conta o que aconteceu em um momento. Um trait mantém uma informação atual sobre a pessoa.
Essa diferença permite transformar acontecimentos em estado. Um evento pode informar que uma pessoa mudou de plano, entrou em uma nova cidade, fez uma compra ou iniciou uma sessão. O perfil pode guardar o plano atual, a cidade, a última compra ou a última sessão para uso em segmentos e jornadas.
Este guia explica como um campo de evento vira trait, quando usar um trait mapping ou um computed trait e como acompanhar a evolução do perfil.
Evento e trait respondem perguntas diferentes
As propriedades de um evento descrevem aquele acontecimento:
O histórico de eventos permite perguntar quais mudanças aconteceram. O trait permite consultar diretamente o estado atual:
O evento continua existindo com suas propriedades originais. O trait não substitui esse histórico; ele mantém uma visão prática do perfil naquele momento.
Informações que funcionam bem como traits
Traits são úteis quando o produto precisa consultar o estado mais recente de uma pessoa. Alguns exemplos são:
- cidade e estado;
- plano atual;
- data ou valor da última compra;
- data do último login;
- último produto visualizado;
- última sessão no site;
- primeiro nome usado para personalização.
Uma boa pergunta para decidir é:
Eu preciso consultar o valor atual desta informação sem reconstruí-lo a partir de todos os eventos?
Se a resposta for sim, a informação pode ser uma boa candidata a trait.
Como um campo de evento vira trait
Um trait mapping promove um campo da definição do evento para o perfil.
No evento plano_alterado, o mapping pode ligar:
Quando o evento é recebido, o PrismaFlow atualiza o trait plan no perfil reconhecido pelas identidades do evento.
O mapping também declara o tipo esperado do valor. Os tipos disponíveis são texto, número, booleano, data e JSON.
Trait mappings dependem de uma definição estruturada
Somente campos declarados na estrutura da definição podem ser escolhidos em um trait mapping. Isso protege o perfil contra caminhos incertos e tipos desconhecidos.
Quando a definição possui os campos importantes e seus tipos, o mapping é o caminho mais simples. Ele deixa explícito qual propriedade atualiza qual estado do perfil.
Algumas integrações possuem eventos com muitos campos e alta variação. Nelas, a definição pode declarar apenas o que está garantido no contrato e deixar os demais campos aparecerem no catálogo de propriedades.
Nesse cenário, não inclua um campo na definição apenas para conseguir criar o mapping. Use um computed trait depois que os eventos forem ingeridos e o campo estiver disponível no catálogo. O computed trait consegue transformar essa propriedade observada em estado do perfil numa etapa posterior do processamento.
Exemplo: acompanhar o plano atual
Considere esta sequência:
- A pessoa entra no plano
basic. - Depois, muda para
premium. - Mais tarde, volta para
basic.
Cada mudança continua registrada como evento. O trait plan acompanha o valor mais recente:
Uma jornada pode reagir à atualização para premium. Um segmento pode consultar quem está no plano basic agora. O histórico do trait mostra como o valor chegou ao estado atual.
O evento mais recente define o estado
Traits mapeados levam em conta quando o evento aconteceu. Se um evento antigo chegar atrasado, ele não deve substituir um valor produzido por um evento mais recente.
Exemplo:
- Um evento das 20h atualiza
planparapremium. - Depois, chega atrasado um evento das 18h com
planigual abasic. - O perfil continua com
plan: premium.
Isso evita que atrasos de transporte façam o perfil voltar para um estado antigo.
Quando dois eventos válidos atualizam o mesmo trait em ordem normal, o valor mais recente substitui o anterior.
Campos ausentes ou nulos
O PrismaFlow atualiza um trait somente quando o caminho mapeado possui um valor válido.
Se o campo estiver ausente ou vier como null, aquela atualização é descartada. O perfil mantém o último valor válido do trait.
Um valor nulo não remove o trait e não passa a representar seu estado atual.
De onde veio o valor
O PrismaFlow registra a origem de cada atualização:
track: veio de um evento por meio de um trait mapping;computed: foi calculado por uma regra de computed trait;manual: foi alterado diretamente no perfil;merge: foi conciliado durante a união de perfis.
No Customer 360, é possível consultar o valor atual, o tipo, a origem e quando o trait foi atualizado. O histórico mostra os valores anterior e novo, o momento da mudança e quem produziu a atualização: evento, computed trait, alteração manual ou merge.
Catálogo para segmentos e jornadas
Traits produzidos por trait mappings e por computed traits também alimentam um catálogo. Esse catálogo registra os campos conhecidos e os valores observados ao longo do tempo.
Imagine que o trait plan já tenha recebido os valores basic, premium e enterprise. Mesmo que cada perfil mantenha apenas seu plano atual, esses valores históricos ajudam o PrismaFlow a apresentar opções conhecidas durante a construção de uma condição, sem exigir que a pessoa responsável pela jornada ou pelo segmento conheça de memória todos os valores da integração.
O catálogo facilita a autoria futura de segmentos e jornadas: campos e valores já observados podem aparecer como sugestões durante a configuração das regras. Tanto o mapping direto quanto o cálculo de um computed trait contribuem para esse aprendizado.
Esse catálogo não substitui o histórico individual do perfil. O histórico explica como um trait mudou para uma pessoa; o catálogo ajuda a descobrir quais campos e valores existem na aplicação.
Edição manual é uma ferramenta de teste
Uma alteração manual pode ser útil durante o desenvolvimento de uma jornada.
Imagine uma jornada acionada quando o trait credit_eligible passa para true. Antes de criar o mapping ou a regra definitiva, você pode:
- publicar a jornada de teste;
- abrir o perfil do seu próprio usuário no PrismaFlow;
- alterar
credit_eligiblemanualmente paratrue; - observar a entrada e os efeitos da jornada no sistema integrado.
Esse caminho ajuda a testar um estado sem adaptar temporariamente a integração.
Alterações manuais não são a forma recomendada de manter os dados dos clientes. Mesmo quando vários perfis precisam receber uma característica, prefira derivar o estado dos eventos com trait mappings ou computed traits. Assim, a origem do valor continua reproduzível e acompanha a operação real.
Um evento posterior pode substituir um valor definido manualmente. A edição manual não cria uma prioridade permanente sobre as demais fontes.
Escolha entre mapping e computed trait
Use um trait mapping quando:
- o campo faz parte de uma definição bem estruturada;
- o caminho e o tipo são conhecidos;
- cada ocorrência deve atualizar diretamente o estado atual.
Use um computed trait quando:
- a propriedade não faz parte da estrutura declarada;
- o campo apareceu no catálogo depois da ingestão;
- o estado depende de uma condição ou transformação;
- o valor precisa ser somado, contado ou calculado a partir de vários eventos.
Computed traits possuem regras e comportamentos próprios. Consulte Computed traits — conceitos, regras e casos de uso para conhecer operações, filtros e backfill.
Antes de criar um trait
- Defina qual pergunta de estado o trait precisa responder.
- Escolha um nome estável que represente esse estado.
- Confirme se a propriedade faz parte da definição do evento.
- Use o mesmo tipo em todas as fontes que atualizam aquela chave.
- Decida entre mapping e computed trait pela estrutura disponível, não pela pressa de criar o campo.
- Evite usar edição manual como integração ou manutenção recorrente.
- Consulte o histórico quando o valor atual não for o esperado.
Assuntos relacionados
- Fundamentos, definições e propriedades [blocked]
- Identidades e formação de perfis [blocked]
- Computed traits — conceitos, regras e casos de uso
Revisão editorial
- Estado: Aprovado
- Fatos confirmados em: implementação atual de definições, ingestão, identidade, Customer 360 e histórico de traits
- Walkthrough: conhecimento operacional fornecido pelo Darlysson na PF-1366 em 15/08/2026
- Aprovação: GREEN confirmado em 15/08/2026 na PF-1366
- Lacunas conhecidas: operação suportada para remover um trait existente
