Tipos de nodos
AIFlows soporta un conjunto amplio de nodos. Cada nodo tiene un kind y configuración específica. La lista canónica está en doc-iaflows/04-NODE-REFERENCE.md; aquí dejamos el resumen operativo.
Nodos de control de flujo
| Nodo | Propósito |
|---|
start | Punto de entrada. Único por flujo. |
wait | Pausa la ejecución esperando entrada del usuario. Soporta waitType: user_input \| webhook \| timeout \| schedule. |
switch | Ramifica según una expresión o variable; cada caso tiene su route. |
loop | Itera sobre una colección o hasta cumplir una condición. Tiene cotas (maxIterations, maxDurationMs) anti-runaway. |
redirect | Salta a otro nodo del mismo flujo (o de otro flujo del mismo proyecto). |
end | Cierra la ejecución. |
Nodos de datos
| Nodo | Propósito |
|---|
variable.set | Asigna un valor a una variable con un scope dado. |
variable.get | Lee una variable y la expone al contexto. |
http.request | Realiza un request HTTP y guarda la respuesta en una variable. |
function.call | Invoca una función definida en el proyecto. |
Nodos de IA
| Nodo | Propósito | Output |
|---|
ai.text | Genera texto con un LLM. | string |
ai.json | Genera un JSON estructurado siguiendo un esquema. | objeto validado |
ai.image | Genera una imagen. | URL o buffer |
ai.audio | Genera audio (TTS) o transcribe (STT). | buffer o string |
ai.classify | Clasifica un texto en categorías predefinidas. | label + score |
Todos los nodos IA referencian un ProviderConfig (proveedor + modelo + credencial + baseUrl).
Nodos de salida
| Nodo | Propósito |
|---|
message.send | Envía un mensaje al canal (texto, multimedia, listas, quick replies). |
message.broadcast | Envía el mismo mensaje a múltiples destinatarios. |
webhook.emit | Dispara un webhook saliente con payload arbitrario. |
Nodos de utilidad
| Nodo | Propósito |
|---|
log | Escribe en el log de ejecución (visible en el inspector). |
error | Corta la ejecución con un error controlado. |
comment | Solo documental; no se ejecuta. |
Configuración común
Todo nodo tiene:
id: identificador único en el grafo.name: nombre legible.sourceHandle y targetHandle: aristas que salen y llegan.outcome: cómo se resolvió la última ejecución (success, failed, waiting, skipped).meta: anotaciones arbitrarias para el simulador e inspector.