Loop

logic_loop · logic · Logic & Flow · Available · v2.0.0

Description

Iterate a collection through the "body" branch. Choose serial / batched / bulk / queued / aggregated strategy per workload size.

⚙️ Configuration parameters

Fields shown in the editor when configuring the node. Generated directly from the NodeDefconfigFields.

FieldTypeRequiredDefaultDescription
itemsExpression
Espressione array da iterare
expressionyes
input.records
Espressione JS che ritorna un array. Esempi: input.orders · input.rows · [1,2,3,4,5] · Object.values(input) · input.text.split("\n")
strategy
Strategia di iterazione
enum
naivebatchbulkqueueaggregateauto
yesnaivenaive = uno alla volta (semplice). batch = in chunk (più veloce). bulk = singola chiamata bulk (se l'API supporta). queue = asincrono via BullMQ. aggregate = solo riduzione (no body). auto = engine sceglie il meglio.
batchSize
Dimensione chunk
numberno100Item per chunk. Solo per strategia "batch". Es. 100 = processa 100 alla volta.
concurrency
Concorrenza (iterazioni in parallelo)
numberno11 = seriale (un'iterazione alla volta). N = fino a N iterazioni in parallelo. 0 = illimitato (sconsigliato). Cap massimo = 50.
errorPolicy
Politica di gestione errori
enum
stopcontinuedlq
nocontinuestop = ferma il loop al primo errore. continue = registra l'errore e prosegue. dlq = push in dead-letter queue per retry differito.
rateLimitPerMin
Rate limit (richieste/minuto)
numberno0Throttle a N iterazioni al minuto. 0 = nessun limite. Usa quando l'API a valle ha rate limit noto (es. 60 per Stripe gratis).
maxItems
Limite massimo iterazioni (safety)
numberno100000Hard cap anti-runaway. Se l'array supera questa soglia, l'engine solleva errore. 100k default è sicuro per la maggioranza dei casi.
aggregateBy
Campo group-by (aggregate)
stringno
es. customer_id, category, region
Nome del campo dell'item su cui raggruppare prima di ridurre. Es. items=[{customer_id:1,amount:10},{customer_id:1,amount:20}] con aggregateBy=customer_id raggruppa i 2 elementi.
aggregateReducer
Funzione di riduzione
enum
countsumavgminmaxconcatcollect
nocountcount = conta elementi del gruppo. sum/avg/min/max = applica al campo "aggregateField" sotto. concat = join stringhe. collect = ritorna array di item.
aggregateField
Campo per sum/avg/min/max
stringno
es. amount, quantity, price
Nome del campo numerico da sommare/mediare. Ignorato per count/concat/collect. Es. con sum e aggregateField=amount, il risultato è la somma di tutti gli amount del gruppo.

⬆️ Node output

Fields available to downstream nodes via $node.<alias>.json.<field>:

  • body
  • done

💡 Configuration example

JSON snippet of the node as it appears in the workflow. Values are derived fromdefaultValue and from required parameters.

{
  "id": "node-logic_loop-1",
  "defId": "logic_loop",
  "label": "Loop",
  "config": {
    "itemsExpression": "input.records",
    "strategy": "naive",
    "batchSize": 100,
    "concurrency": 1,
    "errorPolicy": "continue",
    "rateLimitPerMin": 0,
    "maxItems": 100000,
    "aggregateReducer": "count"
  }
}

🔗 Related nodes in the same category

Ready to use Loop?

Available now on all FlowForge plans. Try it free without a credit card.

Start freeBrowse all nodes