HTTP Request
Busque ou envie dados para um site ou sistema externo pelo funil e use a resposta em mensagens, condições, campos e tags.
Nesta página
O bloco HTTP Request chama um endereço na internet no meio do funil. Use para consultar um sistema (um pedido, um cadastro, um CEP) e aproveitar a resposta: mostrar na mensagem, decidir o caminho numa condição ou gravar na ficha do contato. Esta é uma página para quem integra sistemas, por isso traz termos técnicos.
#Antes de começar
- Tenha o endereço da chamada e, se o sistema exigir, o token ou o usuário e a senha.
- O endereço precisa ser público. Endereços de rede interna são recusados.
- O bloco fica no grupo Avançado, que depende do seu plano.
#Montar a chamada
- Adicione o bloco HTTP Request e clique nele.
- Em Método, escolha GET, POST, PUT, PATCH, DELETE ou HEAD.
- Cole a URL. Ela aceita variáveis, como
https://api.exemplo.com/pedidos/{{vars.pedido}}. - Preencha as abas necessárias: Parâmetros, Cabeçalhos, Corpo, Autenticação e Resposta.
- Clique em Testar para conferir.
- Ligue as saídas Sucesso e Erro aos próximos blocos.
Cada aba mostra um número com a quantidade de itens que tem.
#Aba Parâmetros
Linhas de Nome e Valor que entram no fim da URL (?nome=valor). Acento e espaço são tratados sozinhos. Se você colar uma URL que já tem parâmetros, aparece o atalho Mover para a aba Parâmetros.
#Aba Cabeçalhos
Informações extras que o sistema pede junto, como X-API-Key. Dá para editar em linhas ou em JSON. O token de acesso vai na aba Autenticação, não aqui.
#Aba Corpo
O que você manda para o sistema. Há dois modos:
- Campos: linhas de nome e valor. Em Enviar como, escolha JSON ou Formulário. Um nome com ponto vira grupo:
cliente.nomeentra dentro decliente. - JSON / texto: você escreve o corpo inteiro.
GET e HEAD não enviam corpo. A aba avisa e oferece Trocar para POST.
#Aba Autenticação
Como o sistema sabe que é você. Em Tipo de autenticação:
| Tipo | Como envia |
|---|---|
| Sem token | Endereço público, sem identificação. |
| Bearer (Authorization) | Envia «Authorization: Bearer» com o token. |
| Header próprio | Envia o token num cabeçalho com o nome que você definir (ex.: X-API-Key). |
| Na URL (query) | O token entra na URL (ex.: ?token=). Menos seguro: fica no registro do sistema de destino. |
| No corpo | O token entra como mais um campo do corpo. |
| Usuário e senha (Basic) | Envia usuário e senha, como a janela de login do navegador. |
| Login do sistema (usuário e senha → sessão) | Antes da chamada, entra no endereço de login com usuário e senha e usa o token ou o cookie que o sistema devolver. |
No Login do sistema, preencha Endereço de login, Método do login, Formato (JSON, Formulário ou Formulário (multipart)), Usuário ou e-mail, Senha, Nome do campo do usuário e Nome do campo da senha. Se a resposta do login traz um token, informe Onde está o token (opcional) (ex.: data.access_token) e Enviar o token como. Campos que não são usuário nem senha vão em Campos extras do login (opcional).
O login vale para os outros blocos HTTP Request do mesmo funil por 15 minutos. O cookie de sessão só é enviado para o mesmo site do login. Token e senha salvos aparecem mascarados no painel.
#Aba Resposta
Define o que fazer com o que voltou.
- Guardar a resposta inteira em: nome da variável que recebe a resposta toda. O padrão é
http_response. - Salvar campos da resposta: leve cada informação para onde ela precisa ficar. Em Campo da resposta, escreva o caminho (ex.:
cliente.nome). Em Salvar em, escolha o destino.
| Salvar em | O que acontece |
|---|---|
| Variável do funil | O valor fica numa variável para os próximos blocos. |
| Campo do contato | Grava num campo da ficha: nome, e-mail, telefone e outros. |
| Campo personalizado | Grava num campo que você criou. |
| Tag do contato | O valor vira uma tag. Uma lista vira várias tags (até 10, com até 40 caracteres cada). Dá para limitar a uma lista de tags aceitas. |
Os campos só são salvos quando a chamada dá certo. Resposta de erro não vai para a ficha.
#Mais opções
- Tempo limite: 5, 10, 15, 20 ou 30 segundos. O padrão é 10.
- Se falhar, tentar de novo: Não, 1 vez, 2 vezes ou 3 vezes. A nova tentativa só acontece em erro do servidor (5xx), excesso de pedidos (429) ou falha de rede.
#Importar do navegador
Em vez de preencher à mão, copie a chamada que o navegador já faz.
- No sistema de destino, aperte F12 e abra Rede.
- Faça a ação que você quer repetir.
- Clique com o botão direito na chamada › Copiar › Copiar como cURL (bash).
- No bloco, clique em Importar, cole o texto e confirme. Ou clique em Abrir .har e escolha o arquivo (até 20 MB).
A importação substitui método, URL, parâmetros, cabeçalhos, corpo e autenticação do bloco. Num arquivo .har com várias chamadas, a tela mostra uma lista para você escolher.
#Usar variáveis na chamada
URL, valores dos cabeçalhos, parâmetros, corpo e campos da autenticação aceitam variáveis. Clique no botão de variáveis do campo ou digite {{.
#Testar
O botão Testar faz a chamada de verdade e não grava nada no contato.
- No teste não há contato nem funil rodando. Para cada variável usada na chamada, a tela pede um valor de exemplo.
- O resultado mostra o código (ex.: «HTTP 200 · saída Sucesso»), o tempo e a resposta em três visões: Campos, Resposta e Cabeçalhos.
- Em Campos, cada informação da resposta tem o botão + Salvar, que cria a linha correspondente na aba Resposta.
- Com linhas na aba Resposta, o teste mostra No funil, seria salvo: uma prévia, sem gravar.
#Usar a resposta nos blocos seguintes
O bloco deixa estas variáveis prontas:
| Variável | Conteúdo |
|---|---|
{{vars.http_response}} |
A resposta. Use também o nome que você definiu em Guardar a resposta inteira em. |
{{vars.http_status}} |
O código da resposta (200, 404…). |
{{vars.http_ok}} |
Se a chamada deu certo. |
{{vars.http_text}} e {{vars.http_title}} |
O texto e o título, quando a resposta é uma página. |
{{vars.http_error}} |
A mensagem do erro, quando a chamada falha. |
Para ler um campo de dentro da resposta, use ponto: {{vars.http_response.cliente.nome}}. Em listas, use a posição, começando em zero: {{vars.http_response.itens.0.preco}}.
#Condição depois do bloco
- Para separar sucesso de erro, use as duas saídas do próprio bloco: Sucesso e Erro.
- Para decidir pelo conteúdo, ponha uma Condição com Variável do fluxo. Exemplo: variável
http_response.status, É igual a,pago. A comparação é feita como texto, então o número 1 é igual a «1». - Para percorrer uma lista da resposta, use o bloco Repetir com Uma volta por item de uma lista.
#Limites
- A resposta é lida até 2 MB. Acima disso, o bloco guarda o começo, e o teste avisa «resposta grande: guardado só o começo».
- De uma página, o texto guardado vai até 60 mil caracteres.
- Página que monta o conteúdo no navegador (com JavaScript) chega sem o texto: o bloco não abre um navegador.
- O botão Testar aceita até 20 testes por minuto por workspace (a conta da sua empresa no Leadz).
#Problemas comuns
«O site não respondeu em 10 s (tempo limite do bloco).»
O sistema demorou mais que o tempo limite. Aumente o Tempo limite em Mais opções ou confira se o sistema está no ar.
«Login recusado pelo sistema (HTTP 401): confira usuário, senha e os nomes dos campos.»
O sistema não aceitou o login. Confira usuário e senha, o Formato e os nomes dos campos. Use a dica do F12 para ver como a tela de login envia.
«Login respondeu, mas sem token nem cookie de sessão.»
O login funcionou, mas o Leadz não achou o token na resposta. Informe o caminho em Onde está o token (opcional).
«URL externa aponta para rede privada ou reservada.»
O endereço não é público. O bloco só chama endereços acessíveis pela internet.
«Não foi possível resolver o host externo.»
O endereço não existe ou foi digitado errado. Confira a URL.
«O token deste bloco ainda não foi salvo. Salve o funil e teste de novo.»
Você preencheu a autenticação num bloco novo e testou antes de salvar. Clique em Salvar no funil e teste outra vez.
«Muitos testes seguidos. Espere um minuto e tente de novo.»
O limite de testes por minuto foi atingido. Aguarde e repita.
«JSON inválido: confira vírgulas e aspas.»
O texto dos cabeçalhos ou do corpo não é um JSON válido. Revise vírgulas, aspas e chaves.
«Não reconheci um cURL.»
O texto colado não é um cURL. No navegador: F12 › Rede › botão direito na chamada › Copiar › Copiar como cURL (bash).
A variável da resposta sai vazia na mensagem
Confira o caminho no resultado do Testar, na visão Campos. Dentro de {{ }} use ponto para posições de lista (itens.0), não colchetes.
#Veja também
Que bom! Obrigado pelo retorno.
Poxa. Tente a solução de problemas ou fale com o suporte.
Mais em Funil
Ver os 10 artigos