Transformando Dados
O n8n usa uma estrutura de dados predefinida que permite que todos os nodes processem dados de entrada corretamente. Seus dados de entrada podem ter uma estrutura diferente, caso em que você precisará transformá-los para permitir que cada item seja processado individualmente.
Quando Transformar Dados
Estrutura Incompatível
Por exemplo, quando um node HTTP Request retorna dados incompatíveis com a estrutura de dados do n8n, você pode ver que apenas um item foi retornado, mesmo que a API tenha retornado múltiplos registros.
Para transformar esse tipo de estrutura na estrutura de dados do n8n, você pode usar os nodes de transformação de dados:
Nodes de Transformação
Aggregate
Agrupa itens separados, ou porções deles, em itens individuais.
Exemplo:
// Entrada
[
{"json": {"categoria": "frutas", "item": "maçã"}},
{"json": {"categoria": "frutas", "item": "banana"}},
{"json": {"categoria": "verduras", "item": "alface"}}
]
// Saída
[
{"json": {"categoria": "frutas", "itens": ["maçã", "banana"]}},
{"json": {"categoria": "verduras", "itens": ["alface"]}}
]
Limit
Remove itens além de um número máximo definido.
Exemplo:
// Entrada (10 itens)
// Saída (apenas os primeiros 5 itens)
Remove Duplicates
Identifica e remove itens que são idênticos em todos os campos ou um subconjunto de campos.
Exemplo:
// Entrada
[
{"json": {"email": "joao@email.com", "nome": "João"}},
{"json": {"email": "joao@email.com", "nome": "João Silva"}},
{"json": {"email": "maria@email.com", "nome": "Maria"}}
]
// Saída (remove duplicatas por email)
[
{"json": {"email": "joao@email.com", "nome": "João"}},
{"json": {"email": "maria@email.com", "nome": "Maria"}}
]
Sort
Organiza listas em uma ordem desejada ou gera uma seleção aleatória.
Exemplo:
// Entrada
[
{"json": {"nome": "Carlos", "idade": 25}},
{"json": {"nome": "Ana", "idade": 30}},
{"json": {"nome": "Bruno", "idade": 22}}
]
// Saída (ordenado por idade)
[
{"json": {"nome": "Bruno", "idade": 22}},
{"json": {"nome": "Carlos", "idade": 25}},
{"json": {"nome": "Ana", "idade": 30}}
]
Split Out
Separa um único item de dados contendo uma lista em múltiplos itens.
Exemplo:
// Entrada
[
{"json": {"categoria": "frutas", "itens": ["maçã", "banana", "laranja"]}}
]
// Saída
[
{"json": {"categoria": "frutas", "item": "maçã"}},
{"json": {"categoria": "frutas", "item": "banana"}},
{"json": {"categoria": "frutas", "item": "laranja"}}
]
Summarize
Agrega itens juntos, de maneira similar às tabelas dinâmicas do Excel.
Exemplo:
// Entrada
[
{"json": {"categoria": "frutas", "valor": 10}},
{"json": {"categoria": "frutas", "valor": 15}},
{"json": {"categoria": "verduras", "valor": 8}}
]
// Saída
[
{"json": {"categoria": "frutas", "total": 25, "quantidade": 2}},
{"json": {"categoria": "verduras", "total": 8, "quantidade": 1}}
]
Transformação com Code Node
Para transformações mais complexas, você pode usar o Code node:
// Exemplo: Transformar dados de API externa
const items = $input.all();
const transformedItems = items.map(item => {
const data = item.json;
return {
json: {
id: data.id,
nome: data.name,
email: data.email_address,
data_criacao: new Date(data.created_at).toISOString(),
ativo: data.status === 'active'
}
};
});
return transformedItems;
Transformação com Set Node
O Set node permite adicionar, modificar ou remover campos:
Adicionar campos:
// Configuração do Set node
{
"nome_completo": "={{ $json.nome }} {{ $json.sobrenome }}",
"data_processamento": "={{ new Date().toISOString() }}",
"status": "processado"
}
Remover campos:
// Configuração do Set node (modo: Remove)
["campo_antigo", "dados_temporarios"]
Casos de Uso Comuns
Normalizar Dados de APIs
Agregar Dados de Múltiplas Fontes
Limpar e Validar Dados
Considerações Importantes
Performance
- Transformações simples: Use nodes especializados (Set, Aggregate, etc.)
- Transformações complexas: Use Code node
- Grandes volumes: Considere processamento em lotes
Validação
- Sempre teste transformações com dados reais
- Verifique se a estrutura de saída está correta
- Monitore logs para erros de transformação
Manutenção
- Documente transformações complexas
- Use nomes descritivos para campos
- Mantenha consistência nas transformações
Próximos Passos
- Aprenda Data Mapping para mapeamento avançado
- Explore Data Structure para entender a estrutura fundamental
- Entenda Data Flow para fluxo de dados
Recursos Relacionados
- Data Structure - Estrutura fundamental dos dados
- Data Mapping - Mapeamento avançado de dados
- Code Node - Transformações customizadas
- Data Processing Nodes - Nodes especializados