Skip to main content
A ontologia é a forma como a UserIn organiza todos os dados que conhece sobre cada visitante. Cada campo pertence a um dos 4 tipos, que determina como é preenchido, com que frequência é atualizado e como interpretá-lo ao criar regras, segmentos e automações.
Todos os campos aparecem juntos no construtor de condições, independente do tipo. Campos marcados com iGaming só estão disponíveis para empresas configuradas na vertical bets.
Nesta página:

Os 4 tipos de dados

Atributos

Fatos registrados. Chegam via integração ou tracker e são armazenados como vieram, sem transformação. Exemplos: ID externo, email, valor do primeiro depósito, saldo inicial da sessão.Atualização: apenas quando a integração envia um novo valor.

Agregados

Totais, contagens e médias. Calculados automaticamente somando ou contando eventos recebidos. Exemplos: total apostado, quantidade de sessões, GGR total, wins na última hora.Atualização: em tempo real a cada evento recebido.

Sinais

Interpretações inteligentes. Derivados dos dados brutos usando janelas temporais, thresholds e lógica de negócio. Exemplos: tier de depósito, tendência, nível de frustração, melhor horário de contato.Atualização: periódica (RT, diária ou semanal conforme o sinal).

Outputs

Resultados de modelos de decisão. Calculados combinando múltiplos campos com pesos. Exemplos: score de intenção, tier VIP, melhor ação de retenção, canal recomendado.Atualização: diária.
A diferença prática: um Atributo diz o que aconteceu (“depositou R$ 50 pela primeira vez”), um Sinal interpreta (“está em sequência de perdas”), um Output recomenda (“ofertar freespin agora pelo canal onsite_modal”).

Atributos

Dados que chegam via integração ou tracker e são armazenados como vieram. Não são calculados pela plataforma.

Identidade

Campos internos de identificação do visitante. Não aparecem no construtor de condições, mas são a base de todo o perfil.

Temporal


Financeiro


Comportamento


Use Páginas da Última Sessão contém /deposito para disparar um modal em tempo real para visitantes que estão na tela de depósito neste momento.

Contato

Informações pessoais vinculadas via integração ou formulário.
Campos de contato precisam chegar via integração (evento de identificação do tracker ou API REST). Sem o External ID vinculado ao perfil, esses campos não são preenchidos.

iGaming: Jogo favorito (objeto Game)

Atributos do jogo vinculado ao perfil via integração de catálogo. Disponível para vertical bets. Exemplo de personalização:

iGaming: Saldo de entrada na sessão

Disponível para plataformas com integração de wallet ativa.

Agregados

Calculados automaticamente pela plataforma somando, contando ou fazendo média de eventos. Não exigem configuração além da integração base.

Ciclo de vida

O stage nunca retrocede. Um visitante ftd permanece ftd mesmo que fique meses sem atividade. Use Dias Desde Último Depósito para identificar inativos dentro de cada stage.

Temporal


Financeiro

Compare Total Depositado com Total (Últ. 5 Semanas) para detectar jogadores que estavam ativos mas reduziram volume recentemente, sem esperar pelos sinais de tendência.

Comportamento


Preferências e jogos



iGaming: Saldo em tempo real


iGaming: Apostas — betting

Métricas de apostas com saldo real. Disponível para vertical bets. All-time e janelas longas: Janelas curtas (comportamento recente e em sessão):
Os campos de janela curta (last1h, last24h) são fundamentais para detectar comportamentos de risco em tempo real dentro da sessão. Use-os combinados com os sinais de frustração para acionar intervenções imediatas.

Sinais

Derivações calculadas pela plataforma a partir dos dados brutos. Cada sinal usa janela temporal, threshold ou lógica específica para responder uma pergunta de negócio.

Temporal — melhor horário de contato

