For AI agents: the complete documentation index is available at https://docs.clickmax.io/llms.txt, the full documentation bundle is available at https://docs.clickmax.io/llms-full.txt, and this page is available as Markdown at https://docs.clickmax.io/features/messaging/identify-visitors-in-site-chat.md.
  • Português
  • Como identificar o visitante logado no chat do meu site?

    Se o seu site tem área logada, você pode dizer ao chat quem é o visitante. Gere o segredo do canal na aba Compartilhamento do editor do chat, assine nome e e-mail no seu servidor e chame cxLiveChat.identify. O chat deixa de pedir esses dados e o contato é unificado pelo e-mail.

    Antes de começar:

    • O chat já está incorporado no seu site. Veja o Código de incorporação na mesma aba.
    • Você precisa de um servidor seu para assinar. A assinatura nunca deve ser gerada no navegador, porque o segredo ficaria exposto.

    Passos

    1. Abra o editor do chat e vá na aba Compartilhamento.

    2. No card Identificar visitantes do seu site, clique em Gerar segredo e guarde o valor numa variável de ambiente do seu servidor (por exemplo CLICKMAX_CHAT_SECRET).

    3. No servidor, calcule a assinatura de quem está logado: HMAC-SHA256, em hexadecimal, do texto ID do canal, quebra de linha, e-mail, quebra de linha, nome, usando o segredo.

      import { createHmac } from 'node:crypto';
      
      const signature = createHmac('sha256', process.env.CLICKMAX_CHAT_SECRET)
        .update(`${channelId}\n${user.email}\n${user.name}`)
        .digest('hex');
      $signature = hash_hmac(
        'sha256',
        "$channelId\n{$user['email']}\n{$user['name']}",
        getenv('CLICKMAX_CHAT_SECRET')
      );
    4. Na página, defina a identidade ANTES da tag do script do chat (o script carrega de forma assíncrona, então cxLiveChat ainda não existe depois dela):

      <script>
        window.cxLiveChat = { identity: { name: user.name, email: user.email, signature } };
      </script>

    Se o visitante entrar depois que a página e o chat já carregaram (por exemplo, login numa SPA), chame cxLiveChat.identify({ name, email, signature }).

    O que você deve ver

    Ao abrir o chat, o visitante entra direto na conversa, sem o formulário de nome e e-mail. Na conversa, o contato aparece com o nome e o e-mail informados; se já existir um contato com esse e-mail, a conversa entra nele.

    Se algo não funcionar

    • O chat ainda pede nome e e-mail. A assinatura não conferiu e o chat segue como visitante anônimo, sem mostrar erro. Confira se o texto assinado usa o ID do canal, o e-mail e o nome exatamente como foram passados ao identify (sem espaços extras ou maiúsculas diferentes) e se o segredo é o do canal certo.
    • Nome ou e-mail com quebra de linha. Não são aceitos: a assinatura é recusada.
    • Gerar novo segredo. O segredo anterior deixa de valer na hora. Os visitantes assinados com ele voltam a ser anônimos até o seu servidor usar o novo.