Á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

  1. Vá em Atendimento › Conhecimento e clique em Configurar na barra da Central de Ajuda pública.
  2. Avance até o passo Área do cliente e abra Entrar direto pelo seu sistema.
  3. Clique em Gerar chave e copie na hora. Ela não aparece de novo.
  4. 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:

CampoObrigatórioO que é
emailsimO e-mail da pessoa. É por ele que a plataforma encontra os atendimentos.
namenãoO nome, usado se a pessoa ainda não estiver no seu cadastro de contatos.
iatsimA hora de agora, em segundos (Unix). O acesso vale por 3 minutos.
jtisimUm identificador único a cada acesso. O mesmo jti não entra duas vezes.
expnãoSe 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 iat precisa estar a menos de 3 minutos de agora.
  • Token reaproveitado: cada acesso precisa de um jti novo. 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.