Automatizar con un flujo
Crea en el lienzo un flujo que inicia sesión, lista pedidos, decide y te avisa; ejecútalo, prográmalo e inícialo desde un webhook.
Un flujo encadena solicitudes y otros pasos en un lienzo, de modo que un trabajo que haces a mano se ejecuta con un clic, con una programación o cuando otro sistema lo llama. En este tutorial creas Orders to ship: inicia sesión en la tienda de demostración, lista los pedidos de Heidi y envía una notificación cuando alguno está pagado pero todavía no se ha enviado.
- Tiempo: 20 minutos.
- Necesitas: el espacio de trabajo Alpenglow con Sin entorno elegido. Su flujo Morning stock check es un ejemplo terminado con la misma forma.
- Aprendes: bloques y enlaces, los bloques Si y Notificar, el registro de ejecución, las programaciones, los webhooks
y
echolot flow run.
1. Crea un flujo
- Cambia a Flujos (⌘5).
- Abre el menú + de la barra lateral (Nuevo flujo) y elige Flujo vacío. Se abre un flujo Nuevo flujo con un bloque Inicio enlazado a un bloque Salida.
- Haz clic en un punto vacío del lienzo para que no haya ningún bloque seleccionado. En el inspector, pon Nombre en
Orders to shipy Descripción enSays when an order is paid but not shipped.
Mientras hay un flujo abierto, la barra lateral lista las Solicitudes del espacio de trabajo para arrastrarlas al lienzo. La sección Desde una plantilla del menú + parte en cambio de un flujo ya preparado, como Paginate and export; consulta plantillas.
2. Añade las solicitudes
- Deja el puntero sobre el enlace entre Inicio y Salida y elige su botón Romper este enlace.
- Arrastra Auth › Sign in desde la barra lateral al lienzo. Se convierte en un bloque Solicitud titulado
Sign in, con la entrada
sendy las salidassuccessyfail. - Arrastra Orders › List orders al lienzo, a su derecha.
- Enlázalas: arrastra desde el puerto
runde Inicio hasta el puertosendde Sign in, y después desde el puertosuccessde Sign in hasta el puertosendde List orders.
Sign in guarda el token en {{token}} cada vez que se supera, así que List orders envía el nuevo. La salida
success de un bloque Solicitud lleva la respuesta: status, headers, body, time y url. fail se activa
cuando la solicitud no recibe respuesta o falla una comprobación.
3. Decide con un bloque Si
-
Elige Bloque en la barra de herramientas (⇧⌘B), escribe
Sien Buscar bloques o solicitudes y pulsa ↩. -
En el inspector, pon Título en
Waiting to ship?y Condición en:value.body.items.some(o => o.status === 'paid')La condición es JavaScript.
valuees lo que ha llegado: aquí, la respuesta de List orders. -
Enlaza el
successde List orders con elvaluedel bloque Si.
4. Avísate a ti mismo
-
Arrastra desde el puerto
truedel bloque Si y suelta sobre un punto vacío del lienzo. Ahí se abre el selector de bloques. Elige Notificar: llega ya enlazado atrue. -
En los ajustes del bloque, pon Título en
Orders to shipy Mensaje en:{{value.body.total}} orders, at least one paid and waiting.{{value…}}rellena partes de lo que ha llegado; las variables del espacio de trabajo también valen. -
Enlaza también el
successde List orders con elvaluedel bloque Salida. Un webhook responde con lo que llega a Salida (paso 7).
Elige Ordenar para alinear los bloques en el orden en que se ejecutan y Ajustar (⌥⌘0) para verlos todos.