Path: bestTime.bestHourHora do dia (0–23) em que o visitante mais costuma acessar a plataforma.Como é calculado: Moda das horas de início de sessão, analisando o histórico completo de sessões.Atualização: Diária.Uso: Agendar envio de SMS e email no horário de pico individual de cada visitante.
Path: bestTime.bestDayHour.dayOfWeekDia da semana preferido do visitante (0=Domingo, 6=Sábado).Como é calculado: Moda dos dias de início de sessão no histórico completo.Atualização: Diária.Uso: Concentrar campanhas nos dias de maior receptividade por visitante.
Path: bestTime.bestDayHour.dayNameNome legível do dia da semana preferido (ex: “Segunda”).Como é calculado: Derivado de bestTime.bestDayHour.dayOfWeek.Uso: Personalização de mensagens via Liquid: “Você costuma jogar às {{ bestTime.bestHour }}h nas {{ bestTime.bestDayHour.dayName }}s”.
Path: bestTime.proposedContactLocalCombinação formatada do melhor dia e hora (ex: “Segunda às 14:00”).Como é calculado: Derivado de bestTime.bestHour + bestTime.bestDayHour.dayOfWeek.Atualização: Diária.Uso: Exibir em painéis de CRM para que agentes saibam o melhor momento de contato sem precisar calcular manualmente.

Financeiro

Path: deposits.daysSinceLastDepositContador dinâmico de quantos dias se passaram desde o último depósito.Como é calculado: Data atual menos deposits.last.date. Aumenta automaticamente a cada dia sem depósito.Atualização: RT (calculado no momento da avaliação da condição).Uso:
  • 7 dias: modal de incentivo suave
  • 14 dias: SMS com oferta de retorno
  • 30 dias: jornada de reativação completa
  • 60 dias: sinalizar como churned para o CRM
Path: deposits.tierClassifica o visitante por faixa de valor total depositado.Como é calculado: Com base em deposits.total:Atualização: Diária.
Path: deposits.trendIndica se o padrão geral de depósitos está crescendo, estável ou caindo.Como é calculado: Análise das últimas 5 semanas de depósitos. Variação > +20% = increasing; < -20% = decreasing; entre = stable.Atualização: Diária, janela de 5 semanas.
Path: deposits.last5Weeks.trendComparação específica das últimas 5 semanas com as 5 semanas anteriores.Valores: up · down · stable · noneComo é calculado: Compara deposits.last5Weeks.count e deposits.last5Weeks.total com o período equivalente anterior.Atualização: Diária.Uso: Mais sensível que deposits.trend para detectar mudanças recentes de comportamento.

Comportamento

Path: behavior.sessionsPerWeekMédia de sessões por semana do visitante.Como é calculado: behavior.totalSessions ÷ semanas desde firstSeenAt.Atualização: Diária.Uso: Principal indicador de engajamento. Acima de 5 sessões/semana indica visitante altamente ativo.
Path: behavior.avgSessionDurationMinutesTempo médio por sessão, em minutos.Como é calculado: Média da duração de todas as sessões registradas pelo tracker.Atualização: Diária.Uso: Sessões acima de 30 minutos combinadas com losses frequentes ativam o protocolo de jogo responsável.
Path: daysInactiveDias sem qualquer atividade na plataforma (não apenas depósitos).Como é calculado: Data atual menos behavior.lastActiveAt. Calculado dinamicamente.Atualização: RT.Uso: Diferente de “Dias Desde Último Depósito” (que foca em transações), este campo captura inatividade total, incluindo visitantes que entram mas não depositam.
Path: daysSinceCreationQuantidade de dias desde que o perfil foi criado no sistema.Como é calculado: Data atual menos firstSeenAt. Calculado dinamicamente.Atualização: RT.Uso: Identificar visitantes registrados há muito tempo que nunca converteram em ftd.

Preferências — jogo favorito

Path: favoriteGame.nameNome do jogo ou produto mais visitado pelo jogador.Como é calculado: Análise de page views por jogo. O jogo com mais acessos se torna o favorito.Atualização: Diária.Uso: Personalização de mensagens com {{ favoriteGame.name }}.
Path: favoriteGame.urlURL ou path do jogo favorito (ex: /games/aviator).Como é calculado: Derivado de favoriteGame.name via análise de navegação.Atualização: Diária.Uso: Criar CTAs com link direto para o jogo favorito em modais e SMS.
Path: favoriteGame.categoryCategoria do jogo favorito (ex: slots, crash, casino, live).Como é calculado: Derivado de favoriteGame.name.Atualização: Diária.Uso: Segmentar visitantes por vertical preferida sem precisar comparar contadores de visitas individuais.

