Empezar
Tu primer flujo
De un workspace vacío a un flujo que recibe un webhook y responde, en unos minutos.
Vamos a construir el flujo más chico que sirve para algo: recibe un pedido por webhook, transforma los datos y los manda a otro sistema.
1. Crear el flujo#
En Workflows → Nuevo flujo, ponele un nombre. Orquesto crea un borrador vacío en la versión 1.
Un flujo recién creado está en estado Draft: existe, pero todavía no puede
ejecutarse.
2. Armar el grafo#
El editor tiene una paleta a la izquierda con los tipos de nodo disponibles. La paleta sale del catálogo de conectores, así que muestra exactamente lo que tu plan habilita — lo que está fuera de plan aparece con candado, no oculto.
Para este ejemplo alcanzan dos nodos:
core.transform— reescribe el payload con una expresión JSONata.sink.webhook— hace un POST a una URL.
Conectalos en ese orden. El nodo de entrada recibe el payload del disparador tal cual llegó.
La expresión de transformación#
core.transform toma una expresión JSONata y produce la salida del nodo:
{
"expression": "{ 'id': body.order_id, 'total': $sum(body.items.price) }"
}
Lo que devuelva esa expresión es lo que recibe el nodo siguiente.
3. Publicar#
Publicar convierte el borrador en una versión inmutable y pone el flujo en
Active.
Antes de publicar, Orquesto valida cada nodo del grafo contra el catálogo. Si un tipo no existe, está deprecado o está fuera de tu plan, la publicación falla con un mensaje que dice cuál y por qué. Es mejor enterarse acá que en runtime.
4. Crear el disparador#
En la pestaña Triggers, agregá uno de tipo Webhook. Vas a recibir una URL:
POST https://tu-api/hooks/{tenantId}/{triggerId}
Probala:
curl -X POST https://tu-api/hooks/TENANT/TRIGGER \
-H 'Content-Type: application/json' \
-d '{"order_id":"A-1","items":[{"price":10},{"price":32}]}'
La respuesta es 202 Accepted con el id del job. El trabajo se hace de forma
asíncrona: la respuesta no espera a que el flujo termine.
5. Ver qué pasó#
En Jobs está la ejecución, con su línea de tiempo nodo por nodo: entrada, salida, duración y error de cada paso.
Si un job falla, ahí mismo podés reintentarlo, editar el payload y reintentar, o descartarlo con un motivo. Todo eso queda en el registro de auditoría.
Qué sigue#
- Nodo delay — para procesos que esperan días.
- Retención de jobs — cuánto tiempo se guarda todo esto.