Tema
Referência do nó
Kind
call_subflow_inlineCategoriaLógicaChamar 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:
- Publicado no workspace.
- Marcado como reusável (disponível para chamada por outros fluxos).
- 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:
- Arraste o bloco **Subfluxo Inline** para o canvas a partir da categoria **Lógica**.
- Clique no bloco para abrir o painel de configuração.
- No campo **Subfluxo**, selecione o subfluxo alvo na lista. Ela mostra apenas fluxos publicados, reusáveis e em modo síncrono.
- 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.
- 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:
- Arraste o bloco **Subfluxo com Retorno** para o canvas.
- No painel, selecione o subfluxo alvo (publicado, reusável e em modo síncrono).
- Preencha os **campos de entrada** esperados pelo subfluxo, com valores fixos, variáveis ou expressões.
- Configure as **saídas**: para cada valor que o subfluxo devolve, escolha a variável do fluxo pai que vai recebê-lo.
- 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:
- Arraste o bloco **Subfluxo Assíncrono** para o canvas.
- Selecione o alvo. Apenas Fluxos de Trabalho em modo **Assíncrono**, publicados e reusáveis aparecem na lista.
- Preencha os **campos de entrada** esperados pelo subfluxo alvo. Não há configuração de saída — o fluxo pai não recebe retorno.
- Conecte a saída do nó ao próximo bloco. O fluxo pai continua imediatamente, sem aguardar o término do subfluxo.
Atenção
O modo de execução de um Fluxo de Trabalho não pode ser trocado se houver fluxos chamando-o de forma incompatível. Por exemplo: se um **Subfluxo com Retorno** já aponta para este workflow, não é possível alterá-lo para modo Assíncrono até que essa chamada seja removida ou substituída.
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
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
| Inline | Com Retorno | Assíncrono | Goto | |
|---|---|---|---|---|
| Modo exigido do alvo | Síncrono | Síncrono | Assíncrono | — (mesmo fluxo) |
| Contexto | Compartilhado | Isolado | Isolado | — |
| Aguarda término | Sim | Sim | Não | — |
| Devolve valores | Não | Sim | Não | — |
| Recebe entradas | Sim | Sim | Sim | Não |
Campos do inspector
| Campo | Tipos | O que faz |
|---|---|---|
| Subfluxo (picker) | Inline, Retorno, Assíncrono | Seleciona o subfluxo alvo na lista de reusáveis publicados do workspace |
| Campos de entrada | Inline, Retorno, Assíncrono | Mapeia cada parâmetro esperado pelo subfluxo para um valor fixo, variável ou expressão |
| Saídas | Retorno | Mapeia cada valor devolvido pelo subfluxo para uma variável do fluxo pai |
| Nó de destino | Goto | Qual nó do fluxo atual receberá a execução |
| Título | Todos | Nome 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
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.
Atenção
O **Goto** é poderoso mas pode tornar o fluxo difícil de ler se usado em excesso. Um desvio para um ponto muito distante no canvas dificulta a manutenção. Se precisar de muitos Gotos, considere reorganizar em subfluxos separados.
Saiba mais
- Categorias, pastas e projetos — categoria Fluxo de Trabalho e modo de execução síncrono/assíncrono
- Testar e Publicar — publicar o subfluxo para que ele apareça na lista de chamada
- Exportar e importar fluxos (.adflow) — como subfluxos viajam entre workspaces