5. Ejecútalo
- Elige Ejecutar (⌘R).
- Cada bloque muestra una insignia mientras se ejecuta y después OK. El registro de ejecución bajo el lienzo lista cada bloque con su tiempo.
- Una notificación dice Orders to ship: 3 orders, at least one paid and waiting. El pedido
ord_8Jm4Qxde la demo está pagado. La primera vez, macOS pregunta si Echolot puede mostrar notificaciones. - Selecciona List orders. En Última ejecución, el inspector muestra lo que entró y lo que salió; cambia Mostrar entre Entrada y Salida.
Cambia la condición a o.status === 'cancelled' y ejecuta otra vez: el bloque Si envía su valor a false, que no está
enlazado con nada, así que no llega ninguna notificación. Vuelve a ponerla como estaba.
Cuando una ejecución falla, el bloque que falla muestra el error. Donde está disponible el modelo del Mac en el dispositivo, Explicar el fallo en el registro de ejecución dice qué salió mal. Las ejecuciones anteriores se quedan en el menú Ejecuciones de la barra de herramientas. Más en ejecución y activadores.
6. Prográmalo
- Selecciona el bloque Inicio. Su inspector tiene una sección Activadores.
- Activa Programación. Pon Cada (minutos) en
60, o escribe una línea cron en O una línea cron (minuto hora día mes día de la semana), como0 7 * * 1-5para las siete de la mañana de lunes a viernes. - Elige Permitir. Echolot te pide que permitas un flujo antes de que nada lo inicie sin ti, y vuelve a pedirlo después de que cambie (Permitir de nuevo). Revocar lo detiene.
El inspector muestra la siguiente ejecución. Las programaciones se ejecutan mientras la ventana del espacio de trabajo
está abierta. Para ejecutarlas sin la app, usa echolot flow serve -w Alpenglow.echolot en un Mac o en un servidor que
siga encendido.
7. Inícialo desde un webhook
-
En los Activadores del bloque Inicio, activa Webhook. Deja el método en POST y pon la ruta en
/orders-to-ship. -
Elige Permitir. El inspector muestra la dirección en
127.0.0.1con Copiar URL y Copiar token. -
En Terminal, llámalo con el token como token Bearer:
curl -X POST 'http://127.0.0.1:PORT/orders-to-ship' -H 'Authorization: Bearer TOKEN'Pega la URL y el token que copiaste. El flujo se ejecuta, y la respuesta es lo que llegó a Salida: los pedidos.
Una cadena de consulta y un cuerpo JSON rellenan las entradas del flujo. El webhook responde solo en este Mac, mientras
la ventana está abierta; echolot flow serve sirve webhooks sin la app, por omisión en el puerto 4100.
Order status on webhook de Alpenglow es otro ejemplo. Un flujo también puede ofrecerse a los agentes de IA como herramienta
(Agentes (una herramienta MCP)); consulta agentes.
8. Ejecútalo desde Terminal
echolot flow list -w Alpenglow.echolot
echolot flow run "Orders to ship" -w Alpenglow.echolotImprime cada bloque al terminar, con su tiempo, y después el texto de la notificación y el resultado:
✓ start Start 0 ms
✓ … Sign in 168 ms
✓ … List orders 116 ms
✓ … Waiting to ship? 4 ms
notification: Orders to ship — 3 orders, at least one paid and waiting.
✓ … Notify 0 ms
Orders to ship: passed in 304 msEn CI, añade --no-input para que un flujo que necesita a una persona falle en vez de esperar. El flujo es un archivo de
la carpeta flows del espacio de trabajo, así que va a Git junto con las solicitudes que usa. Consulta
echolot flow.
Siguientes pasos
- Bloques: Aprobar, Preguntar, Para cada, Sondear, Escribir archivo y los demás.
- Plantillas: inicio de sesión de dispositivo, renovación de token, paginar y exportar, un monitor de humo.
- Deja que un agente use tu espacio de trabajo con seguridad: ofrece un flujo a un agente como una sola herramienta.
Diseñar primero la especificación y simularla
Trae o diseña una especificación OpenAPI, valídala, sirve un mock de ella, envía solicitudes al mock y comprueba las respuestas reales con la especificación.
Inspeccionar un servidor MCP
Añade el servidor MCP de la tienda de demostración, mira lo que ofrece, llama a sus herramientas, lee cómo lo ve un modelo y guarda las llamadas como solicitudes con comprobaciones.
