Orquesto

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#