Debugging de Workflows
O debugging é uma habilidade essencial para desenvolver workflows robustos e confiáveis no n8n. Esta seção aborda técnicas e ferramentas para identificar e resolver problemas em suas automações.
O que é Debugging?
Debugging é o processo de identificar, analisar e corrigir problemas em workflows. No n8n, isso envolve:
- Identificar onde ocorrem falhas
- Analisar logs de execução
- Testar nodes individualmente
- Corrigir problemas encontrados
- Validar que a correção funciona
Por que Debugging é Importante?
- Confiabilidade: Workflows funcionam corretamente
- Performance: Identifica gargalos e otimizações
- Manutenção: Facilita atualizações futuras
- Produtividade: Reduz tempo gasto com problemas
Ferramentas de Debugging
Execution Log
O Execution Log é sua principal ferramenta de debugging:
Como Acessar
- Execute o workflow
- Clique em "View Execution"
- Navegue pelas abas de cada node
- Analise os dados de entrada e saída
Informações Disponíveis
- Input Data: Dados recebidos pelo node
- Output Data: Dados enviados pelo node
- Error Details: Detalhes de erros (se houver)
- Performance: Tempo de execução
- Status: Estado da execução
Data Viewer
O Data Viewer permite visualizar dados em tempo real:
Recursos
- Estrutura de Dados: Visualização hierárquica
- Tipos de Dados: Identificação automática
- Valores: Dados reais em cada campo
- Filtros: Busca e filtragem de dados
Como Usar
- Clique em um node após execução
- Abra a aba "Output"
- Use o Data Viewer para explorar dados
- Identifique problemas de estrutura
Step-by-Step Execution
Execute workflows node por node:
Processo
- Desative nodes que não precisa testar
- Execute um node por vez
- Verifique dados de entrada e saída
- Corrija problemas encontrados
- Ative próximo node e repita
Benefícios
- Isola problemas em nodes específicos
- Valida dados em cada etapa
- Testa lógica incrementalmente
- Reduz complexidade do debugging
Técnicas de Debugging
1. Logging com Expressões
Use expressões JavaScript para logging:
// Log simples
console.log('Dados recebidos:', $json);
// Log com contexto
console.log('Processando usuário:', $json.name, 'ID:', $json.id);
// Log condicional
if ($json.status === 'error') {
console.log('Erro detectado:', $json.message);
}
2. Validação de Dados
Valide dados em cada etapa:
// Verificar se campo existe
if (!$json.email) {
throw new Error('Campo email não encontrado');
}
// Validar formato
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test($json.email)) {
throw new Error('Email inválido');
}
// Verificar tipo de dados
if (typeof $json.age !== 'number') {
throw new Error('Idade deve ser um número');
}
3. Teste de Credenciais
Teste conectividade separadamente:
- Vá para Credentials
- Selecione a credencial
- Clique em "Test"
- Verifique se a conexão funciona
4. Simulação de Dados
Use Data Pinning para testes:
- Execute node com dados reais
- Pine os dados de saída
- Desenvolva lógica com dados fixos
- Teste sem pinning antes de publicar
Problemas Comuns
Erros de Conectividade
Sintomas
- Timeout errors
- Connection refused
- SSL certificate errors
- Rate limiting
Soluções
- Verifique credenciais estão corretas
- Teste conectividade de rede
- Verifique rate limits da API
- Ajuste timeouts se necessário
Erros de Dados
Sintomas
- Missing fields
- Wrong data types
- Invalid formats
- Null values
Soluções
- Valide estrutura dos dados
- Use transformações para corrigir
- Adicione validações nos nodes
- Trate valores nulos adequadamente
Erros de Lógica
Sintomas
- Workflow não executa como esperado
- Condições não funcionam
- Loops infinitos
- Dados incorretos
Soluções
- Revise expressões JavaScript
- Teste condições individualmente
- Verifique ordem de execução
- Use step-by-step execution
Debugging Avançado
Performance Debugging
Identificar Gargalos
- Analise tempos de execução
- Identifique nodes lentos
- Verifique volume de dados
- Otimize queries e requisições
Técnicas de Otimização
- Processamento em lotes
- Cache de dados
- Filtros antecipados
- Paralelização quando possível
Debugging de Workflows Complexos
Estratégias
- Quebre em subworkflows
- Teste cada parte separadamente
- Use logs estruturados
- Documente dependências
Ferramentas
- Subworkflows para modularização
- Error triggers para tratamento
- Data pinning para desenvolvimento
- Version control para mudanças
Dicas Pro
Workflow de Debugging
- Reproduza o problema consistentemente
- Isole a causa raiz
- Teste soluções incrementais
- Valide que a correção funciona
- Documente a solução
Prevenção de Problemas
- Use validações em nodes críticos
- Implemente error handling robusto
- Teste com dados variados
- Monitore execuções em produção
- Mantenha logs estruturados
Ferramentas Externas
- Browser DevTools para expressões JavaScript
- API testing tools (Postman, Insomnia)
- Log aggregation para produção
- Monitoring tools para alertas
Próximos Passos
- Error Handling - Tratamento robusto de erros
- Data Pinning - Desenvolvimento com dados fixos
- Performance Optimization - Otimizar workflows
Recursos Úteis
Documentação Relacionada
- Error Handling - Tratamento de erros
- Execution Order - Ordem de execução
- Data Transformation - Manipulação de dados
Links Externos
- n8n Community - Fórum para dúvidas
- GitHub Issues - Reportar bugs
- Debugging Guide - Guia oficial