Bucles y condicionales

Controle las primitivas de flujo para flujos de trabajo complejos. Recorra matrices, bifurque según condiciones y cree rutas de ejecución dinámicas basadas en salidas de pasos.


Para cada bucle

Añadir un loopConfig a cualquier paso para iterar sobre una matriz de un paso anterior. El paso se ejecuta una vez por elemento; el artículo actual está disponible como {{currentItem.field}}.

loopConfig: {
  source: "executionContent",    // pull from a previous step's output
  config: {
    stepId: "load_investors",    // which step's output to iterate
    field: "listEntries",        // dot-path to the array
    filter: {                    // optional — only loop qualifying items
      field: "score",
      operator: ">=",
      value: 70
    }
  }
}

en fracaso: continue sigue pasando por elementos fallidos; stop detiene todo el ciclo en el primer fallo.


Condiciones de entrada (puertas condicionales)

Agregar entryConditions a cualquier paso para que se ejecute sólo cuando se cumplan los criterios. Si fallan, se puede omitir el paso, detener el flujo de trabajo o esperar.

entryConditions: {
  onCriteriaFail: "skip",    // "skip" | "stop" | "wait"
  conditionText: "Only draft if score is high enough",
  criteria: [
    {
      variable: "{{steps.score_step.score}}",
      operator: ">=",
      value: 75
    },
    {
      variable: "{{input.documentFile}}",
      operator: "isNotNull"
    }
  ]
}
enCriteriaFailComportamiento
saltarOmita este paso en silencio y continúe con el siguiente. Bueno para enriquecimiento opcional.
detenerMarque la ejecución como fallida. Úselo para requisitos difíciles.
esperarPausar la ejecución hasta que se cumpla la condición o se anule manualmente.

Operadores de condición

OperadorUsar para
==  !=Coincidencia exacta/no igual (cadenas, booleanos, enumeraciones)
>  <  >=  <=Comparación numérica (puntuaciones, recuentos, fechas)
es nulo  no es nuloVerificación de presencia (entradas opcionales, resultados de enriquecimiento opcionales)
contieneVerificación de membresía de subcadena o matriz

Esperando a que termine un bucle

Si un paso posterior necesita esperar a que se completen todas las iteraciones del bucle antes de ejecutarse, agregue un loop_completion condición:

entryConditions: {
  criteria: [
    {
      type: "loop_completion",
      stepId: "enrich_each_company"
    }
  ]
}

Ejemplo: Enriquecer → Filtrar → Borrar

Paso 1Leer prospects lista (estado: nuevo). Devoluciones listEntries[].

Paso 2bucle sobre listEntries, onFailure: continue. Enriquecer {{currentItem.domain}} vía Hunter.

Paso 3Califique cada cliente potencial enriquecido. Condición de entrada: email isNotNull (omita si no se encontró nada).

Paso 4Proyecto de divulgación. Condición de entrada: score >= 75, onCriteriaFail: skip — los que obtuvieron puntuaciones bajas saltaron en silencio.


Bucles versus procesamiento por lotes

Bucles iterar secuencialmente dentro de una sola ejecución: un elemento a la vez, en orden. procesamiento por lotes divide una lista en ejecuciones secundarias paralelas que se ejecutan al mismo tiempo. Utilice bucles para listas pequeñas o cuando el orden sea importante; utilice procesamiento por lotes para grandes conjuntos de datos donde la velocidad importa más.


Próximos pasos