Menu da documentação

Widget no seu app

Coloque o atendente da Nevox dentro do seu site, app ou área do cliente, com o usuário já identificado.

O widget é o jeito mais rápido de colocar o atendente na sua interface. Ele usa o mesmo agente e o mesmo conhecimento dos outros canais.

Visitante anônimo (site público)

Cole antes de </body>:

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

Usuário logado (app, área do cliente, admin)

  1. O seu servidor gera um token de sessão para o usuário logado.
  2. O front passa esse token ao widget.
html
<script
  src="https://nevox.ai/widget.js"
  data-key="nvx_pk_live_..."
  data-agent="agt_8f2k1x"
  data-session-token="nvx_st_9c1e..."
  async
></script>

Com o token, o agente:

  • cumprimenta pelo nome e responde no idioma do contato;
  • continua a mesma conversa desse contato no widget, em qualquer aparelho;
  • pode chamar ações com o external_id dele (ex.: buscar as próximas consultas).

O token vale 1 hora. Quando vencer, o widget avisa pelo evento session_expired: gere outro no seu servidor e chame Nevox.setSessionToken.

Em apps React, Next.js ou Capacitor

tsx
"use client";
import { useEffect } from "react";

export function AtendimentoNevox({ sessionToken }: { sessionToken: string }) {
  useEffect(() => {
    const s = document.createElement("script");
    s.src = "https://nevox.ai/widget.js";
    s.async = true;
    s.dataset.key = process.env.NEXT_PUBLIC_NEVOX_KEY!;
    s.dataset.agent = "agt_8f2k1x";
    s.dataset.sessionToken = sessionToken;
    document.body.appendChild(s);
    return () => {
      window.Nevox?.destroy();
      s.remove();
    };
  }, [sessionToken]);

  return null;
}

Em apps com Capacitor ou WebView, o widget funciona do mesmo jeito dentro da WebView.

Opções

AtributoPadrãoDescrição
data-key—Chave pública. Obrigatório.
data-agent—ID do agente. Obrigatório.
data-session-token—Token de sessão do usuário logado
data-modebubblebubble (botão flutuante) ou inline (dentro de um elemento)
data-target—Seletor CSS do elemento, quando data-mode="inline"
data-languagedo contato ou da contapt-BR ou en-US (es em breve)
data-positionrightright ou left
data-openfalseAbre o chat assim que a página carrega
data-tracktrueAtiva o rastreamento de visitantes
data-consentautoauto, required ou granted. Veja consentimento.
data-widgettruefalse mede as visitas sem mostrar o chat

Cores, nome e logo são os do chat do site, configurados no painel (Canais → Chat no site) e aplicados automaticamente. A chave pública e os domínios permitidos ficam em Painel → Desenvolvedores → Widget no seu app, com o código pronto para colar.

Sem data-session-token, a conversa é de um visitante anônimo (uma por navegador), com um limite de mensagens por dia contra abuso. As conversas do widget aparecem em Conversas no painel e contam na franquia de conversas do plano.

API JavaScript

Depois que o script carrega, o objeto window.Nevox fica disponível:

js
Nevox.open();                       // abre o chat
Nevox.close();                      // fecha o chat
Nevox.send("Quero remarcar");       // envia uma mensagem como o usuário
Nevox.setSessionToken("nvx_st_..."); // troca o token (ex.: depois de renovar)
Nevox.identify("paciente_1042", { name: "Maria Souza" }); // liga o visitante a um contato
Nevox.track("plano_visualizado", { plano: "familia" });   // evento personalizado
Nevox.consent("granted");           // registra o consentimento de rastreamento
Nevox.destroy();                    // remove o widget da página

Nevox.on("ready", () => {});
Nevox.on("open", () => {});
Nevox.on("message", (msg) => {});          // { role, content }
Nevox.on("handoff", () => {});              // a conversa passou para a sua equipe
Nevox.on("session_expired", async () => {
  const { token } = await fetch("/api/nevox-token").then((r) => r.json());
  Nevox.setSessionToken(token);
});
Segurança: Nevox.identify no front serve só para ligar o visitante a um contato na análise. Ele não dá acesso ao histórico do contato. Para o agente ver dados do usuário, use sempre o token de sessão gerado no servidor.

Quando usar o widget e quando usar a API de conversas

Use o widget quandoUse a API de conversas quando
Você quer o chat pronto, com a aparência configurada no painelVocê quer a interface 100% sua
Precisa colocar no ar rápidoO chat faz parte de uma tela maior do seu sistema
O usuário conversa direto com o agenteSeu servidor intermedia as mensagens