Newsletter

Node Set ou node Code: quando usar cada um no n8n

A fronteira exata entre configuração e código no n8n, por que o Set preserva a ligação entre itens e o padrão que mantém fluxos legíveis.

Node Set ou node Code: quando usar cada um no n8n

A regra é curta: se dá para resolver com o node Edit Fields (Set), resolva com ele. Use o node Code só quando a transformação não couber em configuração — lógica condicional elaborada, manipulação de listas, combinação de várias fontes. O Set mantém o fluxo legível e preserva sozinho a ligação entre itens; o Code dá poder total e cobra em manutenção. Este texto mostra onde exatamente fica a fronteira.

Adicione ao Google Notícias

O que cada um faz

Edit Fields (Set) é o node desenhado especificamente para transformar dados. Ele oferece uma interface limpa para três coisas: adicionar campos novos com valores vindos de expressão, alterar valores de campos existentes e remover ou renomear campos.

Code executa JavaScript — e, nas versões recentes, também Python. Ele recebe os itens, você escreve o que fazer e devolve o resultado. Sem limite de complexidade e sem rede de proteção.

A fronteira, na prática

SituaçãoNode
Criar campo juntando dois valoresSet
Renomear ou remover camposSet
Converter formato com função de expressãoSet
Definir valor fixoSet
Filtrar itens por condição simplesFilter
Percorrer uma lista dentro do itemCode
Agrupar ou somar vários itens em umCode
Lógica com muitos casos encadeadosCode
Reformatar estrutura profundamente aninhadaCode

Repare que existe um terceiro node na tabela. Filtrar por condição simples não é trabalho nem do Set nem do Code — o Filter existe para isso e deixa a intenção explícita no desenho do fluxo.

Por que preferir o Set

1. O fluxo continua legível

Um Set mostra na tela quais campos entram e saem. Um Code é uma caixa que só se entende abrindo. Em fluxo que outra pessoa vai manter — ou você daqui a seis meses —, a diferença é enorme.

2. A ligação entre itens se mantém sozinha

Esta é a razão técnica mais importante. O Set preserva automaticamente o rastro de qual item originou qual. No Code, ao criar itens novos, essa cadeia pode se romper, e o sintoma é traiçoeiro: dado certo no registro errado, sem nenhuma mensagem de erro.

3. A documentação recomenda

A orientação oficial é usar o Edit Fields para preparar os dados primeiro e só então passá-los aos nodes seguintes, em vez de espalhar expressões complexas por vários parâmetros. Separar transformação de lógica de negócio deixa o fluxo mais fácil de entender e manter.

Ilustração de uma fronteira entre dois territórios

Quando o Code é a escolha certa

Não é sobre evitar código por princípio. Há casos em que o Code resolve num node o que exigiria seis:

Percorrer uma lista dentro do item. Quando o registro traz uma lista de produtos e você precisa calcular algo sobre ela, o Code é direto.

Consolidar itens. Vinte itens virando um resumo. É agregação, e configuração não expressa isso bem.

Lógica com muitos ramos. Quando a regra tem sete casos, montar sete condições encadeadas na tela vira um emaranhado. Sete linhas de código são mais legíveis.

Estrutura profundamente aninhada. Reorganizar dados com muitos níveis é penoso em configuração e trivial em código.

Duas coisas que facilitam o Code

A chave json é opcional ali dentro. Desde a versão 0.166.0, o Code adiciona a chave automaticamente quando ela falta e embrulha o retorno em array se necessário. Você pode devolver o objeto direto. Essa tolerância vale só nos nodes Code e Function.

Python também roda. Nas versões recentes, o Code executa JavaScript e Python. Se a lógica que você precisa é mais natural em Python, ela está disponível — o executor precisa estar habilitado na instância.

Um cuidado que vale para os dois nodes: teste sempre com mais de um item. Transformações que parecem certas com um registro só revelam problema de ligação e de iteração apenas quando há três ou mais. É o teste mais barato que existe e o mais ignorado.

O padrão que funciona bem

Em fluxos que se mantêm legíveis com o tempo, a divisão costuma ser esta:

  1. Um Set logo depois da entrada, normalizando os campos que vieram do serviço externo para os nomes que o resto do fluxo usa.

  2. Os nodes de lógica trabalhando com esses nomes limpos.

  3. Um Code pontual, só onde a transformação realmente exigir.

  4. Um Set final, montando o formato que o destino espera.

O ganho aparece na manutenção: quando o serviço externo mudar o nome de um campo, você corrige em um lugar só.

Regra de bolso: Set por padrão, Filter para filtrar, Code quando a transformação não couber em configuração. E teste sempre com vários itens.

Esta aula faz parte do Curso de n8n do zero ao avançado, com todas as aulas em portugues.

Perguntas frequentes

Qual a diferença entre Set e Code no n8n?

O Edit Fields (Set) transforma dados por configuração: adiciona, altera, remove e renomeia campos através da interface. O Code executa JavaScript ou Python sobre os itens, sem limite de complexidade. O Set é mais legível e preserva a ligação entre itens automaticamente; o Code é mais poderoso e exige mais cuidado.

Quando devo usar o node Code?

Quando a transformação não couber em configuração: percorrer listas dentro do item, consolidar vários itens em um, lógica com muitos casos encadeados ou reorganização de estruturas profundamente aninhadas. Fora desses casos, o Set costuma ser a escolha melhor.

O node Code aceita Python?

Aceita nas versões recentes, além de JavaScript. O executor de Python precisa estar habilitado na configuração da instância. Em instalação própria isso é uma variável de ambiente; na nuvem oficial depende do que estiver disponível no plano.

Preciso escrever a chave json no retorno do Code?

Não. Desde a versão 0.166.0, o Code adiciona a chave automaticamente quando ela falta e embrulha o retorno em array se necessário. Essa tolerância existe apenas nos nodes Code e Function — ao construir um node próprio, o formato completo continua obrigatório.

Por que o Set é mais seguro que o Code?

Porque preserva sozinho o rastro de qual item de entrada originou cada item de saída. No Code, ao criar itens novos, essa cadeia pode se romper — e o sintoma é dado correto associado ao registro errado, sem nenhuma mensagem de erro que denuncie o problema.