n8n base
Construa um workflow n8n que recebe eventos de pedido, valida campos, consulta um serviço de leitura e separa aceitos de pendências. Use dados fictícios e registre a versão da instalação. Você começará pelo teste local do tratamento de itens e depois montará o fluxo manualmente no editor, evitando importar um JSON cuja compatibilidade não foi verificada.
A entrega deve conter o desenho, a configuração dos triggers e execuções com dois pedidos distintos, uma entrada inválida e uma repetição. Também precisa mostrar falha HTTP e seu tratamento. O objetivo é compreender dados e estados de execução, não somente apresentar uma captura do canvas sem o conteúdo que atravessou cada node.
n8nAPIsAo terminar esta aula
- Dois itens diferentes detectam erros escondidos de expressão.
- Teste e produção do Webhook precisam de evidências próprias.
- Deduplicação durável prepara o workflow para retries e reexecuções.
Antes de continuar: Leitura: n8n base
Prepare os dados e valide por item
FundamentosSalve itens.cjs e execute. Confira aceito, duplicado e invalido. Crie dois pedidos válidos com identificadores diferentes e acompanhe seus valores em todas as transformações. No n8n, comece com execução manual e entradas fictícias, acrescente um node de transformação para normalizar os campos e uma condição para validar. Inspecione a entrada e a saída do node. Uma expressão que usa sempre o primeiro item pode produzir dados corretos para E1 e errados para E2, por isso o par de entradas é obrigatório.
Acrescente um identificador de correlação separado do identificador de execução do n8n. O primeiro identifica o pedido ou evento; o segundo identifica uma tentativa do workflow. Uma reexecução cria outra tentativa, mas não deve significar outro efeito comercial. Configure um registro durável para deduplicação na etapa integrada, com unicidade da operação. O Set local serve somente para o teste dentro do processo e deve ser descrito assim. Teste concorrência quando o armazenamento permitir mais de um worker.
Configure Webhook e Schedule de forma distinta
APIsAdicione Webhook com método e caminho definidos e proteção apropriada ao ambiente. Use a URL de teste conforme o editor e envie uma entrada fictícia. Depois, ative o workflow quando a configuração estiver pronta e confira a URL de produção da instalação. Observe se a resposta confirma recebimento ou conclusão. Escreva esse contrato para o chamador. Não trate o botão de execução manual como prova de que o endpoint externo está disponível.
Crie um workflow separado ou um trigger de agendamento para uma consulta diária fictícia, registrando timezone America/Cuiaba. Confira o próximo disparo e uma execução agendada real quando possível. Defina a identidade do período, como data da consulta, e a política de sobreposição. Se a execução anterior ainda estiver ativa, decida se o novo disparo espera, ignora ou inicia outra operação permitida. Essa escolha precisa ser demonstrada ou declarada como limite pendente no laboratório, não deixada ao acaso da duração dos nodes.
Conecte HTTP, condição e lote
FundamentosConfigure HTTP Request com base de URL fixa e credencial de teste, mantendo tokens fora dos campos comuns. Envie o identificador validado como parâmetro e preserve a associação com o pedido. Capture resposta nominal e uma resposta malformada que não contém o campo esperado. Direcione a segunda para pendência. Acrescente uma condição sobre o valor validado e um caminho de rejeição com motivo explícito, para que a saída não pareça uma conclusão comercial bem-sucedida.
Envie vários itens e confira o processamento padrão dos nodes antes de adicionar loop. Se precisar de lotes, use o mecanismo da versão instalada e marque condição de saída. Conte requisições por item para detectar duplicação. Faça uma falha acontecer no segundo item e conserve a evidência do primeiro concluído. Reexecutar todo o fluxo pode chamar novamente o primeiro; explique como a identidade estável e o registro durável impedem repetir efeitos quando eles forem acrescentados.
Provoque erro e inspecione a execução
FundamentosSimule indisponibilidade transitória e configure tentativas limitadas onde a operação de leitura permite. Simule argumento inválido e confirme que não recebe insistência inútil. Acrescente tratamento ou workflow de erro conforme a versão, registrando node, correlação e motivo sem segredo. Inspecione a execução salva e compare dados antes e depois da falha. Seu README deve incluir versões, triggers, timezone, caminhos, limites e evidências. Caso só tenha executado o script local, marque o workflow como ainda não validado na instalação.
Exercício aplicado
Receba eventos E1/E2, consulte dados por HTTP e encaminhe entradas inválidas para pendência. O mesmo evento pode chegar duas vezes e o agendamento diário não deve repetir o trabalho do período sem controle.
- Execute o validador local com nominal, inválido e duplicado.
- Monte o fluxo na versão instalada e acompanhe dois itens distintos.
- Teste Webhook e timezone do Schedule com evidências próprias.
- Injete falha HTTP e documente tratamento, retry e deduplicação.
Abrir resolução comentada
O fluxo valida campos antes da consulta, preserva correlação e separa pendência de aceitação. A repetição usa a identidade de evento, não o identificador de execução. Os dois pedidos distintos verificam que expressões não reutilizam indevidamente o primeiro item.
Webhook é validado pela chamada ao endpoint e Schedule pelo disparo no timezone configurado. O erro HTTP aparece no histórico e recebe retry somente quando transitório e seguro. O relatório deve mostrar as execuções reais do editor para completar a entrega, além do resultado local do validador.
const vistos=new Set();
function processar(e) {
if(typeof e.id!=='string'||!Number.isFinite(e.valor)||e.valor<0)return {status:'invalido',id:e.id};
if(vistos.has(e.id))return {status:'duplicado',id:e.id};
vistos.add(e.id);return {status:'aceito',id:e.id,valor:e.valor};
}
console.log([{id:'E1',valor:100},{id:'E1',valor:100},{id:'E2',valor:-1}].map(processar));Como conferir seu resultado
- Dados de E1 e E2 não se misturam.
- Entrada inválida termina com motivo explícito.
- Repetição não gera outro efeito e falhas são observáveis.
Aplique em um problema novo
Primeiro resolva sem consultar a resposta. Explique suas decisões e guarde a evidência. A conclusão de leitura é independente desta autoavaliação.
Confira seus pré-requisitos
- Entender itens/expressões/triggers.
- Separar correlação e execução do workflow.
Pedidos E9=100, E10=200 passam validação. HTTP de E9 conclui e E10 falha transitoriamente; workflow é reexecutado. Schedule usa America/Cuiaba; execução foi apenas manual. Resolva.
Conferir raciocínio e critérios de domínio
E9 conserva 100 e E10 conserva 200 em cada node; expressão global do primeiro item que transforma E10 em100 falha o contrato.
O replay de E9 recupera resultado concluído e não duplica efeito. E10 admite retry limitado de leitura; erro de argumento não receberia a mesma política.
Webhook e disparo agendado permanecem não validados, pois só houve execução manual. O timezone esperado não é evidência de um disparo observado.
Evidências para autoavaliação ou revisão por pares
- Associação por item: E9 conserva 100 e E10 conserva 200 em cada node; expressão global do primeiro item que transforma E10 em100 falha o contrato.
- Replay e retry: O replay de E9 recupera resultado concluído e não duplica efeito. E10 admite retry limitado de leitura; erro de argumento não receberia a mesma política.
- Evidência do agendamento: Webhook e disparo agendado permanecem não validados, pois só houve execução manual. O timezone esperado não é evidência de um disparo observado.
Um erro frequente
Adicionar loop sempre é necessário para vários itens.
Muitos nodes já processam itens; loop depende do contrato e batching.
Teste sua compreensão
Responda com suas palavras antes de abrir o comentário. Saber explicar uma decisão é parte do domínio.
1. Um loop é necessário para todo conjunto de itens?
Não. Muitos nodes já processam os itens recebidos.
Verifique o comportamento para evitar chamadas duplicadas.
2. Executar manualmente prova o Schedule?
Não. É necessário conferir horário, timezone e ativação.
O trigger temporal é uma condição diferente da execução manual.
3. Retry de node e reexecutar workflow são iguais?
Não. Podem repetir etapas diferentes.
A identidade de operação deve proteger efeitos em ambos os casos.
Seu progresso fica salvo neste navegador. Concluir a leitura não substitui demonstrar o domínio nos exercícios.
Referências e aprofundamento
Documentação oficial e trabalhos originais. As referências registram o escopo e as limitações para você conferir o que sustentam.
- Work with nodes
n8n • consulta: 2026-10-06
n8nTipos de nó, configuração, Retry On Fail e comportamento de erro.
Limites: Retries exigem limites e idempotência; Always Output Data em IF pode causar loop infinito.
- Create and edit credentials
n8n • consulta: 2026-10-06
n8nConfigurar credenciais para autenticar integrações.
Limites: Requer contas dos serviços; limitar permissões e proteger exportação/configuração.
- Expressions for data transformation
n8n • consulta: 2026-10-06
n8nExpressões, dados dinâmicos e transformações.
Limites: Validar valores ausentes e tipos; expressões não são prompts de agente.
- Webhook
n8n • consulta: 2026-10-06
n8nAPIsURLs de teste/produção, métodos, autenticação e resposta de webhook.
Limites: Exposição pública requer autenticação apropriada; revisar correlação e duplicidade de eventos.
- Schedule Trigger
n8n • consulta: 2026-10-06
n8nIntervalos/cron e timezone em workflows agendados.
Limites: Workflow precisa de publicação/ativação conforme versão; timezone deve ser explícito.
- HTTP Request
n8n • consulta: 2026-10-06
n8nMétodos, URLs, auth, body, paginação e tratamento da resposta HTTP.
Limites: Rate limits, timeouts e idempotência dependem também da API chamada.
- Split with conditionals
n8n • consulta: 2026-10-06
n8nIf e Switch para rotas determinísticas.
Limites: Testar ausência de dados e todos os ramos.
- Loop
n8n • consulta: 2026-10-06
n8nIteração implícita por item e loops explícitos.
Limites: Limitar iterações e evitar reprocessamento infinito.
- Handle errors gracefully
n8n • consulta: 2026-10-06
n8nError workflow, Error Trigger e Stop and Error.
Limites: Erros de trigger têm payload diferente; dados de execução dependem da persistência configurada.
- View all executions
n8n • consulta: 2026-10-06
n8nInspecionar runs, estado, histórico e retentativas.
Limites: Disponibilidade de dados depende de configurações de salvamento e edição/licença.