Valor indefinido em campos do nó de edição

Olá,

Em um workflow, armazeno valores em um nó “Edit fields” no início da execução. O resto do workflow é executado por cerca de dois minutos e, ao final, recupero um dos valores desse nó “Edit fields”. O problema é que recebo uma mensagem “undefined” para o campo — como se o valor armazenado tivesse uma vida útil limitada.

€# Informações sobre sua configuração n8n

  • Versão n8n: 2.29.9
  • Banco de dados (padrão: SQLite):
  • Configuração n8n EXECUTIONS_PROCESS (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, desktop app): Docker
  • Sistema operacional: Linux Fedora

Ei! Valores não expiram no n8n, então não é isso.

O problema real é que você provavelmente está perdendo a referência entre branches ou após um merge. Tente mudar sua expressão para:

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

.first() força o n8n a sempre buscar do output original, não importa onde você está no workflow. Isso resolve na maioria das vezes!

Oi @flipflip
Se um nó Wait está pausando a execução por esses dois minutos, é isso que produz o undefined: o n8n salva a execução quando atinge o wait e a recarrega ao retomar, então uma referência retroativa como $('Edit Fields').item para um nó anterior ao wait não sobrevive de forma confiável ao recarregamento. O nó Wait passa sua entrada direto adiante, então carregue o campo no item em vez de fazer referência retroativa através do wait. Ative Include Other Input Fields no nó Edit Fields para que o valor viaje com os items para dentro do nó Wait e, em seguida, leia-o após o wait com:

{{ $json.yourField }}

Oi, obrigado pela sua resposta.

Aqui está uma versão simplificada do meu fluxo de trabalho. O nó “setVar” é instanciado no início sem erros. O fluxo de trabalho funciona perfeitamente, e é apenas no nó final que preciso do valor “mail” especificado em “setVar”. Os dois nós anteriores a “setVar” estão incluídos apenas para fins ilustrativos.

Erro

Problem in node 'Send an Email'

No recipients defined
{
  "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": "Encadeando múltiplos agentes n8n IA, sem etapas de espera.",
        "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": "Esta parte leva um pouco menos de dois minutos para executar. Os dados são coletados antecipadamente para alimentar o nó \"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"
  }
}

Oi @flipflip
No nó Send an Email você tem {{ $('setVar').first().item.json.mail }}. .first() já retorna o item, então encadear .item nele resulta em undefined, toEmail fica vazio e o nó reporta “No recipients defined”. Remova o .item:

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

Se ainda voltar vazio, o endereço nunca chegou em setVar: sua atribuição de mail{{ $json.mail }} de getMail, então abra a saída de setVar e confirme que o campo realmente contém o endereço lá.

Perfeito, obrigado.