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"
}
]
}| enCriteriaFail | Comportamiento |
|---|---|
| saltar | Omita este paso en silencio y continúe con el siguiente. Bueno para enriquecimiento opcional. |
| detener | Marque la ejecución como fallida. Úselo para requisitos difíciles. |
| esperar | Pausar la ejecución hasta que se cumpla la condición o se anule manualmente. |
Operadores de condición
| Operador | Usar para |
|---|---|
| == != | Coincidencia exacta/no igual (cadenas, booleanos, enumeraciones) |
| > < >= <= | Comparación numérica (puntuaciones, recuentos, fechas) |
| es nulo no es nulo | Verificación de presencia (entradas opcionales, resultados de enriquecimiento opcionales) |
| contiene | Verificació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
- procesamiento por lotes — Paralelo fan-out para grandes conjuntos de datos
- Validación — Detectar datos incorrectos antes de que se ejecuten los bucles
- AI Steps — Usando pasos AI dentro de bucles
