Dados entre nós: expressões e ramificações
A mágica do n8n está em fazer os dados correrem: um nome de um formulário vai parar num e-mail e um valor de um e-mail, numa condição. Você domina as expressões {{ }}, o mapeamento de campos arrastando e o nó IF para ramificar.
Os nós são o esqueleto de um fluxo. Os dados que correm entre eles são o sangue. Chegou a hora de aprender a conduzi-los.
Cada nó passa os dados para o seguinte
Clique num nó que já rodou e verá a saída dele: campos e valores (nome, e-mail, valor…). O nó seguinte pode usar qualquer um deles.
Expressões entre {{ }}
Qualquer campo de texto de um nó aceita mais do que texto puro: aceita substituições.
Novo lead de {{ $json.name }}!
Telefone: {{ $json.phone }}, valor: {{ $json.amount }} €
Você não precisa decorar a sintaxe: abra o painel de dados à esquerda e arraste o campo que quiser para o texto — o n8n escreve a expressão por você. Arrastar campos é a habilidade número um desta lição.
Ramificações: o nó IF
O nó IF divide o fluxo em dois ramos conforme uma condição:
[Formulário de leads] → [IF: amount > 1000?] true → [Telegram para o vendedor: “Lead gordo!”] false → [Só gravar na planilha]
As condições são montadas com um formulário: campo, operador (maior que / igual a / contém), valor. Várias condições se combinam com E/OU.
A miniprática desta lição
Pegue o resumo matinal de ontem e acrescente isto: IF “temperatura abaixo de 5°” → a mensagem ganha “Leve um casaco! 🧥” no final. Dados do nó HTTP → uma condição → duas versões do texto. É o modelo por trás de todo fluxo que você vai montar daqui em diante.
O que significam $json, $node e o ponto
Leia {{ $json.name }} assim: $json são os dados que chegaram a este nó; o ponto quer dizer “entre dentro”; name é o campo. Se os dados estão aninhados, há mais pontos: na resposta do tempo a temperatura fica em {{ $json.current.temperature_2m }}. E quando você quer um campo de um nó anterior, e não do que vem logo antes, existe o $node:
Do nó ao lado: {{ $json.amount }}
De um campo aninhado: {{ $json.current.temperature_2m }}
De um nó pelo nome: {{ $node["Form"].json.email }}
De novo: você quase nunca digita isso, arrasta com o mouse e o n8n preenche o caminho certo com os pontos. Mas entender o que o ponto significa compensa: no dia em que uma expressão devolver undefined, você verá na hora que pulou um nível de aninhamento.
IF contra Switch
O nó IF dá exatamente dois ramos: true e false. Quando você precisa de mais de dois (lead / reclamação / pergunta / spam), recorre ao Switch — mesma ideia, várias saídas. A regra é simples: dois resultados, IF; muitos resultados, Switch. Vamos ver o Switch a fundo na lição sobre triagem da caixa de entrada; por ora, basta saber que as ramificações escalam.
Mitos sobre os dados
- “Tenho que aprender a sintaxe das expressões.” Não. Em 95% do tempo você está arrastando campos com o mouse. A sintaxe só importa para ler e ajustar um pouco o que já está lá.
- “Copiar o valor na mão dá no mesmo.” Não dá: um “Ivan” que você colou fica “Ivan” para sempre, enquanto
{{ $json.name }}coloca o nome do novo cliente a cada execução. Uma expressão é viva; texto digitado é morto. - “Painel de dados vazio quer dizer que o fluxo está quebrado.” Em geral só quer dizer que o nó não rodou. Aperte Execute no nó anterior e os dados aparecem, com os campos prontos para arrastar.
Por que o n8n só mostra campos arrastáveis depois que um nó roda, e não já de cara? Pense bem: antes de rodar, o n8n não faz ideia do que o formulário ou a API vai devolver — nem se vai haver um campo “phone”. O painel de dados mostra o resultado real, não um palpite. Por isso “rodar → ver os campos de verdade → arrastar” ganha de adivinhar nomes no escuro.
Quando os dados não arrastam
Verifique se o nó anterior rodou (Execute) — o painel de dados só mostra dados que passaram de verdade. Painel vazio = rode o nó de novo.
O nó Set: pondo ordem nos dados
Os dados de uma API costumam chegar com campos inúteis e nomes desajeitados. O nó Edit Fields (Set) é o seu reembalador: fica com o que você precisa, renomeia e joga o resto fora, para que rio abaixo corra uma estrutura limpa e legível. Por exemplo, reduzir aquela resposta do tempo tão pesada a dois campos:
Antes (do HTTP): { "current": { "temperature_2m": 3.4, "time": "...",
"wind_speed_10m": 12, ...mais uma dúzia de campos... } }
Depois (Set): { "temp": 3.4, "city": "Berlin" }
Ganhar o hábito de arrumar os dados antes das ramificações e dos nós de IA poupa horas de depuração: quando um campo se chama temp e não current.temperature_2m, tanto o prompt quanto a condição IF se leem num relance.
Faça agora
Abra o resumo matinal de ontem. No nó Telegram, arraste o campo da temperatura do painel de dados para o texto da mensagem, de modo que fique “Agora está {{ $json.current.temperature_2m }}°”. Adicione um nó IF depois do HTTP Request com a condição “temperatura < 5” e, no ramo true, acrescente “Leve um casaco! 🧥” à mensagem. Rode Execute com climas diferentes (troque as coordenadas) e confirme que os dois ramos disparam.
Short questions on the lesson — with an explanation for every answer.