No Chat, usuário e agente não são papéis de permissão no seu produto. São quem está falando na conversa. Isso muda webhook, métricas e o JWT que você entrega no app.
Em poucas palavras
Quando usar USER
Use USER para todo mundo que entra no chat pelo seu aplicativo — cliente, motorista, lojista, aluno. Cada pessoa tem um externalUserId estável no seu banco.
Fluxo típico:
- A pessoa faz login no seu app
- Seu backend faz upsert (
PUT /v1/chat/users) com o id dela
- Seu backend emite o JWT (
POST /v1/chat/users/token)
- O app conecta o WebSocket com esse JWT e envia mensagens como ela
O JWT leva kind: USER. Quem tem esse token é essa pessoa na conversa.
Quando usar AGENT
Use AGENT quando a mensagem deve aparecer como a sua empresa, não como um usuário final.
Situações:
- Alguém da equipe responde no painel (Chat ou Inbox) — a Notifique já cria o agente
agent:{idDoUsuárioDoWorkspace}
- Seu backend envia um aviso na conversa como suporte (
senderExternalUserId do agente)
- Você quer métricas de enviadas (agente) vs recebidas (usuário) separadas no detalhe do Chat App
workspaceUserId precisa ser membro do workspace. O externalUserId padrão é agent:{workspaceUserId}.
Depois, para falar como esse agente:
O que não misturar
- Não entregue JWT de
AGENT no aplicativo do cliente. O cliente fala com o JWT de USER.
- Não cadastre a equipe como
USER se ela atende pelo painel — o webhook iria como chat.received (como se fosse o cliente falando).
- Dois
USER na mesma conversa 1:1 é conversa entre pessoas do seu produto. Um USER e um AGENT é atendimento.
Flags do Chat App
Quem pode criar conversa, criar grupo e adicionar membros pelo JWT vale para qualquer pessoa com token de usuário. Agente pela API Key ignora essas flags: o backend sempre pode criar.
Ver Quick Start e Enviar mensagens.