Appearance
Referência do nó
Kind:loopCategoria:LógicaLoop
Para que serve
É como girar uma roleta até sair o número certo: o fluxo repete um conjunto de ações várias vezes, e a cada volta você pode checar se deve parar ou continuar. Diferente da Iteração (que percorre uma lista), o Loop repete enquanto uma condição for verdadeira — ou até atingir o número máximo de repetições.
Quando usar
- Tentar uma ação até obter sucesso (ex.: chamar uma API que pode falhar e retentar até 3 vezes).
- Aguardar que um status mude antes de continuar (ex.: verificar de tempos em tempos se um pagamento foi confirmado).
- Manter uma conversa ativa enquanto o contato não der uma resposta válida.
- Qualquer lógica que precise de repetição controlada com condição de parada.
Como funciona o container de Loop
O Loop é um container visual no canvas — um bloco maior que envolve outros blocos. Quando você adiciona o container, dois pontos de controle são gerados automaticamente dentro dele:
- Início do Loop (
loop_start) — onde a execução começa a cada volta. - Fim do Loop (
loop_end) — onde você decide se repete ou sai.
Você monta a lógica de cada volta dentro do container, entre o início e o fim. No Fim do Loop você configura as condições de saída (break conditions).

CAPTURAR: container de Loop no canvas com os pontos de loop_start e loop_end visíveis; blocos internos de exemplo
Passo a passo
- Arraste o bloco **Loop** para o canvas a partir da categoria **Lógica**. Um container com início e fim automáticos aparece.

CAPTURAR: container de Loop recém-adicionado no canvas
- Clique no container para abrir o painel de configuração.

CAPTURAR: painel de configuração do Loop
- Defina o **número máximo de repetições** — quantas voltas o loop pode dar antes de forçar a saída (proteção contra loops infinitos).

CAPTURAR: campo de contagem máxima configurado com o valor 5
- Configure as **condições de saída** (break conditions): defina qual condição, quando verdadeira, deve encerrar o loop antes de atingir o máximo.

CAPTURAR: condição de saída configurada: 'status_pagamento é igual a confirmado'
- Defina as **variáveis de loop** que serão atualizadas a cada volta (ex.: contador, acumulador de resultados).

CAPTURAR: variáveis de loop configuradas no painel
- Adicione os blocos que devem executar a cada volta **dentro** do container, conectando-os entre o início e o fim do loop.

CAPTURAR: blocos HTTP Request e IF/ELSE dentro do container de Loop
- Conecte a saída do container ao próximo bloco que roda após o loop terminar.

CAPTURAR: saída do container de Loop conectada ao bloco seguinte
Campos
| Campo | O que faz |
|---|---|
| Contagem máxima | Número máximo de voltas antes de sair obrigatoriamente |
| Break conditions | Condições que, quando verdadeiras, encerram o loop imediatamente |
| Variáveis de loop | Variáveis que persistem e podem ser atualizadas entre as voltas |
| Título | Nome interno do container no canvas |
Exemplo
Um fluxo precisa verificar se um boleto foi pago antes de liberar um documento. O Loop checa o status do pagamento a cada 5 minutos, por até 3 tentativas:
- Contagem máxima: 3
- Break condition:
status_pagamentoé igual apago - Dentro do loop:
HTTP Request→ chama a API do banco para consultar o status- (o status retornado é salvo na variável
status_pagamento)
- Após o loop:
- Se saiu por break condition (pago) → envia o documento
- Se saiu por contagem máxima (não pagou em 3 tentativas) → envia mensagem de instrução

CAPTURAR: container de Loop com HTTP Request interno; saídas do loop conectadas a dois caminhos diferentes (pago / não pago)
Dica
Sempre configure uma **contagem máxima** razoável. Sem ela, um bug na condição de saída pode fazer o fluxo girar para sempre, consumindo recursos e nunca respondendo ao contato.
Atenção
Não use Loop para substituir a [Iteração](/guia/flow-builder/logica/iteracao). Se você tem uma lista de itens para processar, use Iteração — é mais eficiente e legível. Loop é para quando você repete uma ação aguardando que algo aconteça, não para percorrer uma lista.