Http Request / Code
Você pode utilizar o bloco de Http Request / Code para fazer uma chamada à uma API, ou ativar uma url externa, como por exemplo um fluxo do N8N, Make, CRM ou uma programação própria.
O bloco de "Http Request / Code" pode ser utilizado também para escrever códigos em javascript.
🏷️ Categoria: Dados - Integração
Como realizar uma chamada HTTP
Onde usar: no bloco de “Http Request / Code” do Flowbuilder, Tipo Requisição
O que faz: chama um link externo, passando variáveis (caso deseje), e tendo o seu retorno em response.data (podendo utilizar um bloco de Variável na sequência para armazenar esse retorno)
O que alterar:
- “Link”: define a url a ser chamada
- “Propriedades”: defina as propriedades que você deseja enviar (opcional)
Os trechos entre {{...}} são placeholders do tipo “mustaches” e não precisam ser modificados, pois serão automaticamente substituídos pelos valores correspondentes.
- Chamar um API Interna
// definir
let endpoint = "https://{{backendURL}}/api/url";
let method = "POST";
let payload = {
"number": "{{number}}",
"contactId": "{{contact_id}}",
"name": "{{name}}",
"firstName": "{{firstName}}",
"ticketId": "{{ticket_id}}",
"protocol": "{{protocol}}",
"queueId": "{{queue}}",
"userName": "{{user}}",
"connectionName": "{{connection}}",
"companyName": "{{name_company}}",
"backendURL": "{{backendURL}}",
"token": "{{connection_token}}",
"dataHora": "{{data_hora}}"
// apague ou insira outros payloads desejados aqui
};
let authorization = "{{connection_token}}";
// estrutura
try {
const response = await axios({
url: endpoint,
method: method,
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + authorization
},
data: payload,
maxBodyLength: Infinity
});
return JSON.stringify(response.data, null, 2);
} catch (error) {
return "Algo deu errado: " + error.message;
}
- Chamar um API ou Url Externa
// definir
let endpoint = "https://enderecoExterno";
let method = "POST";
let payload = {
"number": "{{number}}",
"contactId": "{{contact_id}}",
"name": "{{name}}",
"firstName": "{{firstName}}",
"ticketId": "{{ticket_id}}",
"protocol": "{{protocol}}",
"queueId": "{{queue}}",
"userName": "{{user}}",
"connectionName": "{{connection}}",
"companyName": "{{name_company}}",
"backendURL": "{{backendURL}}",
"token": "{{connection_token}}",
"dataHora": "{{data_hora}}"
// apague ou insira outros payloads desejados aqui
};
// estrutura
try {
const response = await axios({
url: endpoint,
method: method,
headers: {
'Content-Type': 'application/json'
},
data: payload,
maxBodyLength: Infinity
});
return JSON.stringify(response.data, null, 2);
} catch (error) {
return "Algo deu errado: " + error.message;
}
Como utilizar Códigos
Você pode utilizar o bloco "Http Request / Code" para escrever códigos javascript, e retornar o resultado para um bloco de "Variável" na sequência.
Veja alguns exemplos de código:
- Setar uma variável
let dados = "Meu nome é João";
return dados;
- Remover tags Html
function removeHTML(htmlString) {
let texto = htmlString;
texto = texto.replace(/\n/g, "n")
.replace(/<[^>]*>/g, '');
return texto;
}
return removeHTML("<p>Olá, <b>flowbuilders</b>!</p>");
- Pegar o DDD do lead
let meuNumero = "{{number}}";
const ddd = parseInt(meuNumero.substring(2, 4), 10);
return ddd;
- Tratar CPF
function tratarEValidarCPF(valor) {
// 1. Limpeza: Mantém apenas números
let cpf = String(valor).replace(/\D/g, '');
// 2. Validação Rápida: Tamanho e sequências de números iguais
if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) {
return "CPF inválido!";
}
// 3. Algoritmo de Validação (Dígitos Verificadores)
function validarDigito(base) {
let soma = 0;
let peso = base.length + 1;
for (let i = 0; i < base.length; i++) {
soma += parseInt(base[i]) * peso--;
}
let resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
}
const digito1 = validarDigito(cpf.substring(0, 9));
const digito2 = validarDigito(cpf.substring(0, 10));
if (digito1 !== parseInt(cpf[9]) || digito2 !== parseInt(cpf[10])) {
return "CPF inválido!";
}
// 4. Formatação Final
return cpf.replace(/(d{3})(d{3})(d{3})(d{2})/, "$1.$2.$3-$4");
}
// Exemplo de uso com a sua variável:
return tratarEValidarCPF("%cpf_tratar%");
- Tratar CNPJ
function tratarCNPJ(mensagem) {
// Remover tudo que não for número
let cnpj = mensagem.replace(/D/g, '');
// Garantir que tenha exatamente 14 dígitos
if (cnpj.length !== 14) {
return "CNPJ inválido! Certifique-se de que digitou corretamente.";
}
// Formatar CNPJ no padrão XX.XXX.XXX/0001-XX
cnpj = cnpj.replace(/(d{2})(d{3})(d{3})(d{4})(d{2})/, "$1.$2.$3/$4-$5");
return cnpj;
}
return tratarCNPJ(%resposta_cnpj_lead%);
Dúvidas Comuns
Posso usar o Bloco de Http Request para utilizar um endpoint da nossa própria ferramenta? Sim, pode, inclusive utilizando os "mustaches" do nosso sistema e também as variáveis do fluxo atual.
Qual a linguagem aceita pelo bloco de Http Request / Code? Javascript.