Valeur indéfinie dans le nœud des champs d'édition

Bonjour,

Dans un workflow, je stocke des valeurs dans un nœud « Edit fields » au début de l’exécution. Le reste du workflow s’exécute pendant environ deux minutes, et à la fin, je récupère l’une des valeurs de ce nœud « Edit fields ». Le problème est que j’obtiens un message « undefined » pour le champ — comme si la valeur stockée avait une durée de vie limitée.

Informations sur votre configuration n8n

  • Version n8n : 2.29.9
  • Base de données (par défaut : SQLite) :
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : Docker
  • Système d’exploitation : Linux Fedora

Salut ! Les valeurs n’expirent pas dans n8n, ce n’est donc pas ça.

Le vrai problème, c’est que tu perds probablement la référence entre les branches ou après une fusion. Essaie de changer ton expression en :

{{ $('Edit Fields').first().json.yourField }}

.first() force n8n à toujours récupérer la sortie d’origine, peu importe où tu es dans le flux de travail. Ça règle le problème la plupart du temps !

Bonjour @flipflip
Si un nœud Wait met en pause l’exécution pendant ces deux minutes, c’est ce qui produit l’undefined : n8n enregistre l’exécution quand il atteint le wait et la recharge à la reprise, donc une référence arrière comme $('Edit Fields').item à un nœud antérieur au wait ne survit pas de manière fiable au rechargement. Le nœud Wait transmet son entrée directement, donc portez le champ sur l’élément au lieu de faire une référence arrière à travers le wait. Activez Include Other Input Fields dans le nœud Edit Fields pour que la valeur voyage avec les éléments dans le nœud Wait, puis lisez-la après le wait avec :

{{ $json.yourField }}

Bonjour, merci pour votre réponse.

Voici une version simplifiée de mon flux de travail. Le nœud « setVar » est instancié au début sans erreurs. Le flux s’exécute correctement, et ce n’est qu’au nœud final que j’ai besoin de la valeur « mail » spécifiée dans « setVar ». Les deux nœuds précédant « setVar » sont inclus uniquement à titre illustratif.

Erreur

Problème dans le nœud « Send an Email »

Aucun destinataire défini
{
  "nodes": [
    {
      "parameters": {
        "fromEmail": "sender@mydomain",
        "toEmail": "={{ $('setVar').first().item.json.mail }}",
        "subject": "Subject",
        "html": "={{ $json.html }}",
        "options": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2.1,
      "position": [
        -656,
        16
      ],
      "id": "f053b99c-d232-407b-91fc-2b1749ef66bf",
      "name": "Send an Email",
      "webhookId": "92fbf1a7-3faf-414e-8204-1043de1496e7",
      "credentials": {
        "smtp": {
          "id": "SoaEmU7pgWAipLFL",
          "name": "smtp"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "2b7df394-0865-4dea-b1cd-c8f2d569c363",
              "name": "data",
              "value": "={{ $('Get chat message').item.json.body.content.replace(/(\
<([^\
>]+)\
>)/ig, \"\") }}",
              "type": "string"
            },
            {
              "id": "78fc7e77-81bb-41ca-8ad4-2628742d0798",
              "name": "mail",
              "value": "={{ $json.mail }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -2016,
        16
      ],
      "id": "c3b0fd23-7645-4784-83aa-47515995e241",
      "name": "setVar"
    },
    {
      "parameters": {
        "content": "Chaîner plusieurs agents n8n AI, sans étapes d'attente.",
        "height": 256,
        "width": 1024
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1776,
        -64
      ],
      "typeVersion": 1,
      "id": "f26fcd45-7595-4258-853b-8aac622430e3",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.4,
      "position": [
        -2464,
        16
      ],
      "id": "06ac703e-eb18-4818-a714-d381b00916b4",
      "name": "When chat message received",
      "webhookId": "1b1b9d28-77b3-4190-8ae1-faa56960f1ed"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        -2240,
        16
      ],
      "id": "cf6462ed-1f60-4717-b516-07842e6dfb2a",
      "name": "getMail"
    },
    {
      "parameters": {
        "content": "Cette partie prend un peu moins de deux minutes à exécuter. Les données sont collectées au préalable pour alimenter le nœud « setVar ».",
        "height": 384,
        "width": 1600,
        "color": 5
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2048,
        -128
      ],
      "typeVersion": 1,
      "id": "423819c8-db3e-4d73-bca5-2c48e1300d12",
      "name": "Sticky Note1"
    }
  ],
  "connections": {
    "setVar": {
      "main": [
        [
          {
            "node": "Send an Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "getMail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "getMail": {
      "main": [
        [
          {
            "node": "setVar",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "instanceId": "3692996d2c89e949777729662d6d3beae0269613695efc42c83cca2a1b55c270"
  }
}

Bonjour @flipflip
Dans le nœud Send an Email, vous avez {{ $('setVar').first().item.json.mail }}. .first() retourne déjà l’item, donc chaîner .item dessus se résout en undefined, toEmail reste vide et le nœud rapporte « No recipients defined ». Supprimez le .item :

{{ $('setVar').first().json.mail }}

Si cela reste vide, l’adresse n’a jamais atterri dans setVar : son assignation mail lit {{ $json.mail }} depuis getMail, donc ouvrez la sortie de setVar et confirmez que le champ contient réellement l’adresse là-bas.

Parfait, merci.