Aller au contenu principal

Gestion des variables

Pendant l'exécution du flux, les données d'entrée et les données intermédiaires sont situées dans des variables.

Copier le chemin d'une valeur

Depuis le panneau de test ou la consultation du contexte (dans l'éditeur), cliquez sur une valeur pour copier son chemin (ex. data.orderId) et le réutiliser dans une variable via {{data.orderId}} — voir Utiliser l'éditeur.

Types de variables​

Ecosystem propose différents types de variables :

  • Variables d'entrée : Pour accéder aux données envoyées par le déclencheur
  • Variables de contexte : Pour accéder aux données entre les nœuds d'un flux
  • Variables de dictionnaire : Pour accéder aux données différentes en fonction de l'environnement

Variables d'entrée​

Certains déclencheurs permettent de transmettre des données en entrée, et d'y accéder pendant l'exécution du flux :

  • Déclencheur par fichier : Accéder aux données du fichier qui a déclenché l'exécution
  • Déclencheur par requête HTTP : En envoyant la requête, passez des informations en les écrivant dans le body

Accéder à une variable d'entrée​

Il est possible d'accéder aux données transmises par le déclencheur depuis n'importe quel nœud d'un flux. Les valeurs sont contenues dans l'objet data.

Exemple :

Un flux est déclenché par appel API, avec dans le body les informations suivantes :

curl --location --request POST 'https://api.example.com/flux-test' \
--header 'Content-Type: application/json' \
--data '{
"start_date":"2025-09-01",
"end_date":"2025-09-30"
}'

Pour récupérer la valeur de start_date dans un nœud code de votre flux, utilisez la syntaxe suivante :

data.start_date

En dehors des nœuds acceptant du code, l'utilisation des doubles accolades {{ }} est nécessaire :

{{data.start_date}}
💡 Parsing automatique

Si votre donnée d'entrée n'est pas en JSON, elle sera automatiquement parsée ! Vous pouvez donc traiter directement vos données en JSON dans vos nœuds sans avoir à faire de conversion manuelle.

Variables de contexte​

Enregistrer les variables dans le contexte permet d'accéder à leur valeur dans d'autres nœuds.

Les variables de contexte sont similaires à la déclaration de variables dans du code traditionnel :

  • Code classique : const myVar = 'toto'
  • Dans Ecosystem : context.myVar = 'toto'

Déclarer une variable​

Pour déclarer une variable de contexte, dans un nœud code, utiliser la syntaxe context.myVar = 'toto' pour déclarer une variable.

// exemple de déclaration de variable
context.myVar = 'toto'
⚡ Performance

Utilisez la syntaxe classique const myVar = 'toto' si vous n'avez pas besoin d'accéder à la variable dans d'autres nœuds. Cela améliore les performances en évitant de stocker des variables inutiles dans le contexte global.

Accéder à une variable de contexte​

Dans un nœud acceptant du code​

Il est possible de lire une variable de contexte dans le nœud code où elle a été déclarée, et dans tous les nœuds suivants.

// exemple dans un nœud de condition
return context.myVar === 'titi'

En dehors des nœuds acceptant du code​

En dehors des nœuds acceptant du code, l'utilisation des doubles accolades {{ }} est nécessaire.

Exemple d'utilisation dans un nœud d'appel HTTP :

https://api.example.com/users/{{context.userId}}

Modifier la valeur d'une variable​

La modification de valeur d'une variable est identique à la déclaration.

// déclaration de la variable
context.myVar = 'toto'

// modification de la variable, plus loin dans le code ou dans un autre nœud
context.myVar = 'titi'

// myVar vaudra alors 'titi'

Syntaxe Handlebars avancée​

Sortir du JSON avec les triples accolades {{{ }}}​

Les doubles accolades {{ }} échappent le résultat (HTML, JSON). Pour insérer une valeur brute, non échappée, utilisez les triples accolades :

{{{ context.customer }}}

Exemple : envoyer un objet JSON complet dans le body d'un nœud Réponse HTTP ou d'un appel, sans qu'il soit encodé comme une chaîne.

Exécuter une expression avec {$ … $}​

La syntaxe {$ … $} exécute une expression JavaScript et insère son résultat :

{$ libs.uuid() $}

Exemple : générer un identifiant unique dans un nœud qui n'accepte pas de code :

https://api.example.com/users/{$ libs.uuid() $}

Accéder à une clé contenant des caractères spéciaux avec les crochets [ ]​

Si une clé contient des espaces, un @, un tiret ou tout autre caractère non standard, entourez-la de crochets :

  • Clé avec espace : {{ context.[last name] }}
  • Clé commençant par @ : {{ context.[@id] }}
  • Index d'un tableau : {{ context.items.[0] }}

Sans les crochets, la clé serait interprétée comme une succession de propriétés inexistantes et la valeur serait vide.

Variables de dictionnaire​

Les variables de dictionnaire permettent d'accéder à des valeurs dynamisées selon l'environnement d'exécution (dev, staging, production). Elles sont particulièrement utiles pour les appels vers des API externes ou l'utilisation de serveurs (SFTP, etc.).

Format : une valeur de dictionnaire s'exprime au format {{dictionaries.nomDuDico.cleDuDico}}, ce qui permet d'adapter la valeur à l'environnement sans modifier le flux.

Déclarer une variable​

Pour créer et renseigner des variables de dictionnaire, consultez le module Dictionnaires.

Accéder à une variable​

Vous pouvez accéder à la valeur d'une variable de dictionnaire depuis n'importe quel nœud d'un flux.

Dans un nœud acceptant du code​

// exemple dans un nœud de condition
return dictionaries.my_service.my_variable === 'titi'

En dehors des nœuds acceptant du code​

En dehors des nœuds acceptant du code, l'utilisation des doubles accolades est nécessaire :

{{dictionaries.my_service.my_variable}}

Exemples d'utilisation​

URL d'API :

{
"url": "{{dictionaries.api.baseUrl}}/orders"
}

En-tête d'authentification :

{
"headers": {
"Authorization": "Bearer {{dictionaries.auth.apiToken}}"
}
}

Variables système (metadata)​

Un objet système metadata est disponible en lecture seule dans tous les flux. Il contient des informations sur l'exécution en cours :

{
"metadata": {
"traceId": "b2d9a31b-bd76-4e1f-a2eb-062bf8eb56b4",
"triggerExecutionId": "b2d9a31b-bd76-4e1f-a2eb-062bf8eb56b4",
"environment": {
"id": "1ddf05dc-30a2-495d-b7a1-c9b8b9f78532",
"slug": "studio",
"name": "Studio",
"isBuild": false,
"isProd": false
}
}
}
ChampDescription
traceIdIdentifiant unique de l'exécution — utile dans les alertes d'erreur
triggerExecutionIdIdentifiant de l'exécution du déclencheur
environmentEnvironnement d'exécution : id, slug, name, isBuild (exécution liée à un build) et isProd (environnement de production)

Accès : {{metadata.traceId}} en dehors des nœuds acceptant du code, ou metadata.traceId dans un nœud Code.

Bonnes pratiques de mapping de données​

La transformation des données entre systèmes (mapping), la nomenclature des variables et le choix extracteur vs nœud Code sont traités dans Bonnes pratiques — Mapping de données.

Assistant de code sur Chat Ecosystem

L'assistant Assistant de code sur Chat Ecosystem aide à générer le code de vos flux avec le contexte complet de votre organisation — voir Assistant Chat Ecosystem.

Étapes suivantes​