Skip to content

Table — ajouter ou mettre à jour ​

Écrit la ligne : elle est créée si sa clé est libre, modifiée sinon. C’est le nœud de la mémoire entre exécutions.

Écrit une ligne dans une Table : elle est créée si sa clé est libre, modifiée sinon. C’est le nœud de la mémoire entre exécutions — « dernière relance envoyée le », « statut du dossier » — parce qu’il fonctionne de la même façon à la première exécution et à toutes les suivantes. Utilisez Table — ajouter une ligne quand un doublon doit échouer, et Table — mettre à jour une ligne quand une ligne absente doit échouer.

En bref ​

  • Type : table.upsert · version 1
  • Catégorie : Actions
  • Nature : Étape — s’exécute pendant une exécution
  • Effet : Écrit à l’extérieur (external_write) — écrit hors de Mankomail ; décrit au lieu d’être fait pendant un essai
  • Exige un mail porteur : Non
  • Connexion : Aucune
  • Entrées : main
  • Sorties : main

Paramètres ​

table ​

Table — Choisie dans la liste, ou par son identifiant court (son « slug »), qui peut venir d’un template.

  • Type : Ressource distante (resourceLocator)
  • Requis : Oui
  • Façons de choisir : dans une liste, saisir un identifiant (table)

values ​

Valeurs de la ligne, clé comprise — Une seule liste, clé comprise : la clé est faite de colonnes comme les autres, et deux listes à tenir d’accord est une liste de trop.

  • Type : Liste d’éléments (collection)
  • Requis : Non
  • Défaut : []
  • Au plus 60 éléments
  • Chaque élément a :
    • column — Colonne
      • Type : Texte (string)
      • Requis : Oui
      • Défaut : "" (vide)
      • 60 caractères au plus
      • Expressions : {{ }} refusé
    • value — Valeur. Convertie dans le type de la colonne : « 1 234,50 » devient un nombre, « oui » un booléen, « 03/04/2026 » une date. Ce qu’il ne sait pas lire est refusé, jamais vidé.
      • Type : Texte (string)
      • Requis : Non
      • Défaut : "" (vide)
      • 10000 caractères au plus

Sorties ​

  • main

Données produites ​

Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).

  • {{ data.<step>.rowId }} — string. L’identifiant de la ligne écrite. En essai, quand la ligne serait créée : simulated:<identifiant de la table>.
  • {{ data.<step>.row.<column> }} — object. La ligne entière après écriture, par clé machine de colonne. Les cellules vides sont absentes.
  • {{ data.<step>.created }} — boolean. true quand la ligne a été créée, false quand une ligne existante a été mise à jour.
  • {{ data.<step>.reused }} — boolean. true quand l’étape a été retentée après un incident et que la ligne écrite par la première tentative a été rendue, sans réécriture.
  • {{ data.<step>.simulated }} — boolean. true en essai : rien n’a été écrit.
  • {{ data.<step>.summary }} — string. Le résumé d’une ligne : Ligne ajoutée., Ligne mise à jour., Aurait ajouté une ligne., Aurait mis à jour la ligne. ou Déjà écrit lors d’une tentative précédente : rien n’a été réécrit.

Exemple ​

Un workflow retient, pour chaque client, la date de son dernier mail. La table clients a la colonne clé email_client. Une étape Calculer une date nommée « Aujourd’hui » fournit la date. Le nœud s’appelle « Retenir le client ».

text
table   clients
values  email_client       = {{ email.from.email }}
        dernier_mail_le    = {{ data.aujourd_hui.date }}

Au premier mail du client, la ligne est créée (created: true) ; aux suivants, elle est mise à jour (created: false), et {{ data.retenir_le_client.row.dernier_mail_le }} porte la date la plus récente.

Conseils ​

  • Une seule liste, clé comprise. Valeurs de la ligne, clé comprise doit contenir une valeur pour chaque colonne cochée Entre dans la clé de rapprochement : c’est à partir de ces valeurs que le nœud retrouve la ligne. Une partie de clé manquante fait échouer l’étape avec table.invalid_value ; une table sans colonne clé échoue avec table.no_key.
  • La mise à jour garde les autres colonnes. Quand la ligne existe, seules les colonnes listées changent ; les autres gardent leur valeur.
  • Le rapprochement ignore la casse, les accents et la ponctuation, et s’appuie sur l’option de table Refuser deux lignes de même clé. Laissez-la cochée sur une table que vous écrivez par clé.
  • Les valeurs sont converties dans le type de la colonne ; une valeur inconvertible, ou une colonne absente de la table, fait échouer l’étape avec table.invalid_value. Les colonnes se désignent par leur clé machine, pas par leur en-tête.
  • Les nouvelles tentatives sont sûres. L’écriture est enregistrée avec la clé d’idempotence de l’étape : une nouvelle tentative après incident rend la ligne déjà écrite (reused: true) sans réécrire.
  • Essais. Rien n’est écrit, mais la ligne est réellement cherchée : le résultat dit donc si l’exécution la créerait ou la modifierait. L’étape rend la ligne telle qu’elle serait, avec simulated: true. Voir Essais.