Skip to content

Portais ​

Um portal é uma página sua, hospedada pela plataforma, com endereço próprio e um botão que roda as automações do seu projeto. É como você entrega uma automação para quem não usa o painel: o comercial, a operação, a diretoria.

O conteúdo é HTML comum — o que você escrever é o que aparece. A plataforma cuida de três coisas: hospedar, controlar quem entra e dar à página uma forma segura de iniciar automações.

Criar ​

No painel, em Portais, escolha o projeto, dê um título e um endereço (minúsculas, números e hífen) e clique em Criar portal. O conteúdo você escreve ali mesmo — ou deixa uma automação publicar, que é o caminho natural quando a página mostra um relatório que muda sozinho.

Portal vive dentro de um projeto, e é o projeto que define quais automações ele alcança.

Criar e liberar são decisões separadas: um portal recém-criado nasce Fechado.

Ação no painelO que acontece
Abrir por linko portal ganha endereço próprio, fora do painel
Copiar linko endereço, sempre o mesmo, para mandar ou guardar no favorito
Trocar o linkgera outro endereço e derruba na hora todos os que já circularam
Fecharquem tiver o link passa a ver "não disponível"

Quem consegue entrar

O endereço sozinho não abre. Quem clicar precisa estar logado e fazer parte da conta dona do portal. O link é o endereço, não a credencial — e continua revogável a qualquer momento por Trocar o link.

Para quem só precisa ver portais, a tela de Equipe tem o papel "só portais": a pessoa entra na conta, enxerga os portais liberados e nenhuma outra tela da plataforma.

Rodar uma automação a partir da página ​

Dentro do portal existe um objeto datallog, injetado pela plataforma:

html
<button id="rodar">Atualizar</button>
<pre id="saida"></pre>

<script>
document.getElementById('rodar').addEventListener('click', async () => {
  const r = await datallog.run('relatorio', { mes: '2026-10' });
  const corpo = r && r.result !== undefined ? r.result : r;
  document.getElementById('saida').textContent = JSON.stringify(corpo, null, 2);
});
</script>

datallog.run(automacao, seed) inicia uma automação do mesmo projeto do portal — o projeto é a fronteira. O seed chega na sua função Python exatamente como chegaria por qualquer outro caminho.

O que volta depende de como a automação responde:

  • em Esperar o resultado, a resposta já traz o resultado;
  • em Rodar em segundo plano — ou quando a execução passa do orçamento da chamada — volta um corpo com exec_uuid, e a execução segue viva: o resultado chega pelo webhook e pelo histórico de execuções.

Trate os dois casos, ou a tela fica esperando um resultado que vai chegar por outro caminho.

Não há limite de execuções: o portal roda qualquer automação do projeto dele, e quem tem o link consegue disparar. Para cortar, feche o portal ou troque o link.

O isolamento da página, e o que ele impede ​

O HTML é seu, e ele roda no mesmo domínio da nossa API. Para que o código de um portal não alcance a sessão de quem o abriu, a plataforma serve o conteúdo dentro de um <iframe sandbox> sem allow-same-origin, e repete a regra num cabeçalho Content-Security-Policy.

Na prática, a página nasce em origem opaca. Isso tem consequências que valem conhecer antes de escrever a tela:

O que não funcionaO que fazer no lugar
localStorage, sessionStorage, IndexedDB (dão SecurityError)guarde o estado na memória da aba, ou mande a automação guardar
document.cookiea plataforma já identifica quem abriu
ler ou escrever o documento de cima (window.parent)nada a fazer: é o isolamento funcionando
chamar a nossa API com a sessão de quem abriuuse datallog.run, que carrega a credencial certa

Preferência que precisa sobreviver ao recarregamento

Sem armazenamento local, uma escolha feita na tela (um filtro, um nome, uma aba) só vive enquanto a aba está aberta. Se ela precisa durar, grave pela automação e leia de volta quando a página abrir.

O resto do sandbox permite o que uma tela precisa: scripts, formulários, modais e abrir links em nova aba.

Checklist para um portal novo ​

  1. crie o portal no painel e escreva (ou publique) o conteúdo;
  2. Abrir por link e copie o endereço;
  3. ponha em Esperar o resultado as automações que a página chama, para a resposta vir na hora;
  4. teste dentro do portal, não abrindo o HTML no seu computador — o isolamento só vale lá;
  5. se o link sair do seu controle, Trocar o link.