O que é um flow
Um flow é um pipeline que você desenha em vez de programar: uma cadeia vertical de passos que começa no nó Início e roda de cima para baixo. Cada passo é um script, uma consulta SQL, uma decisão, um loop ou uma ação pronta, e cada um pode usar o que os passos acima devolveram.
- Ler o canvas do flow e adicionar um passo com o + entre dois passos
- Conhecer cada tipo de nó que um flow aceita e quando escolher cada um
- Diferenciar o rascunho da versão publicada e saber o que a publicação verifica
- Acompanhar uma execução enquanto ela percorre o grafo
Um pipeline que você enxerga
Abra um flow e o canvas o mostra como uma coluna. No topo fica o nó Início: ele declara as entradas do flow (os parâmetros que uma pessoa, um agendamento ou uma chamada de API passam). Abaixo dele, cada passo fica pendurado na linha na ordem em que roda. Não há fio para ligar à mão nem posição para cuidar — o canvas organiza o flow sozinho a partir da estrutura, então uma condição abre os ramos lado a lado, um loop desenha uma moldura em volta do corpo, e todo grupo fecha com uma tampa de onde o flow continua.
O resultado de um passo é a saída dele — o que um script devolve, as linhas que uma consulta lê, a resposta que uma chamada HTTP recebe. Qualquer passo abaixo pode usar essa saída como uma das entradas; essa ligação é um binding, e é assim que os dados passam pelo flow sem código de cola.
Adicione um passo
- Crie o flow
Na página Código do projeto, clique em + Novo, escolha Flow, digite o Nome do flow e clique em Criar flow. Ele abre com um nó Início e nada abaixo.
- Clique num +
Todo conector tem um +. Clique no que fica onde o passo deve entrar — abaixo do Início, entre dois passos, dentro de um ramo ou do corpo de um loop. O menu Adicionar nó abre com uma busca (Buscar tipos de nó…).
- Escolha um tipo de nó
Escolha uma linguagem em Scripts, um nó de controle em Controle ou um passo pronto em Apps e dados. O passo entra na linha e os passos de baixo descem para abrir espaço.
- Configure no painel lateral
Clicar num passo abre o painel dele à direita: a aba Parâmetros guarda o que ele faz, Configurações de execução guarda novas tentativas, tempo limite e cache. Num passo de script, Abrir editor de código abre o código com as entradas ao lado.
Copiar, colar e desfazer funcionam nos passos como num editor de texto: selecione um passo, copie com Ctrl+C, selecione depois de qual passo ele deve entrar e cole com Ctrl+V; o menu do botão direito do passo oferece o mesmo.
Todos os tipos de nó
O menu Adicionar nó agrupa tudo o que um flow aceita. Cada tipo tem a própria página.
| Nó | O que faz |
|---|---|
| Python, TypeScript, JavaScript, C, C++ | Um passo de script com código próprio, executado no mesmo sandbox de qualquer script. Script existente vincula um script do projeto e sempre roda o código atual dele. |
| PostgreSQL, MySQL | Um passo SQL: uma consulta numa conexão do projeto; as linhas alimentam os passos abaixo. |
| Condição | Se / senão se / senão: roda exatamente um ramo. |
| Laço | Para cada item de uma lista ou das linhas de uma consulta, um de cada vez ou vários ao mesmo tempo. |
| Ramos em paralelo | Ramos com nome que rodam juntos; o passo seguinte lê cada um pelo nome. |
| Aprovação | Pausa a execução até uma pessoa aprovar ou rejeitar. |
| Flow, AI Scraper | Rodam outro flow publicado, ou um scraper publicado, como um passo (subflows). |
| Enviar e-mail, Requisição HTTP, Transformar, Passo de IA, Arquivo, Google Sheets, Google Drive | Passos prontos, sem código: Enviar e-mail, Requisição HTTP e Transformar já rodam, configurados no painel lateral; os outros aparecem no seletor, mas ainda não estão disponíveis. |
Em caso de erro e Pré-processador
Dois passos especiais ficam fora da cadeia e aparecem como pílulas no canvas, não como nós na linha. O passo Em caso de erro roda uma vez quando o flow falha — para avisar alguém ou registrar; a execução continua com falha. O Pré-processador roda primeiro, e só, quando o flow é chamado por um endpoint de API: ele recebe a requisição e devolve as entradas do flow. Um flow tem no máximo um de cada.
Rascunho, publicação, execução
O que você edita é o rascunho do flow. Salvar guarda o rascunho; Executar Flow roda exatamente o que está na tela, então dá para testar uma mudança antes que alguém dependa dela. Publicar verifica o rascunho e o congela como uma versão numerada — e a versão é o que tudo fora da página roda: agendamentos, endpoints de API, gatilhos de evento e outros flows que o chamam como subflow. Edições depois disso ficam no rascunho até você publicar de novo; o Histórico de versões lista cada versão publicada e pode restaurar uma.
O que a publicação verifica
A mesma verificação roda ao publicar e ao executar, então um problema é apontado antes de qualquer passo rodar. A resposta indica o passo e traz um código estável:
missing_connection— um passo SQL (ou um passo pronto que precisa de uma) está sem conexão.unknown_variable/invalid_binding— um binding cita uma variável que não existe, ou mistura uma variável com outra fonte.invalid_parameter— uma constante não cabe no tipo que o script declara.approval_in_loop,approval_in_branch,parallel_branches_min— um passo está onde não é permitido.
Como uma execução percorre o grafo
Uma execução começa no Início com as entradas recebidas e desce a linha. Um passo só começa depois que o de cima terminou; uma condição roda só o ramo que escolhe e marca os outros como ignorados; um loop repete o corpo uma vez por item; ramos em paralelo rodam lado a lado e se encontram na junção. O canvas mostra tudo ao vivo — o status e o tempo de cada passo no próprio nó — e o painel da execução guarda os detalhes de cada passo (o que uma execução mostra).
Limites e regras
- Um flow tem um nó Início, no máximo um passo Em caso de erro e no máximo um Pré-processador.
- Uma execução inteira tem um tempo limite, 30 minutos por padrão, definido nas configurações do flow; cada passo pode ter o próprio em Configurações de execução.
- Passos de script não têm acesso à rede, como todo script; para falar com serviços externos use os passos prontos ou uma integração do projeto.