Les workflows client sont de la logique visuelle qui s’exécute dans le navigateur du visiteur : quand quelqu’un clique, tape, envoie un formulaire, ou quand la page se charge, une liste d’étapes s’exécute. Le résultat de chaque étape est disponible pour la suivante sous la forme steps.<id>.
Déclencheurs
| Déclencheur | S’exécute quand |
|---|---|
| Page load | la page est chargée |
| Element event | un élément émet click, submit, change, input, mouseenter, mouseleave, focus ou blur |
| Variable changes | une variable reçoit une nouvelle valeur |
| Query succeeds / Query fails | une requête se termine ou échoue |
| Interval | toutes les N millisecondes |
| Called by another workflow | uniquement quand un autre workflow le lance |
Le moyen le plus rapide de commencer : sélectionnez un élément, ouvrez Events dans l’inspecteur et cliquez sur Add workflow.
Créer un workflow
Ouvrez l’espace de travail Logic
Les workflows de la page en cours sont listés à gauche. Créez-en un et choisissez son déclencheur.
Ajoutez des étapes
Choisissez des actions dans la bibliothèque d’étapes : définir des variables, recharger des données, naviguer, afficher un toast, jouer une interaction, connecter un visiteur… Chaque paramètre peut être une expression.
Ajoutez du contrôle de flux
Créez une branche selon une condition, un aiguillage selon une valeur, une boucle sur un tableau, des voies en parallèle, ou enveloppez des étapes dans un try/catch.
Testez-le
Cliquez sur Run in preview. Le journal d’exécution affiche chaque étape, son résultat et sa durée, en utilisant les valeurs d’aperçu de vos variables. Le mode aperçu exécute aussi les workflows sur le canevas.
{
"name": "Add to cart",
"runtime": "client",
"trigger": { "type": "event", "node": "n_btn_add", "event": "click" },
"steps": [
{ "id": "guard", "action": "core.branch",
"params": { "if": { "$expr": "!user.isLoggedIn" } },
"branches": { "then": [
{ "id": "toLogin", "action": "core.navigate", "params": { "to": "/login" } },
{ "id": "end", "action": "core.stop" }
] } },
{ "id": "add", "action": "core.setVar",
"params": { "var": "cart", "value": { "$expr": "[...vars.cart, item]" } } },
{ "id": "done", "action": "core.toast", "params": { "message": "Added to cart" } }
],
"onError": [
{ "id": "oops", "action": "core.toast", "params": { "message": { "$expr": "error.message" }, "variant": "error" } }
]
}
Erreurs
Quand une étape échoue, les étapes on error s’exécutent avec error disponible. Sans elles, l’erreur est journalisée et, en aperçu, affichée dans un toast.
Limites
Une exécution client est plafonnée à 200 étapes, 8 niveaux d’imbrication, 1 000 itérations de boucle et des délais de 60 secondes : une erreur ne peut jamais figer l’onglet d’un visiteur.
Chaque action et ses paramètres sont listés dans la référence des actions de workflow.