Base de Conhecimento

Code no n8n: como usar JavaScript no seu fluxo

  • n8n, code, javascript, python, automação, fluxo
  • Usuários acharam útil: 0

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

Arte da Eleven Host: janela de terminal com o título: Code no n8n: como usar JavaScript no seu fluxo

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.item devolve 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:

  1. 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.
  2. Rode o gatilho com dados de teste, por exemplo dois itens: nome igual a "ana" e nome igual a "bruno". Assim o próximo nó tem dados de exemplo.
  3. Adicione o nó Code depois do gatilho.
  4. Em Mode, deixe Run Once for All Items.
  5. Em Language, escolha JavaScript.
  6. Apague o que estiver no campo de código e cole o código abaixo.
  7. 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 crypto e moment.
  • 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.item no 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ó crypto e moment. No self-hosted, confira se a variável de ambiente está definida.
  • Console vazio: o console.log aparece 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ó.

Esta resposta lhe foi útil?

Artigos Relacionados