Pular para o conteúdo principal

Splitting de Workflows: Criando Lógica Condicional no n8n

O que você vai aprender nesta página

📚 Objetivos de Aprendizado
  1. Definir o que é splitting (ramificação condicional) no n8n
  2. Identificar por que e quando aplicar essa técnica
  3. Conhecer os nós essenciais – IF, Switch e Merge – e suas configurações críticas
  4. Construir um fluxo multi‑ramo, passo a passo, a partir de um fluxo linear
  5. Controlar a ordem de execução, paralelismo e a opção Always Output Data
  6. Aplicar boas práticas e evitar armadilhas comuns em ambientes de produção

Entendendo o Conceito de Splitting

💡 Analogia Prática

Splitting em workflows é como criar um ponto de decisão em um processo automatizado. Imagine que você é um gerente de atendimento ao cliente que precisa distribuir tickets de suporte: tickets simples vão para o nível 1, problemas técnicos vão para especialistas, e reclamações urgentes vão direto para supervisores.

No n8n, splitting funciona exatamente assim - você cria pontos onde o workflow "decide" qual caminho seguir baseado em condições específicas.

O que é Splitting de Workflow?

No n8n, um workflow percorre naturalmente um único caminho sequencial. Splitting transforma esse caminho em ramificações paralelas: cada item é avaliado por um nó condicional (IF ou Switch) e roteado ao ramo que corresponde aos seus dados.

⚠️ Importante: Não confunda com Split Out

SplittingSplit Out

  • Split Out: Quebra uma lista em itens individuais para processamento em loop
  • Splitting condicional: Mantém o item intacto e decide qual caminho ele seguirá

Por que e quando usar Splitting?

SituaçãoBenefício do Splitting
Filas de suporte com múltiplos SLAsPriorização automática conforme urgência e plano
Campanhas de marketing multilínguesMensagens corretas por país ou segmento sem scripts extras
Processamento de pagamentosDiferenciar rotas de antifraude para valores altos ou clientes novos
Aprovações corporativasAutomação de fluxos de aprovação baseados em valor e categoria
Triagem de leadsDistribuição automática para equipes especializadas

Nós Essenciais para Splitting

FinalidadeSaídasDicas Rápidas
IFDecisão binária
true
,
false
Combine condições com AND/OR; ative Always Output Data se for fazer merge depois
SwitchSeleção multicondicional
Case n
,
Default
Dois modos: Rules (comparação direta) ou Expression (lógica JavaScript)
MergeReunir ramificaçõesEstratégias Wait → All ou Merge By Key garantem dados completos

Implementação Prática: Exemplo Completo

Cenário: Sistema de Aprovação de Despesas

Vamos criar um workflow que automatiza a aprovação de despesas corporativas com base em valor e categoria:

Regras de negócio
  • Despesas até R$ 500: Aprovação automática
  • Despesas R$ 501-2000: Aprovação do supervisor
  • Despesas acima de R$ 2000: Aprovação da diretoria
  • Categoria "Viagem": Sempre vai para RH (independente do valor)

Diagrama Completo do Workflow

Construção Passo a Passo

1. Webhook/Trigger – Receber Dados

Objetivo: O usuário envia um ticket de despesa, disparando o workflow.

Dados de entrada
{
"funcionario": "João Silva",
"valor": 1500.00,
"categoria": "Material de Escritório",
"descricao": "Notebooks para equipe",
"data": "2024-01-15",
"prioridade": "normal",
"plano_suporte": "Premium"
}

Lógica de Execução e Controle

Entendendo a Ordem de Execução

Como o n8n executa ramificações
  • Ordem: O n8n executa o primeiro ramo que finalizar
  • Paralelismo: Ramos são executados em paralelo por padrão
  • Sincronização: Use Merge se precisar aguardar todos os ramos
  • Timeout: Configure timeouts para evitar execuções infinitas

Padrões Avançados de Splitting

Splitting Sequencial (Cascata)

Para lógicas mais complexas, você pode encadear múltiplos splits - veja mais sobre subworkflows:

Conceito Simplificado:

Estrutura em Cascata:

  • Nível 1: Categorização inicial
  • Nível 2: Refinamento por prioridade
  • Nível 3: Decisão final por contexto
Exemplo: Sistema de suporte técnico

Estrutura de Decisão em 3 Níveis:

  1. Primeiro Split: Tipo de problema (Software/Hardware/Rede)
  2. Segundo Split: Criticidade (Baixa/Média/Alta)
  3. Terceiro Split: Cliente (VIP/Standard)

Resultado: 18 combinações possíveis (3 × 3 × 2) com tratamento específico para cada uma

Debugging: Ferramentas e Técnicas

Debugging de Condições

🔍 Técnicas de Debug para Splitting

1. Adicione um Edit Fields (Set) antes do split:

{
  "debug_valor": "{{ $json.categoria }}",
  "debug_tipo": "{{ typeof $json.categoria }}",
  "debug_condicao": "{{ $json.categoria === 'urgente' }}",
  "debug_timestamp": "{{ new Date().toISOString() }}"
}

2. Use Expression Editor para testar condições:

  • Teste expressões isoladamente
  • Verifique tipos de dados
  • Confirme valores antes de aplicar no workflow

