Aller au contenu

Expressions

Une expression calcule la valeur d'un paramètre à partir des données reçues : l'adresse d'un destinataire, l'URL d'une API, un montant arrondi.

Principe

Dans un champ, passez de Fixe à Expression, puis écrivez entre doubles accolades. Le texte autour reste tel quel : Commande {{ $json.id }} reçue. L'aperçu sous le champ montre le résultat avec les données de la dernière exécution, ou des données d'exemple.

Une expression seule garde le type de la valeur : {{ $json.total }} donne un nombre, {{ $json.lignes }} une liste.

Références

ExpressionValeur
{{ $json.champ }}Champ de l'élément courant
{{ $items }}Tous les éléments reçus par le bloc
{{ $itemIndex }}Position de l'élément courant
{{ $node["Nom"].json.champ }}Premier élément de la dernière sortie d'un bloc nommé
{{ $node["Nom"].items }}Tous les éléments de ce bloc
{{ $loop.iteration }}Tour en cours dans une Boucle sur les éléments (aussi $loop.total, $loop.batchSize)
{{ $workflow.id }}Identifiant du workflow (aussi $workflow.name)

Les variables de l'environnement sont aussi proposées à la saisie : voir Environnements et publication.

JavaScript sûr

Au-delà d'une référence, une expression est du JavaScript interprété sans eval, sans accès au réseau ni au serveur. Exemples :

BesoinExpression
Texte en majuscules{{ $json.nom.toUpperCase() }}
Condition{{ $json.total > 100 ? "gros" : "petit" }}
Valeur par défaut{{ $json.ville ?? "inconnue" }}
Calcul arrondi{{ Math.round($json.prix * 1.2 * 100) / 100 }}
Liste transformée{{ $items.map(i => i.id) }}
Liste filtrée{{ $json.lignes.filter(l => l.qte > 0) }}
Total{{ $json.lignes.reduce((s, l) => s + l.prix, 0) }}
Gabarit{{ `Bonjour ${$json.prenom}` }}
Objet{{ { id: $json.id, total: $json.prix * $json.qte } }}
Date en français{{ new Date($json.date).toLocaleDateString("fr-FR") }}
Clé avec tiret{{ $json["content-type"] }}
Valeur peut-être absente{{ $json.nom?.trim() }}

À savoir. Lire un champ d'une valeur absente donne « non défini », sans erreur. Appeler une méthode sur une valeur absente est une erreur explicite : utilisez ?. pour l'éviter.

Exemple : corps JSON d'une requête HTTP
{
  "client": "{{ $json.email }}",
  "montant": {{ Math.round($json.prix * $json.qte * 100) / 100 }},
  "reference": "{{ $node[\"Commande\"].json.id }}"
}

Saisie dans l'éditeur

Tapez {{ : l'accolade fermante est ajoutée et des suggestions s'affichent : champs des données reçues avec leur type et un exemple, blocs en amont, variables de l'environnement choisi, méthodes selon le type de la valeur (texte, liste, nombre, date) et objets globaux comme Math ou JSON. Flèches haut et bas pour choisir, Tab ou Entrée pour insérer.

L'onglet Entrée du panneau de configuration liste les données des étapes précédentes : un clic sur un champ insère l'expression correspondante.