Code no n8n: como usar JavaScript no seu fluxo
Veja como usar o nó Code no n8n: os dois modos, um exemplo passo a passo em JavaScript, o formato de retorno, o Python, os limites do nó e os erros comuns.
Por Redação Eleven Host · @robson.direitodigital · 28 de outubro de 2026 · 9 min de leitura

Capa da Redação Eleven Host para o guia: Code no n8n: como usar JavaScript no seu fluxo Arte: Eleven Host
O nó Code no n8n roda JavaScript ou Python dentro do fluxo para transformar os itens quando os nós prontos não bastam. O que o código devolve segue para o próximo nó.
Este guia explica para que serve o nó, os dois modos de execução, um exemplo passo a passo, o formato que o nó precisa devolver, o Python, os limites e os erros comuns. Ele segue a documentação do n8n sobre o nó Code e sobre a estrutura de dados. Os campos nome e maiusculo do exemplo são fictícios. Troque pelos campos dos seus dados. Se você ainda não tem um gatilho para alimentar o nó, veja o guia Webhook no n8n: como criar, testar e colocar no ar.
Para que serve o nó Code
O nó Code deixa escrever um trecho de código dentro do fluxo. Ele serve quando você precisa mudar a forma dos dados e nenhum nó pronto faz exatamente isso: juntar campos, calcular um valor, montar um texto, contar itens.
Antes de escrever código, vale olhar se existe um nó pronto para a tarefa. Para chamar uma API, por exemplo, a documentação indica o nó HTTP Request, e o guia HTTP Request no n8n: como chamar uma API no fluxo mostra como usá-lo. O Code entra quando o nó pronto não resolve.
Dentro do campo de código, você usa variáveis e métodos embutidos do n8n. Em JavaScript, eles começam com $, como $input. Esse prefixo é diferente das expressões que você escreve nos campos dos outros nós, entre chaves duplas, como {{$json.body.city}}. A documentação descreve as expressões como pequenos trechos de código parecidos com JavaScript.
Os dois modos do nó
No nó há a opção Mode, com duas escolhas:
- Run Once for All Items (o padrão): segundo a documentação, o código executa uma vez, não importa quantos itens de entrada existam. Você recebe todos os itens juntos e trabalha com eles de uma vez.
- Run Once for Each Item: escolha este se quiser que o código rode para cada item de entrada. O código é executado uma vez por item.
A diferença aparece ao ler a entrada. A documentação lista estes métodos:
$input.all()devolve uma lista com todos os itens de entrada do nó.$input.itemdevolve o item que está sendo processado no momento.$input.first()e$input.last()devolvem o primeiro e o último item.
Na prática, $input.all() combina com o modo para todos os itens, e $input.item combina com o modo para cada item. A página da documentação não faz essa ligação de forma explícita, então teste com os seus dados e olhe o resultado.
Para ler dados de outro nó do fluxo, e não só do anterior, use $("nome-do-no"). Com ele, .all() devolve os itens de saída daquele nó, .first() devolve o primeiro, e .item devolve o item correspondente.
Quer conhecer os planos de n8n? O n8n Essencial sai a partir de R$ 19,90/mês; confira na loja o que cada plano inclui. Ver planos de n8n
Passo a passo: um exemplo simples
Vamos montar um fluxo que recebe nomes e devolve cada nome também em letras maiúsculas. Siga a ordem:
- Crie um fluxo novo e adicione um gatilho que entregue itens com um campo
nome. Um webhook serve; o guia Webhook no n8n mostra como criar e testar. - Rode o gatilho com dados de teste, por exemplo dois itens:
nomeigual a "ana" enomeigual a "bruno". Assim o próximo nó tem dados de exemplo. - Adicione o nó Code depois do gatilho.
- Em Mode, deixe Run Once for All Items.
- Em Language, escolha JavaScript.
- Apague o que estiver no campo de código e cole o código abaixo.
- Execute o nó e olhe a saída.
O código, em três linhas:
const saida = [];
for (const item of $input.all()) { saida.push({ json: { nome: item.json.nome, maiusculo: String(item.json.nome).toUpperCase() } }); }
return saida;
Em palavras simples: a primeira linha cria uma lista vazia. A segunda percorre cada item de entrada, lê o campo nome em item.json e acrescenta à lista um novo item com o nome original e a versão em maiúsculas. A terceira devolve a lista ao n8n.
Com os dois itens de teste, a saída deve trazer "ana" com "ANA" e "bruno" com "BRUNO". Se a saída vier vazia ou com erro, veja a seção de erros comuns mais adiante.
O formato mais claro para o nó Code devolver é uma lista de objetos, e cada objeto leva os dados dentro da chave json. Ao escrever o return, confira esse formato antes de executar o nó.
O formato que o nó devolve
Segundo a documentação sobre a estrutura de dados, tudo que passa entre os nós do n8n é uma lista de objetos, e cada item tem a chave json. Um exemplo da própria documentação:
[ { "json": { "apple": "beets", "carrot": { "dill": 1 } } } ]
Por isso o exemplo acima devolve itens no formato { json: { ... } }. A documentação informa que, desde a versão 0.166.0, o nó Code adiciona a chave json automaticamente quando ela falta. Mesmo assim, devolver o formato completo deixa o código mais claro para quem o ler depois.
Um segundo exemplo, tirado da documentação, conta os itens que chegaram ao nó:
return [ { json: { results: items.length, } } ];
Com oito itens de entrada, a documentação mostra a saída [ { "results": 8 } ]. Repare que o código devolve um único item com o total, e não um item para cada entrada.
Ver o que o código faz
Para investigar um valor, use console.log(a) no JavaScript ou print(a) no Python. A saída não aparece no nó. Segundo o cookbook do n8n, ela vai para o console do navegador, nas ferramentas do desenvolvedor. Abra essas ferramentas, execute o nó e procure a mensagem.
Python no nó Code
O nó Code também aceita Python. A documentação traz avisos importantes sobre a situação atual:
- O Python antigo, que rodava com Pyodide, foi removido: "Pyodide is removed from n8n 2.0", e o n8n deixou de oferecer esse recurso.
- O Python nativo, com task runners, existe a partir do n8n 1.111.0 e é considerado estável a partir do n8n 2.
- Atualizar para o Python nativo é uma mudança que pode quebrar scripts antigos, então teste os fluxos que já usam Python.
- No Python nativo, o acesso aos campos usa só colchetes, como
item["json"]["my_new_field"]. - A documentação avisa que o Python demora mais que o JavaScript.
O Python bloqueia algumas funções por padrão. A documentação cita a função type() como exemplo. Se o seu código parar numa função embutida, veja primeiro se ela está na lista de bloqueios.
Limites do nó Code
A documentação é direta: "You can't access the file system or make HTTP requests." Em português, o código do nó não lê arquivos do disco nem faz requisições HTTP. Para essas tarefas, use os nós Read/Write File From Disk e HTTP Request antes ou depois do Code.
Módulos externos
A regra para importar módulos depende de onde o n8n roda:
- Quem hospeda o n8n por conta própria (self-hosted) pode importar módulos nativos do Node e pacotes npm externos, mas precisa liberar isso com variáveis de ambiente.
- No n8n Cloud, a documentação diz que não é possível importar módulos npm externos. Estão disponíveis apenas
cryptoemoment. - No Python nativo do n8n Cloud, não dá para importar nenhuma biblioteca.
No self-hosted, as variáveis da documentação são estas:
export NODE_FUNCTION_ALLOW_BUILTIN=crypto
export NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash
A primeira libera módulos nativos do Node: a documentação mostra * para todos, ou uma lista como crypto ou crypto,fs. A segunda libera pacotes npm instalados na pasta node_modules do n8n. Sem a variável, os módulos externos ficam desligados. Quando o n8n usa Task Runners, a documentação manda colocar as variáveis nos Task Runners.
Se o seu n8n roda em Docker, confira na documentação do n8n e na configuração do seu contêiner onde essas variáveis entram, antes de mexer.
Ajuda de IA no nó Code
A documentação descreve uma ajuda de IA no nó, na aba "Ask AI" com o botão "Generate Code". Ela está disponível para usuários do n8n Cloud e não está disponível no n8n self-hosted. Só funciona com JavaScript, e o código gerado substitui o que já estava escrito no campo. A IA conhece o formato dos dados, não o conteúdo deles, e os nós anteriores precisam ter rodado.
Erros comuns
- Devolver o formato errado: o return deve devolver uma lista de objetos com a chave
json, como mostrado acima. Outro formato pode dar erro ou resultado diferente do esperado. - Modo errado para o método: usar
$input.itemno modo para todos os itens, ou o contrário, pode dar resultado diferente do esperado. Confira o Mode do nó. - Campo inexistente: se o item de entrada não tem o campo, o código não encontra o valor que procura. Olhe os dados de entrada do nó e confira o nome exato do campo.
- Tentar usar HTTP ou arquivos: o nó não faz isso. Use os nós próprios, como indicado acima.
- Módulo que não carrega: no n8n Cloud, só
cryptoemoment. No self-hosted, confira se a variável de ambiente está definida. - Console vazio: o
console.logaparece no navegador, não na saída do nó.
Se o fluxo precisa rodar sozinho em horários marcados, o guia Agendar fluxo no n8n: como usar o Schedule Trigger mostra o gatilho de agenda.
Checklist: nó Code montado
- Conferi se não existe um nó pronto para a tarefa.
- Escolhi o modo certo: todos os itens de uma vez ou um item por vez.
- Li a entrada com
$input.all()ou$input.item, conforme o modo. - Devolvi uma lista de objetos com a chave
json. - Testei com dados de exemplo e olhei a saída.
- Não dependo de HTTP, arquivos ou módulos que o nó não oferece.
Pensando em começar com o n8n? Veja o n8n Essencial a partir de R$ 19,90/mês e confira na loja o que cada plano inclui. Conhecer o n8n
Perguntas frequentes
O nó Code do n8n aceita Python?
Sim. O Python nativo existe a partir do n8n 1.111.0 e é estável a partir do n8n 2. O Python antigo com Pyodide foi removido no n8n 2.0.
O nó Code pode fazer uma requisição HTTP?
Não. A documentação diz que o nó não acessa o sistema de arquivos nem faz requisições HTTP. Use o nó HTTP Request para chamar uma API.
Qual a diferença entre os dois modos do nó Code?
No modo Run Once for All Items, o código executa uma vez com todos os itens. No Run Once for Each Item, o código executa uma vez para cada item de entrada.
Onde aparece o resultado do console.log?
No console do navegador, nas ferramentas do desenvolvedor, e não na saída do nó.