iGaming: Saldo em tempo real

Path: balanceRealtime.sessionNetChangeDiferença em reais entre o saldo atual e o saldo de início da sessão.Fórmula: balanceRealtime.currentbalanceRealtime.sessionStartPositivo = ganhou. Negativo = perdeu.Atualização: RT, durante a sessão ativa.
Path: balanceRealtime.sessionNetChangePercentVariação percentual do saldo na sessão atual.Fórmula: (balanceRealtime.currentbalanceRealtime.sessionStart) ÷ balanceRealtime.sessionStart × 100Ex: -50 significa que perdeu 50% do saldo inicial.Atualização: RT, durante a sessão ativa.Uso: Acionar intervenção de jogo responsável quando < -50%.
Path: balanceRealtime.isLosingStreakIndica se o visitante perdeu 3 ou mais vezes seguidas na sessão atual.Lógica: balanceRealtime.variationCount com 3+ variações negativas consecutivas.Atualização: RT.Uso: Exibir mensagem de pausa ou jogo responsável antes que as perdas se acumulem.
Path: balanceRealtime.hitZeroThisSessionIndica se o saldo do visitante chegou a zero durante esta sessão.Lógica: balanceRealtime.current = 0 em qualquer momento da sessão.Atualização: RT.Uso: Exibir oferta de recarga ou mensagem de encerramento de sessão.
Path: balanceRealtime.alert50TriggeredIndica se o visitante já perdeu 50% ou mais do saldo inicial da sessão.Lógica: balanceRealtime.sessionNetChangePercent ≤ −50.Atualização: RT.Uso: Gatilho principal de alerta de jogo responsável. Aciona antes da perda total.
Path: balanceRealtime.alert80TriggeredIndica se o visitante já perdeu 80% ou mais do saldo inicial da sessão.Lógica: balanceRealtime.sessionNetChangePercent ≤ −80.Atualização: RT.Uso: Gatilho de intervenção crítica. Exibir modal obrigatório de pausa ou suporte.

iGaming: Jogo favorito

Path: game.volatilityNível de volatilidade do jogo favorito do visitante.Valores: low · medium · highComo é calculado: Derivado do atributo de catálogo do jogo (configurado na integração).Uso: Personalizar sugestões de jogos. Visitantes com histórico de alert80Triggered e jogo de volatilidade high têm maior risco de frustração.

iGaming: Apostas — comportamento e frustração

Path: betting.tierClassifica o jogador por volume total apostado.Como é calculado: Com base em betting.totalBetAmount:Atualização: Diária.
Tier de Aposta (betting.tier) é diferente de Tier de Depósitos (deposits.tier). O primeiro mede volume apostado; o segundo mede valor depositado. Um jogador pode ser high_roller em apostas e low em depósitos se jogar com freespins.
Path: betting.winRatePercentual de rodadas ganhas sobre o total de apostas.Fórmula: betting.winCount ÷ betting.betCount × 100Atualização: Diária.Uso: Jogadores com winRate abaixo de 15% estão perdendo consistentemente, indicador de possível frustração acumulada.
Path: betting.frustration.isOnLosingStreakIndica se o jogador teve mais de 3 perdas na última hora.Lógica: betting.last1h.lossCount > 3Atualização: RT, janela de 1 hora.Uso: Acionar intervenção imediata de jogo responsável ou oferta de freespin para reverter o humor.
Path: betting.frustration.levelClassifica o grau de frustração do jogador com base em perdas recentes.Como é calculado: Com base em betting.last1h.lossCount:Atualização: RT, janela de 1 hora.
Path: betting.frustration.sessionResultAvalia se o jogador está ganhando ou perdendo na sessão atual com base no GGR.Como é calculado: Com base em betting.last24h.ggr (GGR negativo = jogador ganhando; positivo = operador ganhando):Atualização: RT.
Path: betting.experience.satisfactionEstimativa da satisfação do jogador com a experiência de jogo, baseada no winRate histórico.Como é calculado: Com base em betting.winRate:Atualização: Diária.Uso: Personalizar o tom das comunicações. Não ofereça “venha jogar mais!” para jogadores frustrated.

