Automatiser avec un flux
Construisez sur le canevas un flux qui se connecte, liste les commandes, décide et vous notifie ; exécutez-le, planifiez-le et démarrez-le depuis un webhook.
Un flux enchaîne des requêtes et d’autres étapes sur un canevas, de sorte qu’une tâche que vous faites à la main s’exécute en un clic, selon une planification, ou quand un autre système l’appelle. Dans ce tutoriel, vous construisez Orders to ship : il se connecte à la boutique de démo, liste les commandes de Heidi et envoie une notification quand l’une est payée mais pas encore expédiée.
- Durée : 20 minutes.
- Il vous faut : l’espace de travail Alpenglow avec Aucun environnement choisi. Son flux Morning stock check est un exemple terminé de la même forme.
- Vous apprenez : les blocs et les liens, les blocs Si et Notifier, le journal d’exécution, les planifications, les
webhooks et
echolot flow run.
1. Créer un flux
- Passez sur Flux (⌘5).
- Ouvrez le menu + de la barre latérale (Nouveau flux) et choisissez Flux vide. Un flux Nouveau flux s’ouvre avec un bloc Démarrer lié à un bloc Sortie.
- Cliquez sur le canevas vide pour qu’aucun bloc ne soit sélectionné. Dans l’inspecteur, définissez Nom sur
Orders to shipet Description surSays when an order is paid but not shipped.
Quand un flux est ouvert, la barre latérale liste les Requêtes de l’espace de travail à faire glisser sur le canevas. La section À partir d’un modèle du menu + part plutôt d’un flux prêt à l’emploi, comme Paginer et exporter ; voir modèles.
2. Ajouter les requêtes
- Laissez le pointeur sur le lien entre Démarrer et Sortie et cliquez sur son bouton Rompre ce lien.
- Faites glisser Auth › Sign in de la barre latérale sur le canevas. Il devient un bloc Requête intitulé
Sign in, avec l’entrée
sendet les sortiessuccessetfail. - Faites glisser Orders › List orders sur le canevas, à droite.
- Reliez-les : faites glisser depuis le port
runde Démarrer vers le portsendde Sign in, puis depuis le portsuccessde Sign in vers le portsendde List orders.
Sign in stocke le jeton dans {{token}} à chaque réussite, donc List orders envoie le nouveau. La sortie
success d’un bloc Requête transporte la réponse : status, headers, body, time et url. fail se déclenche
quand la requête n’obtient aucune réponse ou qu’une vérification échoue.
3. Décider avec un bloc Si
-
Choisissez Bloc dans la barre d’outils (⇧⌘B), saisissez
Ifdans Rechercher des blocs ou des requêtes et appuyez sur ↩. -
Dans l’inspecteur, définissez Titre sur
Waiting to ship?et Condition sur :value.body.items.some(o => o.status === 'paid')La condition est du JavaScript.
valueest ce qui est arrivé : ici, la réponse de List orders. -
Reliez le
successde List orders auvaluedu bloc Si.
4. Vous notifier
-
Faites glisser depuis le port
truedu bloc Si et relâchez sur le canevas vide. Le sélecteur de blocs s’ouvre à cet endroit. Choisissez Notifier : il arrive lié àtrue. -
Dans les réglages du bloc, définissez Titre sur
Orders to shipet Message sur :{{value.body.total}} orders, at least one paid and waiting.{{value…}}renseigne des parties de ce qui est arrivé ; les variables de l’espace de travail fonctionnent aussi. -
Reliez aussi le
successde List orders auvaluedu bloc Sortie. Un webhook répond avec ce qui arrive dans Sortie (étape 7).
Cliquez sur Ranger pour aligner les blocs dans l’ordre où ils s’exécutent, et sur Ajuster (⌥⌘0) pour les voir tous.