3. Ative logging no Code node:

// Log detalhado para debug
console.log('Splitting Debug:', {
  item: $input.item,
  condition: $input.item.json.categoria === 'urgente',
  itemIndex: $itemIndex,
  timestamp: new Date().toISOString()
});

return $input.item;

Ferramentas de Debugging

Ferramentas Built-in:

  • Execution History: Visualize dados em cada node
  • Debug Helper: Insira breakpoints visuais
  • Data Pinning: Congele dados para testes consistentes

Ferramentas Externas:

  • Webhook.site: Para inspecionar payloads HTTP
  • Postman: Para testes manuais de APIs
  • Browser DevTools: Para debugging de expressões JavaScript

Troubleshooting: Problemas Comuns

❌ Problema: Workflow Para na Condição

Sintomas

O workflow executa até o node de splitting e não continua.

Diagnóstico:

  1. Verifique se a condição está retornando o valor esperado
  2. Teste a expressão no Expression Editor
  3. Confirme se há dados na entrada do node

Solução:

Expressão incorreta
{{ $json.valor > "1000" }}  // Comparando número com string

Casos de Uso Comuns

1. E-commerce: Processamento de Pedidos

Para integrar com APIs de pagamento brasileiras, consulte nossa seção sobre integrações BR.

Boas Práticas e Armadilhas

Boas Práticas Essenciais

🎯 Práticas Recomendadas

Nomenclatura e Documentação:

  • Nomeie nós de forma autoexplicativa (
    IF Urgente?
    ,
    SW Plano Suporte
    )
  • Documente regras no Description do nó para facilitar auditorias
  • Use comentários para explicar lógicas complexas

Estrutura e Organização:

  • Evite aninhar IF dentro de IF: prefira Switch quando houver >2 caminhos
  • Split Out antes de splitting quando precisar percorrer cada linha de uma lista separadamente
  • Centralize regras de negócio em nodes dedicados para facilitar manutenção

Testes e Validação:

  • Teste cenários extremos (valores nulos, caminhos sem saída) antes de mover para produção
  • Valide tipos de dados antes de fazer comparações
  • Configure timeouts apropriados para cada tipo de processo

Integração com Sub-workflows

Splitting + Execute Sub-workflow

Para lógicas complexas, combine splitting com Execute Sub-workflow:

Vantagens:

  • Modularidade: Cada sub-workflow é independente e reutilizável
  • Manutenção: Easier debugging e atualizações
  • Performance: Sub-workflows podem rodar em paralelo
  • Organização: Separa lógica complexa em componentes menores

Configuração:

  1. Workflow Principal: Contém o splitting logic
  2. Sub-workflows: Cada um com lógica específica de categoria
  3. Error Handling: Cada sub-workflow pode ter seu próprio tratamento de erro
  4. Workflow Trigger: Para comunicação entre workflows
Exemplo: Dados passados para sub-workflow
// No Execute Sub-workflow node:
{
"categoria": "{{ $json.categoria }}",
"dados_originais": "{{ $json }}",
"workflow_origem": "{{ $workflow.name }}",
"timestamp": "{{ new Date().toISOString() }}"
}

Próximos Passos

Agora que você domina splitting básico, explore:
  1. Merge Nodes: Como reunir fluxos divididos
  2. Error Handling: Tratamento de erros em fluxos condicionais
  3. Looping: Lógica de repetição em workflows
  4. Sub-workflows: Workflows aninhados
  5. Waiting: Controle de tempo e aguardo
  6. Execute Sub-workflow: Modularização avançada

Exercício Prático

Desafio

Crie um workflow de aprovação de férias que:

  • Funcionários CLT: Máximo 30 dias, aprovação do supervisor
  • Funcionários PJ: Sem limite, apenas notificação
  • Períodos de alta temporada: Sempre requer aprovação da diretoria
  • Solicitações com menos de 30 dias de antecedência: Aprovação expressa

Dica: Use Switch aninhados e considere múltiplas condições simultâneas.

Resumo Rápido

🎯 Pontos-Chave para Dominar Splitting

Conceitos Fundamentais:

  • Splitting = usar IF e Switch para criar múltiplos caminhos de execução
  • Escolha IF para decisões binárias; Switch para múltiplos casos
  • Não confunda com Split Out (que quebra listas em itens individuais)

Implementação Prática:

  • Combine ramificações com Merge quando necessário, mantendo integridade dos dados
  • Ative Always Output Data em ramos críticos para evitar execuções "mortas"
  • Configure timeouts e retry policies apropriados

Boas Práticas:

  • Nomeie nós claramente para facilitar manutenção
  • Documente regras complexas no Description
  • Teste cenários extremos antes de produção
  • Use paralelismo para alta performance

Ordem de Execução:

  • O n8n executa ramos em paralelo por padrão
  • Use Merge se precisar aguardar todos os ramos
  • Configure filas Redis/RabbitMQ para processamento distribuído

Fluxo de Aprendizado Recomendado

Com esses fundamentos, você está pronto para projetar workflows n8n que se adaptam dinamicamente a qualquer cenário de negócios, mantendo o código enxuto e a manutenção simples.