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.
Resumo por IA
Resumo gerado por IA, revisado pela redação.

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íciasO 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ção | Node |
|---|---|
| Criar campo juntando dois valores | Set |
| Renomear ou remover campos | Set |
| Converter formato com função de expressão | Set |
| Definir valor fixo | Set |
| Filtrar itens por condição simples | Filter |
| Percorrer uma lista dentro do item | Code |
| Agrupar ou somar vários itens em um | Code |
| Lógica com muitos casos encadeados | Code |
| Reformatar estrutura profundamente aninhada | Code |
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.

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:
Um Set logo depois da entrada, normalizando os campos que vieram do serviço externo para os nomes que o resto do fluxo usa.
Os nodes de lógica trabalhando com esses nomes limpos.
Um Code pontual, só onde a transformação realmente exigir.
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.



