Purchase), um cadastro ou um login.
Esse molde diz ao PrismaFlow quatro coisas: quais informações o evento carrega (os campos),
de que tipo é cada uma, o que fazer quando chega algo fora do molde, e quais campos
viram características da pessoa (os traits do perfil).
Pense no molde como a ficha de um formulário. Depois que ele está definido, todo evento daquele
tipo é conferido contra a ficha antes de entrar.
As peças de uma definição
Nome e versão
O nome identifica o tipo de evento (ex.:
Purchase). A versão é controlada pelo PrismaFlow —
você não precisa se preocupar com ela.Campos (propriedades)
A lista de informações que o evento carrega e o tipo de cada uma (texto, número, data, lista…).
Modo de validação
Define o que acontece quando um evento chega com campos que não estão no molde.
Trait mappings
Regras que pegam um campo do evento e o gravam como característica no perfil da pessoa.
Onde encontrar
As definições ficam na aba Definições, dentro de Eventos. Cada definição aparece como um cartão, mostrando o modo de validação, a versão e quando foi criada.
Criar uma definição
Defina os campos do evento
Aqui você descreve quais informações o evento carrega. Há dois caminhos:
Os tipos de campo disponíveis:

- Importar JSON (mais rápido)
- Criar manualmente
Cole um exemplo real do evento e o PrismaFlow descobre os campos e os tipos sozinho.


| Tipo | O que é | Exemplo |
|---|---|---|
string | Texto | "abc123" |
number | Qualquer número, inclusive com casas decimais | 12.5 |
integer | Apenas número inteiro, sem casas decimais | 42 |
boolean | Verdadeiro ou falso | true |
date | Uma data ou data com hora | 2026-04-20T10:00:00Z |
array | Uma lista de valores (você escolhe o subtipo) | ["shirt", "pants"] |
object | Um grupo de campos dentro do campo | { "rua": "...", "cep": "..." } |
number ou integer? Use number quando o valor pode ter vírgula (preço, peso). Use
integer só quando o valor é sempre inteiro (quantidade, idade). Na dúvida, number aceita
os dois. Um valor como 12.5 enviado num campo integer é recusado.Campos
date aceitam tanto uma data (2026-04-20) quanto uma data com hora. O PrismaFlow
padroniza o valor automaticamente, então você não precisa se preocupar com o formato exato.(Opcional) Promova campos a características do perfil
Um trait mapping pega um campo do evento e o grava como uma característica (trait) no
perfil da pessoa. Exemplo: o campo 
Para criar, escolha de qual campo vem o valor, qual trait ele alimenta e o tipo do
valor.

amount da compra vira o trait last_purchase_amount no
perfil.


O valor mais recente sempre vence. A cada novo evento, o trait é atualizado com o valor
que chegou — o anterior é sobrescrito. Para cálculos que somam, contam ou fazem médias ao
longo do tempo, use os Computed Traits.
O trait mapping só passa a valer dos próximos eventos em diante — ele não recalcula o
histórico já recebido. E você só consegue promover um campo que existe no molde (por isso
“Campo do schema” é uma lista, não um texto livre).
Dê um nome e escolha o modo de validação
Por fim, informe o nome do evento, uma descrição e tags opcionais, e escolha o
modo de validação.

Estrito (recomendado)
Eventos que trazem campos fora do molde são recusados e enviados para a Quarentena.
Mantém seus dados limpos.
Permissivo
Campos extras passam pela validação. Apenas os campos obrigatórios são conferidos.
Editar uma definição
Você pode editar uma definição existente a qualquer momento. Enquanto as mudanças são compatíveis (como adicionar um campo opcional, mexer na descrição ou nas tags), elas são salvas direto. Mas algumas mudanças são quebras (breaking changes): elas fariam eventos que já funcionavam passar a falhar. Quando o PrismaFlow detecta uma quebra, ele não deixa sobrescrever a versão atual — é obrigatório criar uma nova versão. Assim, tudo que já estava rodando continua intacto na versão antiga.
- Trocar o modo de validação de Permissivo para Estrito — eventos com campos extras, que antes passavam, passariam a ser recusados.
- Adicionar um novo campo obrigatório — eventos antigos que não enviam esse campo falhariam na validação.
Bom saber
Criar com um nome que já existe cria uma nova versão
Se você criar uma definição com um nome que já existe, o PrismaFlow não substitui a
anterior — ele cria uma nova versão (v2, v3…). As versões antigas continuam valendo para os
eventos que as usam. Isso evita que uma mudança quebre o que já estava funcionando.
O nome do evento tem regras
O nome deve começar com uma letra (acentos são aceitos) e pode conter letras, números,
_
e -, com no máximo 100 caracteres. O próprio formulário mostra essa dica abaixo do campo.Marcar um campo como obrigatório muda a validação
Campos obrigatórios precisam estar presentes em todo evento. Campos não obrigatórios podem
faltar — nesse caso, o evento ainda é aceito.
