Expressões n8n
Expressões n8n
As Expressões n8n são fórmulas JavaScript que permitem usar dados dinâmicos, fazer cálculos e manipular informações em seus workflows. Elas são fundamentais para criar automações inteligentes e flexíveis.
O que são Expressões
Expressões são trechos de código JavaScript que:
- Acessam dados de nodes anteriores
- Fazem cálculos e transformações
- Criam condições dinâmicas
- Formatam dados para saída
- Validam informações em tempo real
Sintaxe Básica
As expressões no n8n usam a sintaxe
{{}}
:
{{expressão_javascript_aqui}}
Acessando Dados
Para acessar dados do item atual:
// Acessar campo específico
{{$json.nome}}
// Acessar campo aninhado
{{$json.endereco.cidade}}
// Acessar array
{{$json.itens[0].nome}}
// Acessar propriedade dinâmica
{{$json['campo-dinamico']}}
Para acessar dados de nodes anteriores:
// Dados do node "HTTP Request"
{{$('HTTP Request').json.resposta}}
// Dados do primeiro node
{{$('Manual Trigger').json.entrada}}
// Dados de múltiplos nodes
{{$('Node A').json.valor + $('Node B').json.valor}}
Trabalhando com Items
Para trabalhar com múltiplos items:
// Todos os items
{{$input.all()}}
// Primeiro item
{{$input.first()}}
// Item específico por índice
{{$input.item[0]}}
// Último item
{{$input.last()}}
Funções de Data e Hora
Data Atual
// Data atual em ISO
{{$now.toISOString()}}
// Data formatada
{{$now.toFormat('dd/MM/yyyy HH:mm:ss')}}
// Timestamp Unix
{{$now.toMillis()}}
// Data em português
{{$now.toFormat('dd \'de\' MMMM \'de\' yyyy')}}
Cálculos com Datas
// Adicionar dias
{{ $now.plus({ days: 7 }).toISOString() }}
// Subtrair horas
{{ $now.minus({ hours: 2 }).toISOString() }}
// Diferença entre datas
{{$now.diff($json.data_anterior, 'days')}}
// Data específica
{{DateTime.fromISO('2024-01-15').toFormat('dd/MM/yyyy')}}
Formatação de Datas
// Formato brasileiro
{{$now.toFormat('dd/MM/yyyy')}}
// Com dia da semana
{{$now.toFormat('EEEE, dd \'de\' MMMM \'de\' yyyy')}}
// Hora apenas
{{$now.toFormat('HH:mm')}}
// Data relativa
{{$now.toRelative()}}
Manipulação de Texto
Operações Básicas
// Concatenar strings
{{$json.nome + ' ' + $json.sobrenome}}
// Converter para maiúsculo
{{$json.texto.toUpperCase()}}
// Converter para minúsculo
{{$json.texto.toLowerCase()}}
// Capitalizar primeira letra
{{$json.texto.charAt(0).toUpperCase() + $json.texto.slice(1)}}
Busca e Substituição
// Verificar se contém texto
{{$json.texto.includes('palavra')}}
// Substituir texto
{{$json.texto.replace('antigo', 'novo')}}
// Substituir múltiplas ocorrências
{{$json.texto.replace(/antigo/g, 'novo')}}
// Extrair parte do texto
{{$json.texto.substring(0, 10)}}
// Dividir texto
{{$json.texto.split(',')}}
Validação de Texto
// Verificar se está vazio
{{$json.texto.length === 0}}
// Verificar se não está vazio
{{$json.texto && $json.texto.length > 0}}
// Validar email
{{/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test($json.email)}}
// Validar CPF (formato básico)
{{ /^\d{3}\.\d{3}\.\d{3}-\d{2}$/.test($json.cpf) }}
Cálculos Matemáticos
Operações Básicas
// Soma
{{$json.valor1 + $json.valor2}}
// Subtração
{{$json.valor1 - $json.valor2}}
// Multiplicação
{{$json.quantidade * $json.preco}}
// Divisão
{{$json.total / $json.quantidade}}
// Módulo (resto)
{{$json.numero % 2}}
Funções Matemáticas
// Arredondar
{{Math.round($json.valor)}}
// Arredondar para cima
{{Math.ceil($json.valor)}}
// Arredondar para baixo
{{Math.floor($json.valor)}}
// Valor absoluto
{{Math.abs($json.valor)}}
// Potência
{{Math.pow($json.base, $json.expoente)}}
// Raiz quadrada
{{Math.sqrt($json.valor)}}
Cálculos Financeiros
// Calcular desconto
{{$json.valor * (1 - $json.desconto / 100)}}
// Calcular juros
{{$json.principal * (1 + $json.taxa / 100) ** $json.tempo}}
// Calcular média
{{($json.valor1 + $json.valor2 + $json.valor3) / 3}}
// Calcular porcentagem
{{($json.parte / $json.total) * 100}}
Próximos Passos
- HTTP Request - Usar expressões em requisições
- Code Node - JavaScript avançado
- Tratamento de Erros - Lidar com falhas
- Data Processing - Processar dados
- Templates - Ver exemplos práticos
Agora você domina as expressões n8n. Use essas técnicas para criar workflows dinâmicos e inteligentes!
Dica Pro
Sempre teste suas expressões com dados reais para garantir que funcionem como esperado.
Importante
Evite expressões muito complexas que possam impactar a performance do workflow.
Recurso Adicional
Use o Debug Helper para visualizar os dados disponíveis e testar suas expressões.