PrismaFlowGuia do produto

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:

json
{  "name": "plano_alterado",  "properties": {    "previous_plan": "basic",    "current_plan": "premium"  }}

O histórico de eventos permite perguntar quais mudanças aconteceram. O trait permite consultar diretamente o estado atual:

json
{  "plan": "premium"}

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:

text
properties.current_plan → plan

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:

  1. A pessoa entra no plano basic.
  2. Depois, muda para premium.
  3. Mais tarde, volta para basic.

Cada mudança continua registrada como evento. O trait plan acompanha o valor mais recente:

text
Evento recebido                     Trait após o eventocurrent_plan = "basic"              plan = "basic"current_plan = "premium"            plan = "premium"current_plan = "basic"              plan = "basic"

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:

  1. Um evento das 20h atualiza plan para premium.
  2. Depois, chega atrasado um evento das 18h com plan igual a basic.
  3. 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:

  1. publicar a jornada de teste;
  2. abrir o perfil do seu próprio usuário no PrismaFlow;
  3. alterar credit_eligible manualmente para true;
  4. 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

  1. Defina qual pergunta de estado o trait precisa responder.
  2. Escolha um nome estável que represente esse estado.
  3. Confirme se a propriedade faz parte da definição do evento.
  4. Use o mesmo tipo em todas as fontes que atualizam aquela chave.
  5. Decida entre mapping e computed trait pela estrutura disponível, não pela pressa de criar o campo.
  6. Evite usar edição manual como integração ou manutenção recorrente.
  7. 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