Pular para o conteúdo
Automação e IA

Validações de segurança do Flow Builder: por que travam você

Cinco bloqueios aplicados antes de publicar, o cenário real que cada um evita e o jeito de resolver dentro do editor sem tentar burlar a regra.

WAEquipe WebajatoPublicado em Atualizado em 10 minNível Intermediário
Ilustração do módulo Automação e IA da plataforma Webajato

Fiquei irritado com as validações de segurança do Flow Builder num sábado à noite. Eu queria publicar, o editor não deixava, e a mensagem falava de referência circular entre fluxos. Passei meia hora tentando entender o que aquilo tinha a ver com o meu desenho. Tinha tudo. O fluxo A chamava o B, que chamava o C, que voltava para o A. Se tivesse publicado, teria rodado até derrubar alguma coisa.

São cinco cenários barrados, todos ligados a subfluxo e a loop. Cada um virou regra depois de causar estrago em algum lugar. Entender o motivo de cada bloqueio é o que evita você contornar a regra e reintroduzir o problema por outra porta, que foi exatamente o que eu tentei fazer naquele sábado.

Aqui eu detalho cada bloqueio, o sintoma que ele evita e como corrigir. Este texto é irmão do catálogo de erros comuns em fluxos de chatbot, que trata dos defeitos que nenhuma validação consegue pegar.

O que as validações de segurança cobrem e o que ignoram

Ela é estrutural. Olha o grafo do fluxo, as referências entre fluxos e a presença de bloco de espera dentro dos ciclos. Não olha texto, não olha tom, não julga a sua regra de negócio e não tem opinião sobre a experiência do cliente.

BloqueioCenário evitado
Bloco Flow sem destinoJornada que termina no vazio ao chamar o subfluxo
Bloco Flow apontando para o próprio fluxoRecursão imediata e consumo sem fim
Destino inexistente, inativo ou de outra empresaChamada para um fluxo que não pode responder
Referência circular entre fluxosFluxo A chama B que chama A, sem parar nunca
Loop local sem bloco de esperaCiclo interno rodando sem pausa nem interação

Bloco Flow sem destino

O bloco Flow nasce no canvas com o rótulo "Defina um fluxo". É um lembrete visual de que ele está pela metade. Publicar assim seria mandar o cliente para um subfluxo que não existe, no meio da jornada, sem aviso.

A correção é rápida: abra o bloco, escolha o fluxo de destino e olhe o preview dos nós que o editor carrega. Esse preview é o jeito mais rápido de confirmar que você pegou o subfluxo certo, e eu confio mais nele do que no nome do fluxo.

Autorreferência e referência circular

Bloco Flow apontando para o próprio fluxo é recursão na hora. A referência circular é mais traiçoeira, porque nenhum bloco parece errado quando você olha um por vez. Foi o meu caso. Cada fluxo estava impecável sozinho.

Quando a validação acusa circularidade, não saia removendo bloco Flow. Repense a hierarquia. Subfluxo deve ser folha ou nível intermediário com direção única. Se qualquer jornada pode chamar qualquer outra, você não tem hierarquia, tem um emaranhado.

Destino inativo ou de outra empresa

Esse bloqueio protege dois limites. O primeiro é prático: apontar para fluxo inativo ou inexistente resulta em jornada interrompida. O segundo é de isolamento, e um fluxo não pode chamar fluxo de outra empresa, o que preserva a separação dos dados na plataforma.

Esse erro aparece com força depois de importar um arquivo `.flux` de outro ambiente. As referências internas apontam para identificadores que não existem no destino, e a validação pega antes que alguém publique. Já importei fluxo às pressas e agradeci por esse bloqueio existir.

Loop local sem bloco de espera

Ciclo dentro do fluxo não é proibido. O que é barrado é o ciclo sem nenhum bloco que aguarde resposta, menu, captura, delay ou mensagem segura. Sem ponto de pausa, o motor percorre o ciclo sem intervalo e sem ninguém do outro lado.

