Pular para o conteúdo principal

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

  1. Aprenda Data Mapping para mapeamento avançado
  2. Explore Data Structure para entender a estrutura fundamental
  3. Entenda Data Flow para fluxo de dados

Recursos Relacionados