Conteúdo
Tutorial de expressões no n8n: $json, $('nó'), datas e funções úteis
As expressões permitem que os parâmetros dos nós mudem dinamicamente conforme os dados. Qualquer campo de parâmetro pode ser alternado para o modo Expression (na alternância Fixed / Expression ao lado do campo ou digitando {{ diretamente).
Dentro de {{ }}, você escreve JavaScript, então pode usar a sintaxe e os métodos de JavaScript.
Leia os dados do item atual: $json
{{ $json.name }}
{{ $json.address.city }}
{{ $json.tags[0] }}
{{ $json["nome do campo"] }}
Quando o nome do campo tem espaços ou caracteres especiais, use colchetes [...].
A maneira mais simples é arrastar um campo do painel INPUT à esquerda para um parâmetro. O n8n gera automaticamente a expressão correta.

Leia dados de outros nós: $('nome do nó')
$json só pode ler a saída do nó anterior. Para ler dados de um nó mais antigo:
{{ $('Google Sheets').item.json.email }}
| Sintaxe | Significado |
|---|---|
$('nó').item | O item correspondente ao item atual (o mais usado) |
$('nó').first() | O primeiro item produzido por esse nó |
$('nó').last() | O último item |
$('nó').all() | Todos os items (array) |
{{ $('Webhook').item.json.body.customer_id }}
{{ $('Obter configurações').first().json.api_url }}
{{ $('Pedidos').all().length }} pedidos
Quando o nome de um nó muda, o n8n atualiza automaticamente o nome nas expressões.
Manipulação de strings
{{ $json.name.trim() }}
{{ $json.email.toLowerCase() }}
{{ $json.title.slice(0, 50) }}…
{{ $json.text.replaceAll('\n', ' ') }}
{{ `Olá ${$json.name}, seu pedido ${$json.order_id} foi enviado.` }}
{{ $json.tags.join('、') }}
O n8n também oferece alguns métodos adicionais:
{{ $json.email.isEmail() }}
{{ $json.content.extractUrl() }}
{{ $json.title.toTitleCase() }}
Números
{{ $json.price * 1.05 }}
{{ Math.round($json.score * 10) / 10 }}
{{ Number($json.amount).toLocaleString('zh-TW') }}
{{ ($json.done / $json.total * 100).toFixed(1) }}%
Às vezes, os números retornados por uma API são strings. Converta-os com Number() antes de fazer cálculos.
Condições
{{ $json.amount > 1000 ? 'VIP' : 'comum' }}
{{ $json.nickname || $json.name }}
{{ $json.phone ?? 'não informado' }}
Quando precisar seguir fluxos diferentes dependendo de uma condição, use os nós If ou Switch, em vez de tratar isso na expressão.
Arrays
{{ $json.items.length }}
{{ $json.items.map(i => i.name).join(', ') }}
{{ $json.items.filter(i => i.stock === 0).length }}
{{ $json.scores.reduce((a, b) => a + b, 0) }}
Data e hora
O n8n inclui a biblioteca de datas Luxon. $now representa a data e hora atuais, e $today representa o início do dia de hoje:
{{ $now.toFormat('yyyy-MM-dd HH:mm') }}
{{ $today.minus({ days: 1 }).toFormat('yyyy/MM/dd') }}
{{ $now.plus({ hours: 2 }).toISO() }}
{{ $now.setZone('Asia/Taipei').toFormat('MM/dd HH:mm') }}
{{ $now.weekday }} // 1 = segunda-feira … 7 = domingo
Analise strings de data nos dados:
{{ DateTime.fromISO($json.created_at).toFormat('yyyy-MM-dd') }}
{{ DateTime.fromFormat($json.date, 'yyyy/MM/dd').plus({ days: 7 }).toISODate() }}
{{ $json.created_at.toDateTime().diffTo($now, 'days') }}
O fuso horário segue a configuração do n8n ou do workflow. Lembre-se de defini-lo como Asia/Taipei.
Variáveis internas comuns
| Variável | Conteúdo |
|---|---|
$json | O item atual |
$binary | Os arquivos do item atual |
$input.all() | Todos os items recebidos por este nó |
$now, $today | Data e hora atuais, hoje |
$execution.id | O ID desta execução |
$execution.mode | test (teste manual) ou production |
$workflow.name | Nome do workflow |
$vars.name | Variável personalizada (disponível em alguns planos) |
$runIndex | Quantas vezes o nó foi executado nesta execução |
Várias linhas e lógica complexa
Você pode escrever uma função executada imediatamente dentro de uma expressão:
{{ (() => {
const total = $json.items.reduce((s, i) => s + i.price * i.qty, 0);
return total >= 1000 ? total : total + 60;
})() }}
Quando a lógica passar de algumas linhas, é melhor usar o nó Code, que facilita a leitura e a depuração.
Dicas de depuração
- Abaixo do campo da expressão, o resultado da prévia aparece em tempo real. Vermelho indica um erro.
- A prévia usa os dados da execução anterior. Execute os nós anteriores primeiro para ver a prévia.
Cannot read properties of undefinedsignifica que uma parte do caminho não existe. Use?.para evitar o erro:{{ $json.address?.city }}.- Para ver o item inteiro:
{{ JSON.stringify($json) }}.
Atualizado 12 de outubro de 2026