Pular para o conteúdo

Chat no site: usuário logado

Dentro do seu sistema, o chat no site pode saber quem é a pessoa. Ela fica no chat (não é levada para o WhatsApp), a conversa cai na ficha certa e a IA e a equipe recebem o que você mandar sobre ela.

  1. No Papeador, em Integrações → Chat no site, abra o chat e clique em Usuário logado para ver o segredo. Guarde no seu servidor; nunca mande ao navegador.
  2. Quando a pessoa entra no seu sistema, o seu servidor gera um JWT HS256 assinado com esse segredo.
  3. A página chama Papeador.identify(token). Ao sair da conta, Papeador.logout().

Janela Usuário logado, com o segredo e os exemplos de como gerar o token

Também dá para mandar o token já no código do chat: data-identity="<token>". Com data-identity="", a página diz que ninguém está logado (depois de sair da conta, a conversa do usuário anterior não aparece).

Campo
sub obrigatório id do usuário no seu sistema: é a chave do vínculo com a ficha (por projeto)
exp obrigatório validade (segundos Unix), no máximo 30 dias à frente
name, email, phone opcionais na primeira vez, acham o contato que já existe (e-mail ou telefone)
attrs opcional objeto com o que a IA e a equipe devem saber (ex.: {"plano": "Pro"})
// No seu servidor (Node.js, com a biblioteca jsonwebtoken)
import jwt from "jsonwebtoken";
const token = jwt.sign(
{ sub: usuario.id, name: usuario.nome, email: usuario.email, attrs: { plano: usuario.plano } },
process.env.PAPEADOR_CHAT_SECRET,
{ algorithm: "HS256", expiresIn: "7d" }
);

Use como sub o mesmo id que vai em id_externo nos avisos da conexão de entrada: pagamento e conversa caem na mesma ficha.

Se a pessoa ainda não existe no Papeador, o login cria a ficha com a origem Usuário logado no site. Entrar logado não diz por onde ela chegou, então essa origem é provisória:

  • quando chega um aviso de uma conexão de entrada (ou da Hotmart, Sympla), a origem passa a ser essa integração;
  • quando ela escreve no chat, a origem passa a ser Chat do site.

O que vier primeiro fica. Contato que já tinha origem não muda.

Token inválido (outro segredo, vencido, sem assinatura) é recusado: a pessoa segue como visitante, e o motivo aparece no cartão do chat, em Integrações.

Abra o chat num WebView:

https://app.papeador.com.br/api/w/<chat>?full=1&identity=<token>

Com a chave de API, GET e PATCH /contacts/{id}/site-conversation leem e mudam o status da conversa.