Pular para o conteúdo principal

Configurações de Workflow

Configurações de Workflow

As configurações de workflow permitem personalizar o comportamento, performance e aparência dos seus workflows no n8n. Esta seção aborda todas as opções de configuração disponíveis para otimizar seus workflows.

Visão Geral

As configurações de workflow oferecem controle granular sobre como seus workflows funcionam, incluindo:

  • Configurações de execução e performance
  • Configurações de dados e mapeamento
  • Configurações de interface e visualização
  • Configurações de segurança e permissões
  • Configurações de notificação e alertas

Como acessar as configurações

Interface web

Para acessar as configurações de um workflow:

  1. Abra o workflow no editor
  2. Clique no ícone de configurações (⚙️) no canto superior direito
  3. Selecione "Workflow Settings" no menu

Configurações globais

Algumas configurações podem ser definidas globalmente:

bash\n# Configurações de ambiente\nexport N8N_WORKFLOW_TIMEOUT=3600000\nexport N8N_WORKFLOW_MAX_EXECUTIONS=1000\nexport N8N_WORKFLOW_SAVE_DATA_EXECUTION=true\nexport N8N_WORKFLOW_SAVE_DATA_EXECUTION_ALL=false\n
\n\n## Configurações de execução\n\n### Timeout de execução\n\nDefina o tempo máximo que um workflow pode executar:\n\n
javascript\n// Configurar timeout no workflow\n{\n  "settings": {\n    "executionTimeout": 3600000, // 1 hora em milissegundos\n    "executionTimeoutWarning": 3000000 // Aviso 5 minutos antes\n  }\n}\n
\n\n### Limite de execuções\n\nConfigure limites para evitar sobrecarga:\n\n
javascript\n// Configurar limites de execução\n{\n  "settings": {\n    "maxExecutions": 1000, // Máximo de execuções por dia\n    "maxExecutionsPerMinute": 10, // Limite por minuto\n    "retryOnFail": true, // Tentar novamente em caso de falha\n    "maxRetries": 3 // Número máximo de tentativas\n  }\n}\n
\n\n## Configurações de performance\n\nOtimize a performance do workflow:\n\n
javascript\n// Configurações de performance\n{\n  "settings": {\n    "saveExecutionProgress": true, // Salvar progresso\n    "saveDataOnSuccess": true, // Salvar dados de sucesso\n    "saveDataOnError": true, // Salvar dados de erro\n    "saveManualExecutions": true, // Salvar execuções manuais\n    "saveDataS3": false, // Salvar dados no S3\n    "saveDataS3Bucket": "n8n-executions",\n    "saveDataS3Region": "us-east-1"\n  }\n}\n
\n\n## Configurações de dados\n\n### Mapeamento de dados\n\nConfigure como os dados são processados:\n\n
javascript\n// Configurações de mapeamento\n{\n  "settings": {\n    "dataMapping": {\n      "includeEmptyFields": false, // Incluir campos vazios\n      "includeNullValues": false, // Incluir valores nulos\n      "maxDataSize": 1048576, // Tamanho máximo de dados (1MB)\n      "compressData": true, // Comprimir dados\n      "encryptSensitiveData": true // Criptografar dados sensíveis\n    }\n  }\n}\n
\n\n### Validação de dados\n\nConfigure validações automáticas:\n\n
javascript\n// Configurações de validação\n{\n  "settings": {\n    "validation": {\n      "validateInputData": true, // Validar dados de entrada\n      "validateOutputData": true, // Validar dados de saída\n      "strictMode": false, // Modo estrito\n      "customValidators": [\n        {\n          "field": "email",\n          "validator": "email",\n          "required": true\n        },\n        {\n          "field": "cpf",\n          "validator": "cpf",\n          "required": true\n        }\n      ]\n    }\n  }\n}\n
\n\n### Cache de dados\n\nConfigure cache para melhorar performance:\n\n
javascript\n// Configurações de cache\n{\n  "settings": {\n    "cache": {\n      "enabled": true, // Habilitar cache\n      "ttl": 3600000, // Time to live (1 hora)\n      "maxSize": 100, // Máximo de itens em cache\n      "persistent": false, // Cache persistente\n      "cacheDirectory": "/tmp/n8n-cache"\n    }\n  }\n}\n
\n\n## Configurações de interface\n\n### Visualização do workflow\n\nPersonalize a aparência do workflow:\n\n
javascript\n// Configurações de visualização\n{\n  "settings": {\n    "ui": {\n      "showNodeDetails": true, // Mostrar detalhes dos nodes\n      "showExecutionData": true, // Mostrar dados de execução\n      "showNodeStatus": true, // Mostrar status dos nodes\n      "autoLayout": true, // Layout automático\n      "compactMode": false, // Modo compacto\n      "theme": "light", // Tema (light/dark)\n      "zoomLevel": 100 // Nível de zoom\n    }\n  }\n}\n
\n\n### Configurações de navegação\n\nConfigure a navegação no editor:\n\n
javascript\n// Configurações de navegação\n{\n  "settings": {\n    "navigation": {\n      "enableKeyboardShortcuts": true, // Atalhos de teclado\n      "enableMouseGestures": true, // Gestos do mouse\n      "enableAutoSave": true, // Salvamento automático\n      "autoSaveInterval": 30000, // Intervalo de salvamento (30s)\n      "showUnsavedChangesWarning": true // Aviso de mudanças não salvas\n    }\n  }\n}\n
\n\n## Configurações de segurança\n\n### Controle de acesso\n\nConfigure permissões e acesso:\n\n
javascript\n// Configurações de segurança\n{\n  "settings": {\n    "security": {\n      "requireAuthentication": true, // Requer autenticação\n      "allowedUsers": ["admin", "editor"], // Usuários permitidos\n      "allowedRoles": ["owner", "admin"], // Roles permitidas\n      "restrictExecution": false, // Restringir execução\n      "auditLog": true, // Log de auditoria\n      "encryptCredentials": true // Criptografar credenciais\n    }\n  }\n}\n
\n\n### Configurações de rede\n\nConfigure acesso de rede:\n\n
javascript\n// Configurações de rede\n{\n  "settings": {\n    "network": {\n      "allowedHosts": ["api.exemplo.com", "webhook.exemplo.com"],\n      "blockedHosts": ["malicious-site.com"],\n      "proxyEnabled": false,\n      "proxyUrl": "http://proxy:8080",\n      "timeout": 30000, // Timeout de rede (30s)\n      "retryOnNetworkError": true\n    }\n  }\n}\n
\n\n## Configurações de notificação\n\n### Alertas e notificações\n\nConfigure notificações automáticas:\n\n
javascript\n// Configurações de notificação\n{\n  "settings": {\n    "notifications": {\n      "onSuccess": {\n        "enabled": true,\n        "channels": ["email", "slack"],\n        "recipients": ["admin@empresa.com"]\n      },\n      "onError": {\n        "enabled": true,\n        "channels": ["email", "slack", "sms"],\n        "recipients": ["admin@empresa.com", "dev@empresa.com"]\n      },\n      "onTimeout": {\n        "enabled": true,\n        "channels": ["email"],\n        "recipients": ["admin@empresa.com"]\n      }\n    }\n  }\n}\n
\n\n### Configurações de email\n\nConfigure notificações por email:\n\n
javascript\n// Configurações de email\n{\n  "settings": {\n    "email": {\n      "smtp": {\n        "host": "smtp.gmail.com",\n        "port": 587,\n        "secure": true,\n        "auth": {\n          "user": "n8n@empresa.com",\n          "pass": "senha-segura"\n        }\n      },\n      "from": "n8n@empresa.com",\n      "replyTo": "suporte@empresa.com",\n      "template": {\n        "success": "Workflow executado com sucesso",\n        "error": "Erro na execução do workflow",\n        "timeout": "Workflow excedeu o tempo limite"\n      }\n    }\n  }\n}\n
\n\n## Configurações de monitoramento\n\n### Métricas e analytics\n\nConfigure coleta de métricas:\n\n
javascript\n// Configurações de monitoramento\n{\n  "settings": {\n    "monitoring": {\n      "enabled": true,\n      "metrics": {\n        "executionTime": true,\n        "successRate": true,\n        "errorRate": true,\n        "dataVolume": true,\n        "resourceUsage": true\n      },\n      "alerts": {\n        "highErrorRate": {\n          "threshold": 0.1, // 10% de erro\n          "action": "notify"\n        },\n        "slowExecution": {\n          "threshold": 300000, // 5 minutos\n          "action": "notify"\n        }\n      }\n    }\n  }\n}\n
\n\n### Logs e debugging\n\nConfigure logs detalhados:\n\n
javascript\n// Configurações de logs\n{\n  "settings": {\n    "logging": {\n      "level": "info", // debug, info, warn, error\n      "includeExecutionData": true,\n      "includeNodeData": true,\n      "includeTimestamps": true,\n      "logToFile": true,\n      "logFile": "/var/log/n8n/workflow.log",\n      "maxLogSize": 10485760, // 10MB\n      "maxLogFiles": 5\n    }\n  }\n}\n
\n\n## Configurações avançadas\n\n### Configurações de banco de dados\n\nConfigure persistência de dados:\n\n
javascript\n// Configurações de banco de dados\n{\n  "settings": {\n    "database": {\n      "type": "postgresql", // postgresql, mysql, sqlite\n      "host": "localhost",\n      "port": 5432,\n      "database": "n8n",\n      "username": "n8n_user",\n      "password": "senha-segura",\n      "ssl": true,\n      "pool": {\n        "min": 2,\n        "max": 10,\n        "acquireTimeoutMillis": 30000,\n        "createTimeoutMillis": 30000,\n        "destroyTimeoutMillis": 5000,\n        "idleTimeoutMillis": 30000,\n        "reapIntervalMillis": 1000,\n        "createRetryIntervalMillis": 200\n      }\n    }\n  }\n}\n
\n\n### Configurações de filas\n\nConfigure processamento em fila:\n\n
javascript\n// Configurações de fila\n{\n  "settings": {\n    "queue": {\n      "enabled": true,\n      "type": "redis", // redis, bull, bee-queue\n      "redis": {\n        "host": "localhost",\n        "port": 6379,\n        "password": "senha-redis",\n        "db": 0\n      },\n      "concurrency": 5, // Execuções simultâneas\n      "retryAttempts": 3,\n      "retryDelay": 5000\n    }\n  }\n}\n
\n\n## Configurações específicas para Brasil\n\n### Configurações de LGPD\n\nConfigure conformidade com LGPD:\n\n
javascript\n// Configurações de LGPD\n{\n  "settings": {\n    "lgpd": {\n      "enabled": true,\n      "dataRetention": {\n        "executionData": 90, // Dias para reter dados\n        "logs": 365, // Dias para reter logs\n        "userData": 730 // Dias para reter dados de usuário\n      },\n      "dataMasking": {\n        "enabled": true,\n        "fields": ["cpf", "cnpj", "email", "telefone"],\n        "maskPattern": "***"\n      },\n      "consentTracking": {\n        "enabled": true,\n        "requireConsent": true,\n        "consentExpiry": 365 // Dias para expirar consentimento\n      }\n    }\n  }\n}\n
\n\n### Configurações de moeda\n\nConfigure para Real brasileiro:\n\n
javascript\n// Configurações de moeda\n{\n  "settings": {\n    "currency": {\n      "default": "BRL",\n      "format": {\n        "symbol": "R$",\n        "position": "before",\n        "decimal": ",",\n        "thousands": ".",\n        "precision": 2\n      },\n      "exchangeRates": {\n        "enabled": true,\n        "api": "https://api.exchangerate-api.com/v4/latest/BRL",\n        "updateInterval": 3600000 // 1 hora\n      }\n    }\n  }\n}\n
\n\n## Aplicando configurações\n\n### Via interface\n\n1. Abra as configurações do workflow\n2. Navegue pelas abas de configuração\n3. Modifique os valores conforme necessário\n4. Clique em "Save" para aplicar\n\n### Via API JavaScript\n\nAtualizar configurações via API:\n\n
javascript\nconst atualizarConfiguracoes = async (workflowId, configuracoes) => {\n  const response = await fetch(`/api/v1/workflows/${workflowId}/settings`, {\n    method: 'PUT',\n    headers: {\n      'Content-Type': 'application/json',\n      'Authorization': 'Bearer YOUR_API_KEY'\n    },\n    body: JSON.stringify(configuracoes)\n  });\n  \n  return response.json();\n};\n\n// Exemplo de uso\nconst configuracoes = {\n  executionTimeout: 1800000,\n  saveExecutionProgress: true,\n  notifications: {\n    onError: {\n      enabled: true,\n      channels: ['email'],\n      recipients: ['admin@empresa.com']\n    }\n  }\n};\n\nawait atualizarConfiguracoes('workflow-123', configuracoes);\n
\n\n### Via variáveis de ambiente\n\n
bash\n# Configurações globais via ambiente\nexport N8N_WORKFLOW_DEFAULT_TIMEOUT=1800000\nexport N8N_WORKFLOW_SAVE_EXECUTION_PROGRESS=true\nexport N8N_WORKFLOW_NOTIFICATIONS_ON_ERROR=true\nexport N8N_WORKFLOW_NOTIFICATIONS_EMAIL=admin@empresa.com\n

