Portais no navegador
O agente trabalha nas páginas de um portal, como um ERP, logado como você, sem ver a sua senha.
O agente trabalha nas páginas de um portal que a empresa usa, como o Bling, o Sankhya ou um ERP regional: lê listas e tabelas, clica, preenche e escolhe, logado como você. Você entra no portal uma vez, na página da Kernel que a Siglata abre, com a sua senha e os seus códigos; nem a Siglata nem o agente os veem. A Kernel, fornecedora de navegadores da Siglata, guarda a sessão e entra de novo sozinha quando ela expira.
A política de privacidade diz o que a Kernel guarda e por quanto tempo, e os termos dizem quem responde pelo que os agentes fazem no portal.
Conectar um portal
Peça ao agente, por exemplo: “conecte o Bling”. Ele chama portal_connect com o domínio do portal ou qualquer link para ele:
return await portal_connect({ domain: "bling.com.br" });
A resposta traz um link para a página de conexão da Siglata. Abra-o, confirme que você pode automatizar essa conta e entre no portal na página da Kernel. Quando o login termina, a página mostra que o portal está conectado. Bancos, redes sociais e o login gov.br são recusados.
A conexão é sua: só você a usa. Um proprietário ou administrador conecta o portal da empresa com visibility: "org", e ele serve a todo membro que não tem uma conexão própria com aquele domínio. No portal da empresa, todo membro lê as páginas (portal_open, portal_read, portal_run). Agir nele (portal_act, portal_run_write), entrar de novo e desconectá-lo pedem escrita: proprietários, administradores e quem recebeu escrita com grant_set e o connectionId que portal_list mostra.
portal_list mostra as conexões que você vê e o status atual: authenticated (pronta), connecting (alguém está entrando) ou needs_auth (mande o url para a pessoa entrar de novo). portal_disconnect exclui a sessão que a Kernel guarda, o login guardado e as concessões.
Trabalhar nas páginas
portal_open abre um navegador no portal, já logado, e lê a página: a árvore de acessibilidade (papéis e nomes dos elementos) e as tabelas visíveis, linha por linha.
const { sessionId, page } = await portal_open({
domain: "bling.com.br",
url: "https://www.bling.com.br/produtos.php",
});
Na mesma sessão, portal_read lê de novo a página ou vai a outra página do portal, e portal_act clica, preenche ou escolhe um elemento pelo papel e nome que a página mostra:
return await portal_act({
sessionId,
action: { kind: "fill", role: "textbox", name: "Pesquisar", value: "caneta" },
});
O agente nunca digita num campo de senha e para em qualquer link que saia do domínio do portal. A sessão dura 15 minutos.
Guardar e repetir um roteiro
portal_close fecha a sessão e devolve os passos que funcionaram como um roteiro (script). O agente o guarda numa skill da empresa para repetir o trabalho depois:
portal_runroda numa chamada um roteiro só de navegação (goto) e lê a última página.portal_run_writeroda numa chamada um roteiro que clica, preenche ou escolhe, e pede escrita na conexão. Quem pode o quê se decide pelo acesso, e a Atividade registra cada execução.
Créditos e logins expirados
Antes de abrir o navegador, a Siglata reserva créditos para o limite de tempo da chamada ou sessão. O saldo disponível já desconta essa reserva; sem saldo suficiente, as ferramentas falham com credits_exhausted. O tempo usado é cobrado mesmo se a execução falhar. Ao fechar, a reserva restante é liberada. Chamadas na mesma sessão são atendidas em sequência, com cobrança e histórico gravados juntos. Uma falha ao registrar a cobrança faz a operação falhar e mantém o trecho pendente.
A Kernel confere a sessão de hora em hora e entra de novo sozinha com o login guardado. Quando uma ferramenta encontra o portal deslogado, ela mesma pede esse login à Kernel, espera até 2 minutos e continua; a Atividade registra o login como portal_relogin. Um roteiro só de navegação roda de novo; um roteiro que age não roda de novo, e o agente confere a página antes de repetir. Só quando esse login falha ou pede algo a você (um código, um CAPTCHA, uma escolha) a ferramenta falha com portal_needs_login, o link para você entrar e o código de erro da Kernel.
Para logins que um script na sua máquina usa, veja Acessos a portais.