If / Condition

logic_if · logic · Logica & Flow · Disponibile · v2.1.0

Descrizione

Operatore di branching binario condizionale enterprise — il control flow primitive di qualsiasi pipeline che ha bisogno di prendere una decisione "questo va a sinistra, quest'altro a destra" e che corrisponde concettualmente all'if-else dei linguaggi di programmazione classici. Valuta una condizione e instrada il workflow lungo il ramo "true" (yes) oppure il ramo "false" (no) — l'engine FlowForge esegue SOLO il ramo scelto (vedere chosenBranch + workflow-engine strategy logic-if), evitando fan-out su entrambi e sprecando risorse + side effects indesiderati. Due modalità di definizione della condizione mutuamente esclusive per coprire spettro complete dei case: (1) Builder visuale multi-regola — l'interfaccia no-code per non-developer commercialisti/marketing/amministrativi: aggiungi una o più regole composabili con combinatori AND/OR (logical operator scelto top-level), ogni regola consiste di un field path (dot-notation come "$node.triage.json.label"), un operatore type-aware (per stringhe: equals, not_equals, contains, starts_with, ends_with, matches_regex, is_empty; per numeri: greater_than, less_than, between, greater_than_or_equal; per array/collezioni: in, not_in, contains_any, contains_all, size_equals; per booleani: is_true, is_false; universal: exists, not_exists per null/undefined check), e un valore di confronto (può essere literal o expression {{$node.config.threshold}} valutata runtime); (2) Espressione JavaScript libera — back-compat con l'engine v1 e fallback per condizioni veramente complesse non esprimibili nel builder (es. "input.amount > input.user.tier_limit && Date.parse(input.due) < Date.now()") — valutata dall'interprete sicuro del runtime (denylist anti-escape + scope curato + timeout 250ms; il confine forte è l'isolamento per-tenant in container Docker), con accesso a $node, $input, $vars + helper tipo $date, $string e le pipe (| upper, | round, | currency, …). Use case canonici: routing email triagata (è un ordine cliente? → ramo Salesforce updateOrder, altrimenti → ramo notifications agli operatori); gate su soglia di confidence di un classifier ML (confidence > 0.8 → ramo auto-processed, altrimenti → ramo human_review); permission check pre-action (user.role === 'admin' → ramo dangerous_action allowed, altrimenti → ramo deny + audit log); A/B routing utenti su feature flag (user.experiment_cohort === 'B' → ramo new_experience, altrimenti → ramo control); validazione amount per workflow finanziari (amount > 10000 → ramo approval_workflow CFO, altrimenti → ramo auto_approve immediato).

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
conditionRules
Condizioni (visual builder)
condition-rulesnoBuilder visuale: aggiungi regole con operando di sinistra, operatore, valore di destra. AND/OR fra le regole. Operatori per tipo: stringa (contains/regex/...), numero (gt/lt/between), data (before/after), boolean (is-true/is-false), generico (exists). Se vuoto, viene usata l'espressione "Condizione (espressione libera)" qui sotto.
condition
Condizione (espressione libera)
expressionno
input.status === "active"
Usata SOLO se il builder visuale qui sopra è vuoto. Espressione JS che ritorna true/false. Variabili: input, output, ctx, vars.

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

  • true
  • false

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-logic_if-1",
  "defId": "logic_if",
  "label": "If / Condition",
  "config": {}
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare If / Condition?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi