Skip to content

Loop

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

CAPTURAR: container de Loop no canvas com os pontos de loop_start e loop_end visíveis; blocos internos de exemplo

Passo a passo
  1. 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

    CAPTURAR: container de Loop recém-adicionado no canvas

  2. Clique no container para abrir o painel de configuração.
    CAPTURAR: painel de configuração do Loop

    CAPTURAR: painel de configuração do 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).
    CAPTURAR: campo de contagem máxima configurado com o valor 5

    CAPTURAR: campo de contagem máxima configurado com o valor 5

  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.
    CAPTURAR: condição de saída configurada: 'status_pagamento é igual a confirmado'

    CAPTURAR: condição de saída configurada: 'status_pagamento é igual a confirmado'

  5. 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

    CAPTURAR: variáveis de loop configuradas no painel

  6. 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

    CAPTURAR: blocos HTTP Request e IF/ELSE dentro do container de Loop

  7. 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

    CAPTURAR: saída do container de Loop conectada ao bloco seguinte

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 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 a pago
  • Dentro do loop:
    1. HTTP Request → 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
CAPTURAR: container de Loop com HTTP Request interno; saídas do loop conectadas a dois caminhos diferentes (pago / não pago)

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.