Identificar o cliente logado no chat
Informe ao chat quem é o cliente que já fez login no seu site, e comprove a identidade com o segredo de verificação.
Quando o cliente já fez login no seu site, você pode informar ao chat quem ele é. O pré-chat não aparece e, quando o seu site informa o nome, o atendente vê esse nome em vez de Visitante e o chat usa a Saudação para cliente identificado. Só com o e-mail, o visitante continua como Visitante e recebe a saudação comum.
Este artigo vale para páginas onde você instalou o código do chat. É trabalho para quem desenvolve o seu site.
Identificado ou verificado
| Nível | Como o chat chega nele | O que garante |
|---|---|---|
| Identificado | O seu site informa nome, e-mail ou telefone | Nada: qualquer pessoa pode informar qualquer e-mail pelo navegador |
| Verificado | O seu servidor comprova a identidade com o segredo de verificação | Que o cliente é mesmo quem diz ser. A conversa é ligada na hora ao contato com o mesmo e-mail ou telefone. Se não houver um, o contato é criado |
Use o verificado sempre que o seu site tiver um servidor próprio. O identificado é para quando não há como calcular a verificação.
Os dados que você pode informar
| Dado | Formato aceito |
|---|---|
name | De 1 a 120 caracteres |
email | Um e-mail válido |
phone | De 10 a 15 dígitos, com DDI e DDD |
externalId | O código do cliente no seu sistema. De 1 a 120 caracteres |
userHash | A verificação calculada pelo seu servidor. 64 caracteres |
Identificar
Chame a identificação depois que o chat carregar, com os dados do cliente logado:
customElements.whenDefined('bevean-messenger').then(() => {
document.querySelector('bevean-messenger').identify({
name: 'Maria Silva',
email: 'maria@exemplo.com.br',
phone: '5547999990000'
})
})Se a página é montada no servidor, dá para passar os mesmos dados direto na tag do chat, no atributo user. Esse atributo não aceita o userHash: para verificar, use a chamada acima.
<bevean-messenger channel-key="…" gateway-url="…" user='{"name":"Maria Silva","email":"maria@exemplo.com.br"}'></bevean-messenger>Verificar
Copie o segredo de verificação
No editor do chat, seção Segurança, use Mostrar ou Copiar no Segredo de verificação. Guarde no seu servidor.
Calcule o userHash no servidor
É um HMAC-SHA256 com o segredo, em hexadecimal. O valor assinado é o
externalIdquando você o envia; sem ele, é o e-mail em letras minúsculas.Envie o userHash junto com os dados
Na chamada
identify, inclua ouserHashe os mesmosexternalIdouemailusados no cálculo.
const crypto = require('crypto')
// Com externalId, assine o externalId. Sem ele, assine o e-mail em minúsculas.
const assinado = customer.id ? String(customer.id) : customer.email.toLowerCase()
const userHash = crypto.createHmac('sha256', SEGREDO_DE_VERIFICACAO).update(assinado).digest('hex')O segredo nunca vai para o código do site
Quem tiver o segredo consegue se passar por qualquer cliente. Ele fica só no seu servidor: o navegador recebe apenas o userHash já calculado.
Com externalId, o cálculo muda
Se você envia o externalId, a verificação é feita sobre ele, não sobre o e-mail. Um userHash calculado com o e-mail, enviado junto com um externalId, não verifica o cliente.
Trocar o segredo
Gerar novo segredo troca o segredo na hora: o atual para de funcionar. Atualize o seu servidor com o novo segredo logo em seguida. O chat continua instalado, porque a chave do chat não muda.