Outputs

Calculados pela plataforma combinando múltiplos campos com pesos definidos. São os campos mais sofisticados: não descrevem o que aconteceu, mas recomendam o que fazer.

Intenção — probabilidade de conversão

Path: intention.scoreProbabilidade de o visitante converter (depositar, se registrar, ou realizar a ação principal do negócio).Como é calculado: Score ponderado combinando:Atualização: Diária.
O Score de Intenção é calculado uma vez por dia. Para condições em tempo real (visitante está na tela de depósito agora), combine com Páginas da Última Sessão.
Path: intention.levelVersão simplificada do score em 3 categorias.Valores: high (score ≥ 70) · medium (40–69) · low (< 40)Uso: Ideal para condições diretas em regras sem precisar calibrar thresholds numéricos.
Path: intention.nextStepPróximo passo esperado do visitante no funil.Exemplos de valores: first_deposit · second_depositUso: Exibir em painéis de CRM para orientar abordagens personalizadas por estágio.

Tags — rótulos dinâmicos

Path: tagsArray de rótulos aplicados ao visitante via regras, jornadas ou manualmente.Como é preenchido: Adicionadas e removidas pelas ações definidas nas suas jornadas e regras.Atualização: Em tempo real, sempre que uma ação de tag é executada.Exemplos de tags comuns:

iGaming: Valor e retenção do jogador — betting

Path: betting.playerValue.scoreAvalia o valor financeiro real do jogador para a operação com base em GGR e frequência.Inputs: GGR total (40%), quantidade de apostas (30%), apostado nas últimas 24h (30%).Atualização: Diária.
Path: betting.playerValue.tierClassificação VIP derivada do Score de Valor do Jogador.Atualização: Diária.
Path: betting.retention.churnRiskScore de risco de abandono específico para comportamento de apostas. Quanto maior, maior o risco.Inputs: Nível de frustração (35%), dias inativo (30%), satisfação estimada (20%), volume apostado nas últimas 5 semanas (15%).Atualização: Diária.
Path: betting.retention.churnLevelClassificação do risco de churn derivada de betting.retention.churnRisk.Valores: safe · watch · danger · criticalUso: Mais simples de usar em condições de jornada que o score numérico.
Path: betting.retention.urgencyDefine com que urgência o time de CRM deve agir para reter o jogador.Como é calculado: Combina betting.retention.churnLevel com betting.playerValue.tier.Atualização: Diária.
Path: betting.retention.bestActionAção de retenção recomendada com base no perfil de frustração e valor do jogador.Como é calculado: Combina betting.frustration.level, betting.playerValue.tier e betting.retention.churnLevel.Atualização: Diária.
Path: betting.nextBestAction.actionDescrição textual da ação recomendada pelo engine de decisão.Como é calculado: Derivado de betting.retention.bestAction combinado com betting.frustration.level.Uso: Exibir em painéis de CRM para orientar agentes no contato com o jogador.
Path: betting.nextBestAction.channelCanal ideal para executar a ação de retenção.Como é calculado: Combina betting.frustration.level com betting.retention.urgency.Atualização: Diária.
Path: betting.nextBestAction.timingTiming recomendado para executar a ação de retenção.Como é calculado: Derivado de betting.retention.urgency.Atualização: Diária.

Sinais customizados

Além dos sinais do sistema, você pode criar seus próprios sinais no Painel de Ontologia para capturar lógicas de negócio específicas da sua operação.
1

Acesse Estrutura de automações no menu lateral

Navegue até o Painel de Ontologia dentro de Estrutura de automações.
2

Crie um novo Sinal

Defina o nome, tipo de resultado (sim/não, número, texto ou lista) e a fórmula de cálculo.
3

