O que o Respond to Webhook Faz
O nó Respond to Webhook permite que seu workflow envie uma resposta HTTP customizada de volta à fonte que acionou o webhook, transformando seus workflows n8n em APIs completas e bidirecionais.
- Envia respostas HTTP customizadas de volta ao cliente que chamou o webhook
- Suporta múltiplos formatos de resposta: JSON, texto, HTML, redirect, binary (arquivos)
- Permite configurar status codes, headers customizados e estruturas complexas
- Essencial para criar APIs, integrações bidirecionais e workflows interativos
Como Funciona com Webhook
O nó Respond to Webhook deve ser usado em conjunto com o nó Webhook:
- Webhook Trigger: Configure o nó Webhook com modo de resposta "Using 'Respond to Webhook' Node"
- Processamento: Adicione nós intermediários para processar dados, fazer cálculos, consultar bancos de dados, etc.
- Respond to Webhook: No final do workflow, adicione este nó para enviar a resposta
- Cliente Recebe: O cliente que chamou o webhook recebe a resposta imediatamente
Principais Casos de Uso
- APIs Customizadas: Criar endpoints de API completos com lógica de negócio complexa
- Integrações Bidirecionais: Receber dados, processar e retornar resultados ao sistema chamador
- Validação de Formulários: Validar dados de formulário e retornar sucesso/erro
- Processamento Síncrono: Processar solicitação e retornar resultado na mesma chamada
- Retorno de Cálculos: Executar cálculos complexos e retornar resultados
- Webhooks de Confirmação: Confirmar recebimento e processamento de dados
Opções de Resposta
1. Tipos de Resposta
- All Input Data: Retorna todos os dados de entrada
- First Entry JSON: Retorna apenas o primeiro item como JSON
- Text: Retorna texto simples
- JSON: Retorna JSON customizado
- HTML: Retorna página HTML
- Redirect: Redireciona para outra URL
- Binary File: Retorna arquivo (PDF, imagem, etc.)
2. Status Codes HTTP
- 200 OK: Sucesso padrão
- 201 Created: Recurso criado com sucesso
- 400 Bad Request: Erro de validação
- 404 Not Found: Recurso não encontrado
- 500 Internal Server Error: Erro no servidor
3. Headers Customizados
- Content-Type: Especifica tipo de conteúdo
- Authorization: Tokens JWT ou outros
- Cache-Control: Controle de cache
- Custom Headers: Qualquer header necessário
Como Configurar
Configuração Passo a Passo
- No Webhook Trigger: Defina "Respond" como "Using 'Respond to Webhook' Node"
- Adicione Processamento: Insira nós para sua lógica de negócio
- Adicione Respond to Webhook: No final, adicione este nó
- Escolha Tipo de Resposta: Selecione JSON, texto, HTML, etc.
- Configure Dados: Defina o conteúdo da resposta usando expressões
- Defina Status Code: Configure código HTTP apropriado (200, 400, etc.)
- Headers (opcional): Adicione headers customizados se necessário
Exemplos Práticos
Exemplo 1: API de Validação de Email
Cenário: Criar API que valida se email é válido
- Webhook: POST /validate-email
- IF Node: Verifica se email é válido com regex
- Respond (TRUE): Status 200,
{"valid": true, "email": "..."} - Respond (FALSE): Status 400,
{"valid": false, "error": "Invalid email"}
Exemplo 2: API de Cálculo
Cenário: Calcular preço com desconto e impostos
- Webhook: POST /calculate-price com {price, quantity, discount}
- Code Node: Calcula total com descontos e impostos
- Respond to Webhook: Status 200, retorna:
{"subtotal": 100, "discount": 10, "tax": 9, "total": 99}
Exemplo 3: Formulário de Contato
Cenário: Processar formulário e retornar confirmação
- Webhook: POST /contact com dados do formulário
- Set Node: Valida e limpa dados
- Email Node: Envia email para equipe
- Respond to Webhook: Status 200,
{"success": true, "message": "Obrigado! Entraremos em contato."}
Exemplo 4: Download de Relatório
Cenário: Gerar e retornar PDF
- Webhook: GET /report/{id}
- Database Query: Busca dados do relatório
- Code Node: Gera PDF com dados
- Respond to Webhook: Tipo Binary File, retorna PDF
Melhores Práticas
- Use Status Codes Apropriados: 2xx para sucesso, 4xx para erros do cliente, 5xx para erros do servidor
- Estruture Respostas Consistentes: Mantenha formato padrão para todas as APIs
- Inclua Mensagens de Erro Claras: Sempre retorne mensagens descritivas em caso de erro
- Configure Content-Type Correto: application/json para JSON, text/html para HTML, etc.
- Trate Todos os Caminhos: Use IF/Switch para garantir que sempre há uma resposta
- Valide Entrada: Sempre valide dados recebidos antes de processar
- Log Adequado: Registre requests e responses para debugging
- Timeout Razoável: Garanta que processamento não demore muito
Padrões de Resposta Comuns
Sucesso Padrão (200)
{"success": true, "data": {...}, "message": "Operação concluída"}
Erro de Validação (400)
{"success": false, "error": "Validation failed", "details": ["Email inválido"]}
Não Encontrado (404)
{"success": false, "error": "Resource not found", "resource": "user", "id": 123}
Erro Interno (500)
{"success": false, "error": "Internal server error", "requestId": "abc123"}
Importante Lembrar
- Apenas Primeiro Item: Por padrão, retorna apenas o primeiro item, configure "All Input Data" se precisar de todos
- Timeout do Cliente: Cliente pode ter timeout próprio, processe rapidamente ou use processamento assíncrono
- Segurança: Adicione autenticação no Webhook se endpoint for público
- CORS: Configure headers CORS se API será chamada de browsers