Start
Declara variables iniciales del flujo.
variables: [
{ "name": "items", "isList": true, "defaultValue": "[]" },
{ "name": "user_name", "defaultValue": "" }
]
Response
Muestra texto (array de strings). Soporta Markdown y {{ vars }}.
i18n: { es: { text: [
"Hola {{ user_name }}", "Tienes {{ len(items) }} elementos"
]}}
Input
Pide un valor y lo guarda en una variable.
i18n: { es: { prompt: "Tu nombre" } },
save_as: "user_name"
Assign Variable
Asigna valores (expresiones soportadas: len, split, join, toNumber, bool...).
assignments: [
{ "target": "items", "value": "split('a,b,c', ',')" },
{ "target": "items_count", "value": "len(items)" },
{ "target": "csv", "value": "join(items, ';')" },
{ "target": "n", "value": "toNumber('42')" },
{ "target": "user.name", "value": "'Ana'" }
]
Condition
Evalúa una expresión booleana y redirige por true/false.
expr: "len(items) > 0",
true_target: { node_id: "res_ok" },
false_target: { node_id: "res_vacio" }
ForEach
Itera una lista y expone item y index.
type: "foreach",
source_list: "items",
item_var: "item",
index_var: "index",
loop_body: { node_id: "resp_item" }
Button/Choice
Ofrece opciones; cada opción apunta a un siguiente nodo.
options: [
{ "label": "Sí", "target": { "node_id": "n_ok" } },
{ "label": "No", "target": { "node_id": "n_ko" } }
]
REST Call
Realiza llamadas HTTP. Soporta {{variables}} en la URL.
method: "GET",
url: "https://api.example.com/user/{{ user_id }}",
save_as: "resp"
Set Goto
Fija la variable de salto (goto) para redirigir el flujo.
target: "nodo_destino"
Form
Recolecta varios campos en una sola interacción.
fields: [
{ "name": "email", "label": "Email", "type": "text" },
{ "name": "age", "label": "Edad", "type": "number" }
]