Defina as condições

Configure a lógica usando os campos existentes. Exemplo: deposits.total > 1000 E deposits.trend = decreasing → vip_decline_flag = verdadeiro.
4

Ative o sinal

Após salvar, o sinal é calculado automaticamente para todos os visitantes da sua empresa.
Sinais customizados ficam no namespace signals.* do perfil. Regra fundamental: Outputs nunca podem ser usados como base de um sinal customizado. Use apenas Atributos, Agregados e outros Sinais.

Campos customizados

Além dos campos do sistema, você pode criar campos próprios para armazenar dados específicos do seu negócio via integração.
1

Acesse Estrutura de automações no menu lateral

Clique em Estrutura de automações para ver a ontologia completa da sua empresa.
2

Abra o Painel de Ontologia

Na aba Painel de Ontologia, veja todos os campos disponíveis organizados por grupo, com tipo, descrição e se pode ser usado em regras.
3

Crie campos customizados

Clique em Novo Campo para adicionar campos específicos do seu negócio. Escolha o tipo de dado (texto, número, sim/não, lista) e o grupo.
Campos customizados precisam ser preenchidos via integração (API ou tracker com evento customizado). Eles não são calculados automaticamente.

Como usar campos em condições

Ao criar uma regra ou condição no Construtor de Fluxos:
1

Selecione o tipo de condição

Escolha Atributo de Perfil para usar qualquer campo da ontologia.
2

Escolha o campo

Os campos são organizados por grupo (Financeiro, Comportamento, Apostas, etc.). Campos iGaming só aparecem para empresas na vertical bets.
3

Defina o operador

Campos numéricos: igual a, maior que, menor que, entre. Campos enum: é um de, não é. Campos array: contém, não contém.
4

Informe o valor

Para campos enum e tier, as opções aparecem automaticamente. Para campos numéricos, insira o valor manualmente.

Exemplos práticos

Condição: stage = registered E intention.score > 65 E deposits.daysSinceLastDeposit = 0 (nunca depositou)Ação: Exibir modal com oferta de bônus no primeiro depósito personalizada com {{ game.name }}.
Condição: balanceRealtime.alert80Triggered = verdadeiro OU betting.frustration.level = criticalAção: Exibir modal obrigatório de pausa. Canal: onsite_modal. Timing: immediate.
Condição: deposits.tier = high E deposits.daysSinceLastDeposit > 14 E deposits.trend = decreasingAção: Acionar betting.retention.bestAction. Se = cashback, enviar oferta via betting.nextBestAction.channel.
Condição: betting.frustration.level = moderate E betting.playerValue.tier = goldAção: Exibir modal com oferta de freespins no {{ favoriteGame.name }}. Canal: onsite_modal.
Condição: betting.playerValue.tier = platinum E betting.retention.urgency = no_action E deposits.trend = increasingAção: Exibir convite para programa Diamond com benefícios exclusivos.
Condição: Hora atual = bestTime.bestHour E deposits.daysSinceLastDeposit > 7Ação: Enviar SMS: “Olá, {{ contact.firstName }}! Você costuma jogar por volta desta hora. Temos uma oferta esperando por você.”

Onde a ontologia aparece na plataforma

Regras e Condições

Todos os campos selecionáveis aparecem no Construtor de Fluxos e na página de Regras, organizados por grupo.

Personalização de Templates

Campos com variável Liquid (ex: {{ contact.firstName }}, {{ game.name }}, {{ favoriteGame.url }}) podem ser usados em modais, smart blocks, SMS e emails.

Audiência

Qualquer campo pode ser critério de segmentação. Visitantes são classificados em tempo real conforme os critérios definidos.

Painel de Ontologia

Em Estrutura de automações, visualize todos os campos por grupo, tipo e origem. Crie sinais e campos customizados.

Próximos passos

Personalização com Variáveis

Use os campos do perfil para personalizar mensagens em modais, emails e SMS com variáveis Liquid.

Jornadas

Crie automações visuais usando os campos e sinais como condições no Construtor de Fluxos.