Automações

Enviar requisições GET, POST, PUT, PATCH ou DELETE para qualquer API REST.

Nó HTTP

O nó HTTP (http_request) envia uma requisição HTTP genérica para qualquer URL. É o bloco de integração mais flexível do editor de workflows — use-o para APIs REST, webhooks internos, microsserviços e serviços que ainda não tenham um nó dedicado na paleta.

Workflows > editor > HTTP node configuration Figura 1: Campos do nó HTTP — URL, método, headers e body

O que ele faz

A cada execução, o motor de workflows:

  1. Resolve todos os placeholders {{variable}} em URL, método, headers e body
  2. Envia a requisição HTTP a partir dos servidores do WhatsWave (não do navegador do usuário final)
  3. Faz parse de respostas JSON quando possível
  4. Retorna status, data e headers para os nós seguintes
PropriedadeValor
Node type IDhttp_request
Rótulo na paletaHTTP
Executorhttp_request
Métodos suportadosGET, POST, PUT, PATCH, DELETE
Timeout da requisição30 segundos
Tamanho máximo da resposta10 MB

Guia de configuração

Passo 1 — Adicionar o nó

  1. Abra Automações e edite seu workflow
  2. Abra a paleta de nós e selecione o grupo APIs
  3. Arraste HTTP para o canvas
  4. Conecte-o após o gatilho ou um nó de lógica que prepare o payload

Passo 2 — Definir a URL (obrigatório)

Informe a URL completa do endpoint. Você pode incluir query strings e variáveis:

https://api.example.com/v1/orders/{{trigger.body.order_id}}
https://hooks.example.com/notify?source=whatswave&phone={{variables.contact_phone}}

Regras:

  • Use https:// em produção sempre que o provedor suportar
  • Não acrescente fragmentos # — o motor remove fragmentos de URL antes de enviar
  • URLs vazias ou não resolvidas causam erros de execução

Passo 3 — Escolher o método HTTP

Selecione o verbo que corresponde ao contrato da API externa:

MétodoUso típico
GETLer dados; nenhum body é enviado
POSTCriar recursos ou disparar ações
PUTSubstituição completa de um recurso
PATCHAtualização parcial
DELETERemover um recurso

O campo de método também aceita variáveis, por exemplo {{variables.http_method}}, mas a maioria dos fluxos usa um método fixo.

Passo 4 — Configurar headers (JSON)

Os headers devem ser um objeto JSON. Padrões comuns:

Bearer token (OAuth / API key):

{
  "Authorization": "Bearer {{variables.partner_api_token}}",
  "Content-Type": "application/json"
}

Header de API key:

{
  "X-API-Key": "{{variables.shop_api_key}}",
  "Accept": "application/json"
}

ID de correlação customizado:

{
  "Authorization": "Bearer {{variables.api_token}}",
  "X-Request-Id": "{{trigger.body.event_id}}"
}

Se você enviar um body e omitir Content-Type, o motor adiciona automaticamente Content-Type: application/json.

Passo 5 — Definir o body (JSON)

Para GET e DELETE, deixe o body vazio — o motor não anexa body em requisições GET.

Para POST, PUT e PATCH, forneça um objeto JSON. Os campos suportam variáveis:

{
  "phone": "{{trigger.body.telefone}}",
  "name": "{{trigger.body.nome}}",
  "order_id": "{{trigger.body.pedido}}",
  "metadata": {
    "source": "whatswave",
    "workflow_id": "{{variables.workflow_ref}}"
  }
}

O motor resolve as variáveis primeiro e depois envia o objeto como JSON.

Passo 6 — Testar e inspecionar a saída

  1. Clique em Test na barra de ferramentas do workflow ou use o botão Play do nó
  2. Expanda o nó no log de execução
  3. Compare input_resolved (o que foi realmente enviado) com output (resposta da API)
  4. Referencie a saída no próximo nó: {{http_1.data.id}} (substitua http_1 pelo ID do seu nó)

Passo 7 — Tratar erros nos nós seguintes

Adicione um nó Condição após o HTTP para ramificar pelo status:

  • Caminho de sucesso: {{http_1.status}} igual a 200 ou 201
  • Caminho de erro: envie uma mensagem de alerta ou grave no CRM com {{http_1.error}}

Campos de saída

Após uma requisição bem-sucedida, a saída do nó é:

CampoTipoDescrição
statusnumberCódigo de status HTTP (200, 201, 404, 500, …)
dataanyBody da resposta parseado (objeto/array JSON ou string bruta)
headersobjectHeaders de resposta do servidor remoto

Acesse-os com o ID do nó no canvas:

{{http_1.status}}
{{http_1.data.user.email}}
{{http_1.data.items[0].sku}}
{{http_1.headers.content-type}}

Em caso de falha, o status do nó é error e a saída inclui:

CampoDescrição
errorMensagem legível, por exemplo HTTP 401: Unauthorized
http_error_detail.statusCodeStatus HTTP (0 em falha de rede)
http_error_detail.urlURL da requisição (query params sensíveis mascarados nos logs)
http_error_detail.responseBodyBody da resposta truncado para depuração

Padrões de autenticação

PadrãoExemplo de headerOnde armazenar o secret
Bearer token"Authorization": "Bearer {{variables.token}}"Variável de workflow ou API key da empresa
Header de API key"X-API-Key": "{{variables.key}}"Variável de workflow
Basic auth"Authorization": "Basic {{variables.basic_credentials}}"user:pass codificado em Base64 em uma variável
CustomizadoHeaders específicos do provedorConforme documentação do provedor

