Skip to content

Chamar Subfluxo e Desvio (Goto)

Para que serve

Quando um fluxo cresce demais ou você quer reaproveitar uma sequência de passos em vários fluxos, os nós de subfluxo permitem chamar outro fluxo a partir do atual — como pedir ajuda para um colega especialista em vez de fazer tudo sozinho. Cada tipo de chamada tem um comportamento diferente quanto ao compartilhamento de dados, à espera e ao retorno de valores. O Goto, por sua vez, desvia a execução para outro ponto dentro do mesmo fluxo, sem envolver nenhum fluxo externo.

Quando usar
  • Subfluxo Inline — quando você quer executar outro fluxo no mesmo contexto e continuar logo após, com as variáveis mescladas de volta ao fluxo pai.
  • Subfluxo com Retorno — quando o subfluxo precisa devolver valores mapeados de volta para variáveis do fluxo pai, rodando de forma isolada.
  • Subfluxo Assíncrono — quando você quer disparar outro fluxo em paralelo sem esperar ele terminar.
  • Goto — quando você quer pular para outro nó dentro do mesmo fluxo sem criar um subfluxo.

Pré-requisito: subfluxo reusável e publicado

Para aparecer na lista de escolha de qualquer nó de chamada, o subfluxo alvo precisa estar:

  1. Publicado no workspace.
  2. Marcado como reusável (disponível para chamada por outros fluxos).
  3. Com o modo de execução correto (definido no nó Start do Fluxo de Trabalho via toggle "Modo de execução"):
    • Síncrono — para Subfluxo Inline e Subfluxo com Retorno.
    • Assíncrono — para Subfluxo Assíncrono.

Fluxos que não atendem esses critérios não aparecem na lista. Consulte Categorias, pastas e projetos para entender como criar e configurar subfluxos reusáveis.


Tipos disponíveis

Subfluxo Inline

Chama um subfluxo e continua no mesmo contexto. As variáveis do subfluxo são mescladas de volta ao fluxo pai ao fim da execução. Exige um subfluxo alvo em modo síncrono.

Comportamento: contexto compartilhado — o subfluxo enxerga e pode alterar as variáveis do fluxo pai. Ao terminar, a execução volta automaticamente ao ponto de saída do nó.

Quando usar: reaproveitar uma sequência de passos (ex.: validar CPF, formatar endereço) que não precisa de isolamento e cujo resultado deve estar imediatamente disponível no fluxo pai.

Como configurar:

  1. Arraste o bloco **Subfluxo Inline** para o canvas a partir da categoria **Lógica**.
  2. Clique no bloco para abrir o painel de configuração.
  3. No campo **Subfluxo**, selecione o subfluxo alvo na lista. Ela mostra apenas fluxos publicados, reusáveis e em modo síncrono.
  4. Ao selecionar, o painel exibe os **campos de entrada** esperados pelo subfluxo. Para cada parâmetro, informe um valor fixo, uma referência a variável (``) ou uma expressão.
  5. Conecte a saída do nó ao próximo bloco do fluxo principal.

Subfluxo com Retorno

Chama um subfluxo de forma isolada, aguarda ele terminar e mapeia as saídas de volta para variáveis do fluxo pai. Exige um subfluxo alvo em modo síncrono.

Comportamento: contexto isolado — o subfluxo não enxerga diretamente as variáveis do fluxo pai. Os valores de retorno (definidos no subfluxo) são mapeados explicitamente para variáveis do fluxo pai no painel de saídas.

Quando usar: o subfluxo realiza uma coleta ou cálculo (ex.: coletar endereço em vários passos, consultar uma API) e precisa devolver valores estruturados para o fluxo pai usar.

Como configurar:

  1. Arraste o bloco **Subfluxo com Retorno** para o canvas.
  2. No painel, selecione o subfluxo alvo (publicado, reusável e em modo síncrono).
  3. Preencha os **campos de entrada** esperados pelo subfluxo, com valores fixos, variáveis ou expressões.
  4. Configure as **saídas**: para cada valor que o subfluxo devolve, escolha a variável do fluxo pai que vai recebê-lo.
  5. Conecte a saída do nó ao próximo bloco.

