Área do cliente: entrar direto pelo seu sistema (para quem programa)
Se o seu cliente já está logado no seu sistema, ele pode abrir Minhas solicitações na sua Central de Ajuda sem digitar código. O seu sistema assina um acesso curto, de uso único, e manda a pessoa para a Central. Este artigo é para quem programa o seu sistema.
1. Gere a chave
- Vá em
Atendimento › Conhecimentoe clique em Configurar na barra da Central de Ajuda pública. - Avance até o passo Área do cliente e abra Entrar direto pelo seu sistema.
- Clique em Gerar chave e copie na hora. Ela não aparece de novo.
- Copie também o Endereço de entrada.
Guarde a chave no servidor do seu sistema, numa variável de ambiente. Nunca coloque a chave no HTML ou no JavaScript da página: quem tem a chave entra como qualquer cliente.
Cada marca tem a sua chave. Gerar nova chave derruba a anterior na hora; Desligar volta a valer só o código por e-mail.
2. Assine o acesso no seu servidor
Monte um JWT com o algoritmo HS256, assinado com a chave, com estes campos:
| Campo | Obrigatório | O que é |
|---|---|---|
email | sim | O e-mail da pessoa. É por ele que a plataforma encontra os atendimentos. |
name | não | O nome, usado se a pessoa ainda não estiver no seu cadastro de contatos. |
iat | sim | A hora de agora, em segundos (Unix). O acesso vale por 3 minutos. |
jti | sim | Um identificador único a cada acesso. O mesmo jti não entra duas vezes. |
exp | não | Se você mandar, também é respeitado. |
PHP
$key = getenv('AREA_CLIENTE_CHAVE');
$b64 = fn ($s) => rtrim(strtr(base64_encode($s), '+/', '-_'), '=');
$header = $b64(json_encode(['alg' => 'HS256', 'typ' => 'JWT']));
$payload = $b64(json_encode([
'email' => $usuario->email,
'name' => $usuario->nome,
'iat' => time(),
'jti' => bin2hex(random_bytes(16)),
]));
$jwt = "$header.$payload." . $b64(hash_hmac('sha256', "$header.$payload", $key, true));
Node.js (com a biblioteca jsonwebtoken)
const jwt = require('jsonwebtoken')
const crypto = require('crypto')
const token = jwt.sign(
{ email: usuario.email, name: usuario.nome, jti: crypto.randomUUID() },
process.env.AREA_CLIENTE_CHAVE,
{ algorithm: 'HS256' }, // o iat entra sozinho
)
3. Mande a pessoa para a Central
Redirecione para o Endereço de entrada com o token:
<Endereço de entrada>?jwt=<token>
Se o endereço já tiver um ?, use &jwt=. Para abrir outra página da Central, acrescente &return_to=/hc/pt-br/requests (a lista) ou &return_to=/t/<código do atendimento>. Só páginas da Central e de atendimento são aceitas.
O melhor lugar é um botão Meus chamados ou Minhas solicitações no menu do seu sistema: o clique gera o token na hora e redireciona.
O que a pessoa vê
- Os atendimentos em que um contato com aquele e-mail é o solicitante, de todos os canais, só da sua marca.
- As solicitações em que ela foi copiada e, se você ligar o compartilhamento no cliente, as da empresa.
- Se o e-mail ainda não está nos seus contatos, a plataforma cria o contato. Ela não cria cliente: ninguém entra no funil por causa disso.
- A pessoa fica conectada por 30 dias naquele navegador.
Quando não entra
A pessoa vê "Não foi possível entrar automaticamente" e um link para entrar com o e-mail. As causas mais comuns:
- Relógio do servidor fora da hora ou token gerado antes e usado depois: o
iatprecisa estar a menos de 3 minutos de agora. - Token reaproveitado: cada acesso precisa de um
jtinovo. Gere o token no clique, não guarde. - Chave trocada ou desligada: confira se a chave do seu sistema é a última gerada.
- Assinatura que não confere: o algoritmo tem que ser HS256 e a chave inteira, sem espaços.
- E-mail inválido no campo
email.