Pular para o conteúdo principal

Criar e Editar Workflows

info

Esta página da documentação foi validada tecnicamente e didaticamente.

Criar e editar workflows

Criar workflows eficientes no n8n requer compreensão dos conceitos fundamentais, boas práticas de design e técnicas avançadas de organização. Este guia aborda todo o processo de criação e edição.

Conceitos fundamentais

O que é um workflow

Um workflow no n8n é uma sequência automatizada de operações que:

  • Processa dados de uma ou múltiplas fontes
  • Aplica lógica condicional e transformações
  • Executa ações em sistemas externos
  • Retorna resultados ou continua o processamento

Estrutura básica

mermaid\ngraph LR\n    A[Trigger] --> B[Processamento]\n    B --> C[Lógica Condicional]\n    C --> D[Ação Final]\n    C --> E[Ação Alternativa]\n
\n\n## Criando seu primeiro workflow\n\n### Passo 1: Escolher o trigger\n\nO trigger determina quando e como o workflow será executado:\n\n#### Triggers comuns\n\n- Manual Trigger: Execução manual via interface\n- Schedule Trigger: Execução em intervalos programados\n- Webhook: Execução via requisição HTTP\n- App Triggers: Eventos de aplicações externas\n\n#### Exemplo schedule trigger\n\n
json\n{\n  "rule": {\n    "interval": [\n      {\n        "field": "hour",\n        "value": 9\n      },\n      {\n        "field": "minute",\n        "value": 0\n      }\n    ]\n  }\n}\n
\n\n### Passo 2: Adicionar nodes de processamento\n\nNodes processam e transformam os dados:\n\n#### Tipos de processamento\n\n- Data Transformation: Modificar estrutura dos dados\n- Data Filtering: Filtrar registros específicos\n- Data Enrichment: Adicionar informações externas\n- Data Validation: Validar integridade dos dados\n\n#### Exemplo set node\n\n
json\n{\n  "values": {\n    "string": [\n      {\n        "name": "status",\n        "value": "processed"\n      },\n      {\n        "name": "timestamp",\n        "value": "={{$now}}"\n      }\n    ]\n  }\n}\n
\n\n### Passo 3: Implementar lógica condicional\n\nUse nodes de controle de fluxo para criar caminhos condicionais:\n\n#### If node\n\n
json\n{\n  "conditions": {\n    "string": [\n      {\n        "value1": "={{$json.status}}",\n        "operation": "equals",\n        "value2": "active"\n      }\n    ]\n  }\n}\n
\n\n#### Switch node\n\n
json\n{\n  "rules": {\n    "rules": [\n      {\n        "conditions": {\n          "string": [\n            {\n              "value1": "={{$json.priority}}",\n              "operation": "equals",\n              "value2": "high"\n            }\n          ]\n        },\n        "outputIndex": 0\n      }\n    ]\n  }\n}\n
\n\n### Passo 4: Executar ações finais\n\nNodes de ação realizam operações em sistemas externos:\n\n#### Exemplos de ações\n\n- Send Email: Enviar notificações\n- HTTP Request: Chamar APIs externas\n- Database Operations: Salvar/atualizar dados\n- File Operations: Criar/modificar arquivos\n\n## Técnicas avançadas de edição\n\n### Organização de workflows\n\n#### 1. Nomenclatura consistente\n\n
yaml\n# Boas práticas de nomenclatura\nWorkflow: "Processamento de Pedidos - E-commerce"\nNodes:\n  - "Trigger - Novos Pedidos"\n  - "Validação - Dados do Cliente"\n  - "Processamento - Cálculo de Frete"\n  - "Ação - Envio de Confirmação"\n
\n\n#### 2. Estrutura modular\n\nDivida workflows complexos em módulos menores:\n\n
mermaid\ngraph TD\n    A[Trigger Principal] --> B[Módulo Validação]\n    B --> C[Módulo Processamento]\n    C --> D[Módulo Notificação]\n    C --> E[Módulo Relatórios]\n
\n\n#### 3. Comentários e documentação\n\nUse comentários para explicar lógica complexa:\n\n
json\n{\n  "notes": "Este node calcula o desconto baseado no histórico do cliente e categoria do produto"\n}\n
\n\n### Reutilização de código\n\n#### 1. Templates\n\nCrie templates para workflows comuns:\n\n- Data Processing Templates\n- Notification Templates\n- Integration Templates\n- Error Handling Templates\n\n#### 2. Subworkflows\n\nUse subworkflows para lógica reutilizável:\n\n
json\n{\n  "workflowId": "subworkflow-id",\n  "parameters": {\n    "inputData": "={{$json}}"\n  }\n}\n
\n\n#### 3. Code nodes reutilizáveis\n\nCrie funções JavaScript reutilizáveis:\n\n
javascript\n// Função para validação de email\nfunction validateEmail(email) {\n  const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;\n  return regex.test(email);\n}\n\n// Função para formatação de data\nfunction formatDate(date, format = 'DD/MM/YYYY') {\n  return moment(date).format(format);\n}\n
\n\n## Melhores práticas\n\n### Performance\n\n1. Batch Processing: Processe dados em lotes\n2. Rate Limiting: Respeite limites de API\n3. Caching: Use cache para dados estáticos\n4. Optimization: Otimize queries e operações\n\n### Confiabilidade\n\n1. Error Handling: Implemente tratamento de erros\n2. Retry Logic: Configure tentativas automáticas\n3. Monitoring: Monitore execuções\n4. Backup: Faça backup de workflows importantes\n\n### Manutenibilidade\n\n1. Version Control: Use controle de versão\n2. Documentation: Documente workflows complexos\n3. Testing: Teste workflows regularmente\n4. Refactoring: Refatore workflows antigos\n\n## Como debugging e teste\n\n### Ferramentas de debug\n\n1. Execution Inspector: Analise execuções detalhadamente\n2. Data Preview: Visualize dados em cada node\n3. Error Logs: Analise logs de erro\n4. Performance Monitor: Monitore performance\n\n### Estratégias de teste\n\n1. Unit Testing: Teste nodes individualmente\n2. Integration Testing: Teste workflows completos\n3. Load Testing: Teste com grandes volumes\n4. Error Testing: Teste cenários de erro\n\n### Exemplo workflow de teste\n\n
mermaid\ngraph LR\n    A[Test Data] --> B[Process Node]\n    B --> C[Validation]\n    C --> D[Expected Result]\n    C --> E[Error Handler]\n
\n\n## Workflows complexos\n\n### Padrões de design\n\n#### 1. Fan-out/Fan-in\n\n
mermaid\ngraph TD\n    A[Trigger] --> B[Split Data]\n    B --> C[Process 1]\n    B --> D[Process 2]\n    B --> E[Process 3]\n    C --> F[Merge Results]\n    D --> F\n    E --> F\n    F --> G[Final Action]\n
\n\n#### 2. Pipeline Processing\n\n
mermaid\ngraph LR\n    A[Input] --> B[Stage 1]\n    B --> C[Stage 2]\n    C --> D[Stage 3]\n    D --> E[Output]\n
\n\n#### 3. Event-driven Architecture\n\n
mermaid\ngraph TD\n    A[Event Source] --> B[Event Router]\n    B --> C[Handler 1]\n    B --> D[Handler 2]\n    B --> E[Handler 3]\n
\n\n### Exemplo workflow de e-commerce\n\n
mermaid\ngraph TD\n    A[Novo Pedido] --> B[Validar Cliente]\n    B --> C{Cliente Válido?}\n    C -->|Sim| D[Calcular Frete]\n    C -->|Não| E[Notificar Admin]\n    D --> F[Processar Pagamento]\n    F --> G{Pagamento OK?}\n    G -->|Sim| H[Enviar Confirmação]\n    G -->|Não| I[Notificar Cliente]\n    H --> J[Atualizar Estoque]\n    I --> K[Registrar Falha]\n
\n\n## Configurações avançadas\n\n### Variáveis de ambiente\n\n
json\n{\n  "variables": {\n    "API_BASE_URL": "https://api.exemplo.com",\n    "MAX_RETRIES": 3,\n    "TIMEOUT": 30000\n  }\n}\n
\n\n### Configurações de execução\n\n
json\n{\n  "executionOrder": "v1",\n  "saveExecutionProgress": true,\n  "saveManualExecutions": true,\n  "callerPolicy": "workflowsFromSameOwner"\n}\n
\n\n### Permissões e segurança\n\n
json\n{\n  "permissions": {\n    "owner": "user@exemplo.com",\n    "sharedWith": [\n      {\n        "user": "admin@exemplo.com",\n        "role": "editor"\n      }\n    ]\n  }\n}\n

Troubleshooting

Problemas comuns

  1. Connection Issues: Verificar credenciais e conectividade
  2. Data Format Errors: Validar formato dos dados
  3. Rate Limit Exceeded: Implementar delays e retry logic
  4. Memory Issues: Otimizar processamento de dados

Soluções

  1. Error Handling Nodes: Implementar tratamento robusto
  2. Retry Mechanisms: Configurar tentativas automáticas
  3. Monitoring: Implementar alertas e logs
  4. Documentation: Manter documentação atualizada

Recursos adicionais

Documentação oficial

Templates e exemplos

Ferramentas de desenvolvimento


Próximos Passos: