Skip to content

Repetir (laço)

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 de Repetir para cada item (que percorre uma lista), o Repetir (laço) 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 quadro de Repetir (laço)

O Repetir (laço) é um quadro visual no canvas — um bloco maior que envolve outros blocos. Quando você adiciona o quadro, dois pontos de controle são gerados automaticamente dentro dele:

  • Início do Repetir (laço) — onde a execução começa a cada volta.
  • Fim do Repetir (laço) — onde você decide se repete ou sai.

Você monta a lógica de cada volta dentro do quadro, entre o início e o fim. No Fim do Repetir (laço) você configura as condições de saída (break conditions).

Painel de configuração do nó Laço, com os campos Variáveis de loop, Condição de término de loop e Contagem máxima de loop

Painel de configuração do nó Laço, com os campos Variáveis de loop, Condição de término de loop e Contagem máxima de loop

Passo a passo
  1. Arraste o bloco **Repetir (laço)** para o canvas a partir da categoria **Lógica**. Um quadro com início e fim automáticos aparece.
    Painel de busca de blocos aberto no canvas, com as categorias e a lista de nós disponíveis para arrastar

    Painel de busca de blocos aberto no canvas, com as categorias e a lista de nós disponíveis para arrastar

  2. Clique no quadro para abrir o painel de configuração.
    Painel de configuração do nó Laço, com os campos Variáveis de loop, Condição de término de loop e Contagem máxima de loop

    Painel de configuração do nó Laço, com os campos Variáveis de loop, Condição de término de loop e Contagem máxima de loop

  3. 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).
  4. 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.
  5. Defina as **variáveis de loop** que serão atualizadas a cada volta (ex.: contador, acumulador de resultados).
  6. Adicione os blocos que devem executar a cada volta **dentro** do quadro, conectando-os entre o início e o fim do loop.
    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

  7. Conecte a saída do quadro ao próximo bloco que roda após o loop terminar.
    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

Campos
CampoO que faz
Contagem máximaNúmero máximo de voltas antes de sair obrigatoriamente
Break conditionsCondições que, quando verdadeiras, encerram o loop imediatamente
Variáveis de loopVariáveis que persistem e podem ser atualizadas entre as voltas
TítuloNome interno do quadro no canvas
Exemplo

Um fluxo precisa verificar se um boleto foi pago antes de liberar um documento. O Repetir (laço) checa o status do pagamento a cada 5 minutos, por até 3 tentativas:

  • Contagem máxima: 3
  • Break condition: status_pagamento é igual a pago
  • Dentro do loop:
    1. Requisição HTTP → chama a API do banco para consultar o status
    2. (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
Fluxo de exemplo no canvas com um nó de condição gerando duas saídas (IF/ELSE) conectadas a caminhos diferentes

Fluxo de exemplo no canvas com um nó de condição gerando duas saídas (IF/ELSE) conectadas a caminhos diferentes

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.

Saiba mais