5. L’exécuter
- Cliquez sur Exécuter (⌘R).
- Chaque bloc affiche un badge pendant son exécution, puis Terminé. Le journal d’exécution sous le canevas liste chaque bloc avec sa durée.
- Une notification indique Orders to ship : 3 orders, at least one paid and waiting. La commande
ord_8Jm4Qxde la démo est payée. La première fois, macOS demande si Echolot peut afficher des notifications. - Sélectionnez List orders. La Dernière exécution de l’inspecteur montre ce qui est entré et sorti ; passez Afficher entre Entrée et Sortie.
Changez la condition en o.status === 'cancelled' et exécutez de nouveau : le bloc Si envoie sa valeur vers false,
qui n’est relié à rien, donc aucune notification n’arrive. Remettez-la.
Quand une exécution échoue, le bloc en cause affiche l’erreur. Là où le modèle du Mac sur l’appareil est disponible, Expliquer l’échec dans le journal d’exécution dit ce qui s’est mal passé. Les exécutions précédentes restent dans le menu Exécutions de la barre d’outils. Plus de détails dans exécution et déclencheurs.
6. L’exécuter selon une planification
- Sélectionnez le bloc Démarrer. Son inspecteur a une section Déclencheurs.
- Activez Planification. Avec Intervalle choisi, définissez Toutes les sur
60minutes ; ou choisissez Heures fixes (cron) et saisissez une ligne cron (minute, heure, jour, mois, jour de la semaine), comme0 7 * * 1-5pour sept heures les jours de semaine. - Cliquez sur Autoriser. Echolot vous demande d’autoriser un flux avant que quoi que ce soit le démarre sans vous, et le redemande après une modification (Autoriser à nouveau). Révoquer l’arrête.
L’inspecteur montre la prochaine exécution. Les planifications s’exécutent tant que la fenêtre de l’espace de travail
est ouverte. Pour les exécuter sans l’app, utilisez echolot flow serve -w Alpenglow.echolot sur un Mac ou un serveur
qui reste allumé.
7. Le démarrer depuis un webhook
-
Dans les Déclencheurs du bloc Démarrer, activez Webhook. Laissez la méthode sur POST et définissez le chemin sur
/orders-to-ship. -
Cliquez sur Autoriser. L’inspecteur montre l’adresse sur
127.0.0.1avec Copier l’URL et Copier le jeton. -
Dans Terminal, appelez-le avec le jeton comme jeton Bearer :
curl -X POST 'http://127.0.0.1:PORT/orders-to-ship' -H 'Authorization: Bearer TOKEN'Collez l’URL et le jeton que vous avez copiés. Le flux s’exécute, et la réponse est ce qui est arrivé dans Sortie : les commandes.
Une chaîne de requête et un corps JSON renseignent les entrées du flux. Le webhook répond sur ce Mac uniquement, tant
que la fenêtre est ouverte ; echolot flow serve sert les webhooks sans l’app, sur le port 4100 par défaut.
Order status on webhook d’Alpenglow en est un autre exemple. Un flux peut aussi être proposé aux agents IA comme un outil
(Agents (un outil MCP)) ; voir agents.
8. L’exécuter depuis Terminal
echolot flow list -w Alpenglow.echolot
echolot flow run "Orders to ship" -w Alpenglow.echolotIl affiche chaque bloc à mesure qu’il se termine, avec sa durée, puis le texte de la notification et le résultat :
✓ 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, ajoutez --no-input pour qu’un flux qui a besoin d’une personne échoue au lieu d’attendre. Le flux est un fichier
du dossier flows de l’espace de travail, il va donc dans Git avec les requêtes qu’il utilise. Voir
echolot flow.
Étapes suivantes
- Blocs : Approuver, Demander, Pour chaque, Interroger, Écrire un fichier et les autres.
- Modèles : connexion par appareil, renouvellement de jeton, paginer et exporter, un moniteur de smoke test.
- Laisser un agent utiliser votre espace de travail en toute sécurité : proposez un flux à un agent comme un seul outil.
Concevoir d’abord la spec et la simuler
Importez ou concevez une spec OpenAPI, lintez-la, servez-en un mock, envoyez des requêtes au mock et vérifiez les vraies réponses par rapport à la spec.
Inspecter un serveur MCP
Ajoutez le serveur MCP de la boutique de démo, regardez ce qu’il propose, appelez ses outils, lisez comment un modèle le voit et enregistrez des appels comme requêtes avec des vérifications.