Boas práticas

Configurações de performance

  • Configure timeouts adequados para evitar travamentos
  • Use cache para dados frequentemente acessados
  • Limite execuções simultâneas para evitar sobrecarga
  • Monitore uso de recursos regularmente

Configurações de segurança

  • Habilite autenticação sempre que possível
  • Criptografe dados sensíveis automaticamente
  • Configure logs de auditoria para compliance
  • Restrinja acesso por usuário e role

Configurações de monitoramento

  • Configure alertas proativos para problemas
  • Monitore métricas importantes como tempo de execução
  • Configure logs detalhados para debugging
  • Implemente dashboards de monitoramento

Troubleshooting

Problemas comuns

Workflow não executa:

  • Verificar configurações de timeout
  • Verificar permissões de usuário
  • Verificar configurações de rede

Performance lenta:

  • Ajustar configurações de cache
  • Reduzir execuções simultâneas
  • Otimizar configurações de banco de dados

Notificações não funcionam:

  • Verificar configurações de email/SMTP
  • Verificar configurações de webhook
  • Verificar permissões de API

Recursos adicionais

Documentação oficial

Ferramentas relacionadas

  • n8n CLI: Configuração via linha de comando
  • n8n API: Configuração programática
  • n8n Docker: Configuração via variáveis de ambiente

Próximo: Compartilhamento de Workflows - Compartilhe workflows com sua equipe