# Requisição HTTP: integre APIs ao seu fluxo

O nó **Requisição HTTP** conecta seus fluxos a qualquer sistema com API: consultar um pedido no ERP, buscar um cadastro, registrar um lead. Este guia mostra a configuração completa.

## Abrindo a configuração

Adicione o nó **Requisição HTTP** (categoria Integrações) e clique em **Configurar Requisição HTTP** — abre o editor completo:

![Editor da Requisição HTTP](https://chat.simplesdesk.com.br/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMkFtQmc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--f1d02f905fc6a13fc57c0a16e10ef692fe6beb12/tutorial-fluxos-a5-01-modal-http.jpg)

- **Método + URL** — GET para consultar, POST para enviar. A URL aceita variáveis: `https://api.exemplo.com/pedidos/{{contact.phone}}`
- **Salvar resposta em variável** — o corpo da resposta fica disponível como `{{variables.nome_da_variavel.campo}}` nos próximos nós
- O painel **Entrada** (à direita) lista as variáveis que você pode usar na URL, headers e corpo
- **Abas**: Auth (Basic, Bearer, API Key), Headers, Body, Options e Settings (tentativas em caso de erro)

## Enviando dados (Body)

Na aba **Body**, marque **Enviar body**, escolha JSON e monte o corpo — variáveis funcionam normalmente:

![Body JSON com variáveis](https://chat.simplesdesk.com.br/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMkVtQmc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--dfe90c6eb13e9b03794902c568e90a412008e4eb/tutorial-fluxos-a5-02-body-json.jpg)

> ⚠️ O passo mais esquecido: **marcar "Enviar body"**. Corpo preenchido com o envio desligado = a API recebe uma requisição vazia.

## Teste e mapeie a resposta com cliques

Clique em **Testar** no topo: a requisição real é executada e a resposta aparece na aba **Saída**. Melhor parte: na sub-aba **Mapping**, **clique em qualquer campo do JSON retornado** para transformá-lo numa variável própria (ex.: campo `dados.nome` → `{{variables.nome}}`) — sem digitar caminhos na mão.

## As duas saídas do nó

- **Sucesso** — a API respondeu 2xx: siga o fluxo usando os dados
- **Erro** — falha de rede, timeout ou status 4xx/5xx

> 🚨 **Sempre conecte a saída de Erro** — por exemplo, a uma Nota privada explicando a falha + transferência para um atendente. Com a saída de erro desconectada, uma instabilidade da API encerra o fluxo em silêncio e ninguém fica sabendo.

## Boas práticas

- **Feedback ao contato**: antes de uma consulta, envie "Só um momento enquanto verifico… 🔎" — nunca deixe o cliente no vácuo
- **Retry**: na aba Settings, ative "Tentar novamente em falha" para APIs instáveis
- **Confirmação antes de ações**: para APIs que executam algo (criar pedido, agendar), confirme com o contato antes de chamar
- Combine com a **Condição Avançada** para tratar a resposta (ex.: `{{variables.status}}` igual a "aprovado" → um caminho; senão → outro)
