Menu da documentação

Rastreamento de visitantes

Como a Nevox mede visitas, eventos e conversões no seu site e app, com consentimento e privacidade.

O mesmo script do widget, com a chave pública, mede as visitas ao seu site. Não precisa de outro código. Os números aparecem em análise.

html
<script
  src="https://nevox.ai/widget.js"
  data-key="nvx_pk_live_..."
  data-agent="agt_8f2k1x"
  data-track="true"
  data-consent="auto"
  async
></script>

Quer medir o site sem mostrar o chat numa página? Use data-widget="false".

O que é medido automaticamente

EventoQuando
page_viewCada página aberta, incluindo trocas de rota em apps de página única (React, Next.js, Vue)
session_startInício de uma visita, com origem, UTMs e página de entrada (calculado: a visita termina depois de 30 minutos sem atividade)
widget_openO visitante abriu o chat
conversation_startPrimeira mensagem do visitante
leadO visitante deixou telefone ou email, ou foi qualificado pelo agente (calculado a partir das conversas, na análise)
appointment_requestedO agente coletou um pedido de horário (calculado a partir da agenda, na análise)
handoffA conversa foi para a sua equipe

Junto com cada evento vão: página (só o caminho, sem os parâmetros da URL, que podem ter dados pessoais), título, referência (de onde veio), UTMs, tipo de dispositivo, navegador, sistema e idioma. Não coletamos o conteúdo de formulários, o que a pessoa digita fora do chat nem cliques em geral.

Eventos personalizados e conversões

js
Nevox.track("plano_visualizado", { plano: "familia" });

Nevox.track("consulta_paga", {
  value: 8900,       // centavos
  currency: "USD",
  order_id: "ped_5531"
});
  • Nomes: letras minúsculas, números e _, até 64 caracteres.
  • Propriedades: até 20, com valores string, número ou booleano.
  • value (em centavos) e currency nas propriedades viram o valor da conversão.
  • Para um evento contar como conversão, marque o nome dele em Painel → Análise → Conversões.

Identificar um visitante

Quando o visitante faz login ou se cadastra, ligue o visitante ao contato:

js
Nevox.identify("paciente_1042", { name: "Maria Souza", email: "maria@exemplo.com" });

A partir daí, as visitas anteriores e as futuras desse navegador entram na linha do tempo do contato, e a Nevox dispara o webhook visitor.identified.

Se você já usa o token de sessão no widget, a identificação é automática.

Eventos enviados pelo seu servidor

Algumas conversões acontecem fora do navegador: um pagamento confirmado, uma consulta realizada, um contrato assinado. Envie pelo servidor:

POST /v1/events · escopo events:write

bash
curl https://api.nevox.ai/v1/events \
  -H "Authorization: Bearer $NEVOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      {
        "name": "consulta_paga",
        "contact_external_id": "paciente_1042",
        "occurred_at": "2026-11-03T15:00:00Z",
        "value": 8900,
        "currency": "USD",
        "properties": { "order_id": "ped_5531" },
        "dedupe_key": "ped_5531"
      }
    ]
  }'
json
{ "accepted": 1, "rejected": [] }
  • Até 100 eventos por chamada.
  • Identifique a pessoa com contact_external_id ou visitor_id.
  • dedupe_key evita contar o mesmo evento duas vezes (por 7 dias).
  • occurred_at aceita até 7 dias no passado.
  • Conta no limite mensal de eventos do plano (Pro - 3 Agentes: 10.000; Ultimate - 5 Agentes: 100.000). Eventos de chave de teste não contam.
  • A resposta lista os eventos recusados, com o motivo (duplicate, contact_not_found, invalid_param), sem recusar o lote inteiro.

Consentimento

Você escolhe como o rastreamento se comporta antes de o visitante aceitar cookies:

data-consentAntes do consentimentoDepois de Nevox.consent("granted")
auto (padrão)Mede de forma anônima e sem cookies: as visitas entram nas contagens, mas a mesma pessoa não é reconhecida em outro diaIdentificador persistente no navegador; visitante aparece individualmente
requiredNão mede nadaIdentificador persistente
grantedVocê já coletou o consentimento no seu próprio banner—

Ligue a Nevox ao seu banner de cookies:

js
meuBanner.onAccept(() => Nevox.consent("granted"));
meuBanner.onReject(() => Nevox.consent("denied"));

Nevox.consent("denied") apaga o identificador do navegador e volta para o modo anônimo (ou para nenhum rastreamento, em required).

O chat funciona normalmente em todos os modos. Conversar com o agente não depende de consentimento de cookies.

Privacidade

  • IP: usado só para calcular país, estado e cidade, e descartado em seguida. Nunca é gravado.
  • Modo anônimo: usa um identificador diário calculado com um valor secreto que muda todo dia e é apagado. Não dá para reconstruir quem é a pessoa.
  • Sinais do navegador: respeitamos o Global Privacy Control (GPC). Com GPC ativo, o visitante fica no modo anônimo.
  • Robôs: acessos de robôs e rastreadores conhecidos são descartados.
  • Identificador persistente: fica no armazenamento do seu próprio domínio (nvx_vid), por até 13 meses.
  • Retenção: os eventos ficam guardados pelo tempo do seu plano (Pro - 3 Agentes: 90 dias; Ultimate - 5 Agentes: 13 meses) e depois são apagados. As contagens diárias agregadas, que não identificam ninguém, são mantidas.
  • Exclusão: DELETE /v1/contacts/{external_id} apaga também os eventos ligados ao contato.
Dados sensíveis: não envie em eventos, propriedades ou identify informações como diagnósticos, documentos, números de cartão ou senhas. Veja segurança e privacidade.

Envio direto (avançado)

O script envia os eventos para POST https://api.nevox.ai/v1/collect com a chave pública. Você normalmente não precisa chamar esse endpoint. Se o seu app não roda o script (ex.: um app nativo), use os eventos pelo servidor.