Token de integração WhatsWave: Ao chamar https://api.whatswave.com.br/..., o motor pode injetar {{api_token}} automaticamente em nós WhatsWave dedicados. No nó genérico HTTP, passe Authorization: Bearer {{api_token}} explicitamente se chamar a REST API do WhatsWave.

Armazene secrets em Settings → API Keys ou Variáveis do workflow — não em texto puro em workflows compartilhados.

Dicas e boas práticas

  • Comece com GET em endpoints somente leitura antes de POST/PUT que alteram dados
  • Use o botão Play do nó para testar um passo com entrada JSON mínima antes de rodar o fluxo completo
  • Nomeie os nós de forma clara (fetch_order, notify_erp) para que caminhos como {{fetch_order.data.id}} permaneçam legíveis
  • Normalize telefones e IDs em um nó Variável ou JavaScript antes do HTTP
  • Configure timeouts na API externa quando possível — o motor de workflows limita em 30 segundos
  • Payloads amigáveis a logs — evite enviar blobs base64 enormes, a menos que seja necessário
  • POSTs idempotentes — ao reexecutar workflows, prefira APIs que aceitem chaves de idempotência
  • Respeite rate limits — adicione nós Delay entre chamadas HTTP em massa
  • Prefira nós dedicados quando disponíveis (Stripe, Shopify, etc.) para auth e URLs padrão mantidas

FAQ

Por que minha requisição GET ignora o body?

Por design, requisições GET não enviam body. Mova parâmetros para a query string da URL ou mude para POST se a API exigir payload.

Por que {{trigger.body.field}} está vazio em input_resolved?

O nome do campo pode diferir do que o remetente envia (telefone vs phone, body.data.email aninhado). Inspecione a saída do gatilho webhook no painel de teste e copie o caminho exato.

Recebo HTTP 401 — o que devo verificar?

  1. Token expirado ou ambiente errado (sandbox vs produção)
  2. Nome do header (Authorization vs X-API-Key)
  3. Prefixo Bearer ausente
  4. Para API WhatsWave: copie o token de integração em Settings → API Keys

O motor acrescenta uma dica em respostas 401 apontando para a configuração de API keys.

Recebo HTTP 404 com uma URL que parece correta

Verifique barras duplas, prefixo de versão da API ausente (/v1/) ou variáveis que resolveram para strings vazias e colapsaram parte do caminho.

Posso chamar localhost ou minha rede interna?

Não. As requisições partem dos servidores em nuvem do WhatsWave. A URL de destino precisa ser acessível na internet pública (ou via túnel como ngrok durante o desenvolvimento).

O nó segue redirects?

Aplica-se o comportamento padrão do cliente HTTP. Prefira URLs finais quando o provedor as documentar.

Como envio form data ou XML?

O nó HTTP genérico é otimizado para JSON. Para application/x-www-form-urlencoded ou XML, defina o Content-Type correto e passe um body em string se a API aceitar — teste com o botão Play do nó e inspecione input_resolved.

O que acontece no timeout?

O nó falha com erro após ~30 segundos. Divida operações longas em webhooks assíncronos (o sistema externo chama seu webhook WhatsWave quando terminar).

Exemplos de casos de uso

Exemplo 1 — Notificar ERP interno sobre novo lead

Gatilho: Webhook de formulário de landing page

Nó HTTP:

CampoValor
URLhttps://erp.example.com/api/leads
MethodPOST
Headers{"Authorization": "Bearer {{variables.erp_token}}", "Content-Type": "application/json"}
Body{"name": "{{trigger.body.nome}}", "phone": "{{trigger.body.telefone}}", "utm": "{{trigger.query.utm}}"}

Próximo passo: Send message do WhatsWave confirmando o cadastro.

Exemplo 2 — Buscar status do pedido e responder no WhatsApp

Nó HTTP (GET):

URL: https://api.store.com/orders/{{trigger.body.order_id}}
Headers: {"X-API-Key": "{{variables.store_key}}"}

Condição: {{http_1.data.status}} igual a shipped

Send message: Your order {{http_1.data.id}} shipped! Tracking: {{http_1.data.tracking_code}}

Exemplo 3 — Encaminhar payload de webhook para n8n

Nó HTTP:

{
  "url": "https://n8n.example.com/webhook/whatswave-bridge",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json",
    "X-Bridge-Secret": "{{variables.n8n_secret}}"
  },
  "body": {
    "source": "whatswave",
    "payload": "{{trigger.body}}"
  }
}

Veja também: integração com n8n.

Exemplo 4 — GET paginado dentro de um Loop

  1. Variável define page = 1
  2. HTTP GET https://api.example.com/items?page={{variables.page}}
  3. JavaScript acrescenta {{http_1.data.items}} a um acumulador e incrementa a página
  4. Condição repete enquanto {{http_1.data.has_more}} for true

Referências de API e documentação relacionada

RecursoLink
Métodos HTTP (MDN)developer.mozilla.org — HTTP request methods
Headers HTTP (MDN)developer.mozilla.org — HTTP headers
Base da REST API WhatsWavehttps://api.whatswave.com.br
Variáveis no workflow/ajuda/variaveis-no-workflow
Testar workflows/ajuda/como-testar-e-depurar-um-workflow
Webhooks recebidos/ajuda/como-usar-webhooks-recebidos
Visão geral do grupo APIs/ajuda/nos-workflow-apis
Nó GraphQL/ajuda/nos-workflow-apis-graphql

Este artigo foi útil?

Precisa de mais ajuda? Falar com suporte

Central de Ajuda