Skip to main content
Um mini-app é um app seu (qualquer linguagem, hospedado onde quiser) que abre dentro do painel da Zatten, num iframe. A Zatten manda junto o contexto (conta, usuário, projeto e, no chat, o lead aberto) num token criptografado na URL. Use para levar ao painel o que o cliente final precisa ao lado das conversas: estoque, agenda, consulta de pedido, ficha do paciente.

Onde fica no painel

  • Cadastro: Configurações → Apps (admin e editor).
  • Onde o app aparece, conforme o posicionamento escolhido:

Como configurar

Os mini-apps são da conta da agência: um cadastro vale para todos os projetos, e a visibilidade se ajusta por projeto. A ordem dos apps no menu se ajusta com as setas da lista.

O token do app

Ao criar, a Zatten mostra o token do app (o segredo) uma única vez. Copie e guarde numa variável de ambiente do seu app. Ele não é exibido de novo. Se perder, use Regenerar token: o anterior deixa de funcionar na hora.

Como funciona por trás

  1. A Zatten abre https://SEU-APP/?data=<token> no iframe, ocupando 100% do espaço.
  2. O data é um JWE compacto (alg: dir, enc: A256GCM), criptografado com o token do app. A chave é o token decodificado de base64url (32 bytes).
  3. Seu app descriptografa, valida o exp (o token vale 24 horas) e cria a sua própria sessão. O data é só o aperto de mão inicial.
  4. No Painel do chat, trocar de conversa recarrega o app com o lead novo. Trocar o tema do painel também recarrega.
Quem não tem o token do app não lê nem forja o conteúdo.

Ler o contexto (Node, com a biblioteca jose)

Sem biblioteca, com o crypto nativo do Node:

O que vem no token

Campos vazios ou desmarcados não vêm. lead só vem no Painel do chat.

Pelo MCP

Os mini-apps não viajam no template do projeto e o MCP não os cria: são da conta, não do projeto, e o token é um segredo. Cadastro sempre pelo painel.

Armadilhas

  • Não confie no user_role para autorizar. Use como dica e faça a sua própria autorização. Isole os dados por tenant_id e attendant_id.
  • Login por cookie em outro domínio falha. No iframe, o navegador trata o app como terceiro. Hospede o app num subdomínio do domínio do white-label (ex.: estoque.cliente.com ao lado de cliente.com).
  • Token exposto. Quem tem o token do app lê e forja o contexto. Nunca no front-end nem no repositório.
  • Regenerar derruba o app até você atualizar a variável de ambiente.
  • Painel do chat é estreito. Sem menu lateral, sem tabela larga, sem duas colunas. Nada de position: fixed contando com a janela inteira.
  • O app recarrega ao reabrir, trocar de lead ou de tema. Mantenha o carregamento rápido.

Perguntas frequentes

Não pelo token, que só leva dados. Para alterar, o seu app chama a API com a chave de API do projeto, guardada no servidor do app.
Sim. Em Visibilidade por projeto, deixe Desativado nos projetos em que o app não deve aparecer. Para poucos projetos, o contrário funciona melhor: desligue Ativo e, nos projetos desejados, escolha quem vê. A exceção por projeto prevalece sobre o cadastro.

Para saber mais