Subfluxo Assíncrono

Dispara outro fluxo em paralelo e não espera ele terminar. A execução do fluxo atual segue imediatamente. Exige um subfluxo alvo em modo assíncrono.

Comportamento: o subfluxo é despachado e roda de forma completamente independente. O fluxo pai não aguarda resultado nem recebe valores de retorno — apenas envia os dados de entrada e segue em frente. Por rodar em paralelo sem espera, não há configuração de saída disponível neste nó.

Quando usar: tarefas secundárias que não devem travar a conversa — notificar a equipe interna, criar um ticket, registrar um log — enquanto o contato já avança para a próxima mensagem.

Alvo precisa estar em modo Assíncrono: no editor do Fluxo de Trabalho alvo, selecione o nó Start e ative o toggle "Modo de execução: Assíncrono". Somente então o fluxo fica disponível nesta lista. Em modo Assíncrono, a seção "Saídas do subfluxo" não aparece no editor do alvo — um fluxo assíncrono não retorna valores.

Como configurar:

  1. Arraste o bloco **Subfluxo Assíncrono** para o canvas.
  2. Selecione o alvo. Apenas Fluxos de Trabalho em modo **Assíncrono**, publicados e reusáveis aparecem na lista.
  3. Preencha os **campos de entrada** esperados pelo subfluxo alvo. Não há configuração de saída — o fluxo pai não recebe retorno.
  4. Conecte a saída do nó ao próximo bloco. O fluxo pai continua imediatamente, sem aguardar o término do subfluxo.

Goto (Desvio)

Desvia a execução diretamente para outro nó dentro do mesmo fluxo — sem chamar nenhum fluxo externo.

Fluxo de exemplo no canvas, com os blocos conectados em sequência do Início ao Fim

Fluxo de exemplo no canvas, com os blocos conectados em sequência do Início ao Fim

Quando usar: criar atalhos dentro de um fluxo complexo, voltar para um ponto anterior sem criar um loop formal, ou pular etapas condicionalmente.


Comparativo rápido

InlineCom RetornoAssíncronoGoto
Modo exigido do alvoSíncronoSíncronoAssíncrono— (mesmo fluxo)
ContextoCompartilhadoIsoladoIsolado
Aguarda términoSimSimNão
Devolve valoresNãoSimNão
Recebe entradasSimSimSimNão

Campos do inspector
CampoTiposO que faz
Subfluxo (picker)Inline, Retorno, AssíncronoSeleciona o subfluxo alvo na lista de reusáveis publicados do workspace
Campos de entradaInline, Retorno, AssíncronoMapeia cada parâmetro esperado pelo subfluxo para um valor fixo, variável ou expressão
SaídasRetornoMapeia cada valor devolvido pelo subfluxo para uma variável do fluxo pai
Nó de destinoGotoQual nó do fluxo atual receberá a execução
TítuloTodosNome interno do nó no canvas

Exemplo

Um escritório tem três fluxos de atendimento (consulta, processo, financeiro). Todos precisam validar o CPF do cliente antes de continuar. Em vez de repetir essa lógica, cria-se um fluxo separado "Validar CPF" (publicado, reusável, em modo síncrono) e usa-se Subfluxo Inline em cada um dos três fluxos para chamá-lo. O campo cpf_digitado é passado como entrada; após a execução, a variável cpf_valido já está disponível no contexto do fluxo pai.

Fluxo de exemplo no canvas, com os blocos conectados em sequência do Início ao Fim

Fluxo de exemplo no canvas, com os blocos conectados em sequência do Início ao Fim

Dica
Use **Subfluxo Assíncrono** para operações de "notificação interna" que não devem fazer o contato esperar — registrar um log, notificar um atendente ou criar um ticket — enquanto o contato já recebe a próxima mensagem.

Saiba mais