A leitura simples da regra: todo ciclo precisa de um motivo para respirar. Se o ciclo existe para repetir uma pergunta, ele já tem Menu ou Captura. Se existe para reprocessar, precisa de Delay. Se não tem nenhum dos dois, quase sempre é aresta ligada por engano.

  • Bloco que aguarda resposta do contato
  • Bloco Menu, que mostra opções e espera a escolha
  • Bloco Captura, que coleta resposta aberta
  • Bloco Delay, que suspende a execução por um período
  • Mensagem segura, aceita como ponto de pausa

Qualquer um desses deixa o ciclo legítimo. A escolha depende do motivo da repetição e segue os critérios de tipos de blocos do Flow Builder, que explica quando cada peça encaixa melhor.

Como eu corrijo, na ordem

  1. Rode a validaçãoA ação está na barra única, junto com salvar, importar e exportar.
  2. Use a localização visualO editor aponta no canvas onde está cada problema, o que evita caçada manual em fluxo grande.
  3. Corrija do subfluxo para o principalErro de bloco Flow se propaga. Resolver o destino primeiro derruba vários apontamentos de uma vez.
  4. Revalide até a lista zerarCorreção costuma revelar problema que estava escondido atrás do erro anterior.
  5. Só então converse com o botTeste conversacional com estrutura inválida gera diagnóstico enganoso e faz você caçar fantasma.

O que continua sendo com você

A validação não garante que existe rota para humano, não avalia se o menu faz sentido e não sabe se sua regra de negócio está certa. Isso continua dependendo de leitura humana e de teste, como descrevi em como criar seu primeiro fluxo.

  • Validação estrutural sem nenhum apontamento pendente
  • Todos os blocos Flow com destino ativo e da mesma empresa
  • Nenhum ciclo sem bloco de espera
  • Rota de transferência para humano alcançável
  • Teste conversacional feito com desvio de propósito

Também não faz parte do escopo verificar se as integrações estão de pé. Um bloco HTTP apontando para serviço fora do ar passa limpo, porque a estrutura está correta. O mesmo vale para credencial do bloco Dados e para integração com sistema externo, como a sincronização com canais de marketplace. Isso é teste de ambiente, feito antes de ativar.

Faça isso hoje

Rode a validação em todos os fluxos ativos, inclusive nos que parecem tranquilos. Fluxo antigo acumula bloco Flow apontando para jornada que alguém desativou faz meses. Depois pegue o hábito de validar antes de cada ativação, com o checklist do lado.

Perguntas frequentes

O que é referência circular entre fluxos?
É quando um fluxo chama outro que, direta ou indiretamente, volta a chamar o primeiro. O resultado seria um loop infinito entre jornadas. O sistema detecta e barra isso antes de você publicar.
Posso desligar as validações de segurança?
Elas são aplicadas pelo controller como proteção e não devem ser contornadas. Quando uma validação atrapalha o que você quer fazer, o certo é redesenhar a hierarquia de fluxos. Tentei o caminho contrário uma vez e só adiei o problema.
Por que meu bloco Flow acusa destino inválido depois de importar?
O arquivo .flux carrega referências do ambiente de origem. Os fluxos de destino podem não existir aqui, estar inativos ou pertencer a outra empresa. Refaça o vínculo dos blocos Flow e revalide.
Todo ciclo dentro de um fluxo é bloqueado?
Não. O bloqueio pega ciclo sem nenhum bloco que aguarde resposta, menu, captura, delay ou mensagem segura. Ciclo com ponto de espera é legítimo e aparece toda hora em repetição de pergunta.
A validação garante que o fluxo está pronto?
De jeito nenhum. Ela cobre a estrutura. Clareza do texto, ordem das perguntas, adequação da regra e existência de rota para humano continuam dependendo de você e de um teste conversando.
validações de segurançaflow builderreferência circularloop de automação
Mais sobre Automação e IA

Outros módulos do blog

Cada módulo reúne um conjunto próprio de guias. Veja também o mapa do site com todos os artigos publicados.

Coloque esse conhecimento para rodar no seu dia a dia

Os temas daqui nascem de módulos reais da plataforma Webajato: ERP, financeiro, fiscal, estoque, PDV, loja virtual, marketplaces, CRM no WhatsApp, automação com IA e relatórios. Tudo em um único sistema multiempresa.

Conhecer a plataforma