Processamento de Dados
Os nodes de Processamento de Dados são essenciais para manipular, transformar e organizar informações no n8n. Eles permitem que você prepare dados para uso em workflows, agrupe informações relacionadas e crie estruturas de dados otimizadas.
Nodes Disponíveis
Aggregate
O node Aggregate permite agrupar e agregar dados baseado em campos específicos, criando resumos e estatísticas.
Principais funcionalidades:
- Agrupar dados por campos
- Calcular somas, médias, contagens
- Encontrar valores mínimos e máximos
- Criar resumos estatísticos
- Combinar dados relacionados
Casos de uso:
- Calcular totais de vendas por período
- Agrupar dados de clientes por região
- Criar relatórios consolidados
- Analisar métricas de performance
- Processar dados de logs
Set
O node Set permite definir, modificar e remover campos nos dados, oferecendo controle total sobre a estrutura dos dados.
Principais funcionalidades:
- Definir novos campos
- Modificar valores existentes
- Remover campos desnecessários
- Renomear campos
- Aplicar transformações
Casos de uso:
- Padronizar formatos de dados
- Adicionar campos calculados
- Limpar dados de entrada
- Preparar dados para APIs
- Criar estruturas customizadas
Conceitos Fundamentais
Estrutura de Dados no n8n
No n8n, os dados são organizados em items (itens), onde cada item representa uma entrada de dados. Cada item pode conter múltiplos campos com diferentes tipos de dados.
Exemplo de estrutura:
{
"id": 1,
"nome": "João Silva",
"email": "joao@exemplo.com",
"idade": 30,
"ativo": true,
"data_cadastro": "2024-01-15T10:30:00Z"
}
Tipos de Dados
O n8n suporta diversos tipos de dados:
- String: Texto
- Number: Números (inteiros e decimais)
- Boolean: Verdadeiro/falso
- Object: Objetos JSON
- Array: Listas de valores
- Date: Datas e timestamps
- Binary: Dados binários (arquivos)
Fluxo de Dados
- Entrada: Dados chegam de nodes anteriores
- Processamento: Nodes de processamento manipulam os dados
- Saída: Dados processados são enviados para nodes seguintes
Operações Comuns
Agrupamento de Dados
Agrupar dados relacionados para análise e processamento:
// Exemplo: Agrupar vendas por vendedor
{
"vendedor": "João",
"vendas": [
{"produto": "A", "valor": 100},
{"produto": "B", "valor": 150}
],
"total": 250
}
Transformação de Campos
Modificar estrutura e valores dos dados:
// Antes
{
"primeiro_nome": "João",
"ultimo_nome": "Silva",
"data_nascimento": "1990-05-15"
}
// Depois
{
"nome_completo": "João Silva",
"idade": 33,
"maior_idade": true
}
Filtragem e Seleção
Selecionar apenas dados relevantes:
// Filtrar apenas usuários ativos
if ($json.ativo === true) {
return $json;
}
Padrões de Processamento
1. Pipeline de Limpeza
Dados Brutos → Limpeza → Validação → Transformação → Dados Prontos
Exemplo:
- Set node remove campos desnecessários
- Set node padroniza formatos
- Set node adiciona campos calculados
- Set node valida dados obrigatórios
2. Agregação e Consolidação
Dados Detalhados → Agrupamento → Agregação → Resumo
Exemplo:
- Aggregate node agrupa vendas por mês
- Aggregate node calcula totais
- Set node adiciona percentuais
- Set node formata para relatório
3. Enriquecimento de Dados
Dados Básicos → Consulta Externa → Mesclagem → Dados Enriquecidos
Exemplo:
- HTTP Request busca dados de cliente
- Set node mescla informações
- Set node adiciona campos calculados
- Set node valida dados completos
Exemplos Práticos
Exemplo 1: Processamento de Vendas
Dados de entrada:
[
{
"vendedor": "João",
"produto": "Produto A",
"quantidade": 2,
"preco_unitario": 50.00,
"data": "2024-01-15"
},
{
"vendedor": "Maria",
"produto": "Produto B",
"quantidade": 1,
"preco_unitario": 100.00,
"data": "2024-01-15"
}
]
Processamento:
- Set node adiciona campo
valor_total
- Aggregate node agrupa por vendedor
- Set node calcula comissão (10%)
- Set node formata para relatório
Resultado:
[
{
"vendedor": "João",
"total_vendas": 100.00,
"comissao": 10.00,
"quantidade_vendas": 1
},
{
"vendedor": "Maria",
"total_vendas": 100.00,
"comissao": 10.00,
"quantidade_vendas": 1
}
]
Exemplo 2: Limpeza de Dados de Clientes
Dados de entrada:
{
"nome": "joão silva",
"email": "joao@email.com",
"telefone": "(11) 99999-9999",
"cpf": "123.456.789-00",
"endereco": "Rua das Flores, 123 - São Paulo/SP"
}
Processamento:
- Set node padroniza nome (primeira letra maiúscula)
- Set node remove formatação do telefone
- Set node remove formatação do CPF
- Set node separa endereço em campos
- Set node valida email
Resultado:
{
"nome": "João Silva",
"email": "joao@email.com",
"telefone": "11999999999",
"cpf": "12345678900",
"logradouro": "Rua das Flores",
"numero": "123",
"cidade": "São Paulo",
"estado": "SP",
"email_valido": true
}
Exemplo 3: Análise de Logs
Dados de entrada:
[
{
"timestamp": "2024-01-15T10:30:00Z",
"level": "ERROR",
"message": "Falha na conexão",
"user_id": 123
},
{
"timestamp": "2024-01-15T10:31:00Z",
"level": "INFO",
"message": "Conexão restaurada",
"user_id": 123
}
]
Processamento:
- Aggregate node agrupa por nível de log
- Aggregate node conta ocorrências por hora
- Set node adiciona percentuais
- Set node identifica padrões
Boas Práticas
Estruturação de Dados
- Use nomes consistentes para campos
- Padronize formatos de data e hora
- Valide dados obrigatórios antes do processamento
- Documente transformações complexas
- Mantenha backup dos dados originais
Performance
- Processe dados em lotes quando possível
- Use filtros para reduzir volume de dados
- Otimize agregações com índices apropriados
- Evite processamento desnecessário
- Monitore uso de memória
Manutenção
- Teste transformações com dados reais
- Implemente validações robustas
- Configure alertas para falhas
- Documente regras de negócio
- Mantenha versões das transformações
Troubleshooting
Problemas Comuns
Dados corrompidos
- Valide formato dos dados de entrada
- Verifique encoding (UTF-8)
- Implemente tratamento de erros
- Use logs para debug
Performance lenta
- Otimize agregações
- Use filtros apropriados
- Processe em lotes menores
- Monitore uso de recursos
Campos ausentes
- Implemente valores padrão
- Valide dados obrigatórios
- Use operadores de coalescência
- Documente dependências
Debug
- Use o node Debug Helper para inspecionar dados
- Configure logging detalhado
- Teste com dados de exemplo
- Valide cada etapa do processamento
- Monitore métricas de performance
Próximos Passos
- Expressões n8n - Usar dados dinâmicos
- Nodes de Lógica - Controlar fluxo
- Nodes Core - Operações básicas
- Manipulação de Dados - Conceitos avançados
- Tratamento de Erros - Lidar com falhas