Requisição HTTP Personalizada no fluxo de voz
O node Requisição HTTP Personalizada consulta ou envia dados para uma API durante a chamada. Ele aguarda a resposta antes de continuar e permite escolher o próximo caminho pelo status HTTP ou por uma condição aplicada ao conteúdo retornado.
Quando usar
- consultar cadastro, disponibilidade, pedido ou protocolo em uma API própria;
- enviar dados coletados durante a chamada;
- usar o retorno de uma integração nos próximos nodes;
- separar sucesso, resposta rejeitada e falha técnica em caminhos diferentes;
- configurar a requisição inteira no próprio fluxo, sem cadastrar antes uma operação de integração.
Evite este node quando o envio não deve interromper a chamada. Nesse caso, use Envio de Webhook HTTP, que dispara o POST de forma assíncrona e segue o fluxo sem aguardar o retorno.
Onde configurar
Acesse Fluxos Avançados na plataforma. Pela interface, abra o módulo Voz, selecione Configurações e, na árvore Telefonia e Voz, escolha Fluxos Avançados.
Abra ou crie um fluxo. No editor, localize o grupo Dados e Integrações, arraste Requisição HTTP Personalizada para o canvas e conecte sua entrada e suas três saídas.
Visão da configuração
Na imagem, o node usa POST e o body Contexto. Nesse modo, a Agilize monta o JSON no momento da chamada com call, flow e vars.
Campos de configuração
| Campo | Como usar |
|---|---|
| Nome da requisição | Identificação opcional exibida no node, como Consultar disponibilidade. |
| Método | Escolha GET, POST, PUT, PATCH, DELETE ou HEAD. |
| URL | Informe um endereço HTTP ou HTTPS. Campos compatíveis aceitam variáveis no formato {{variável}}. |
| Parâmetros | Pares de chave e valor adicionados à query string com codificação automática. |
| Autenticação | Sem autenticação, Bearer, Basic ou API Key enviada em header ou query. |
| Headers | Cabeçalhos adicionais da requisição. Valores sensíveis podem ser protegidos. |
| Body | Vazio, JSON, URL encoded, Raw ou Contexto. Disponível para POST, PUT, PATCH e DELETE. |
| Status HTTP aceitos | Faixas separadas por vírgula que definem sucesso. O padrão é 200-299. |
| Variável de saída | Nome da variável que receberá somente o body retornado. |
| Validar conteúdo da resposta | Condição opcional aplicada a um caminho do body. |
| Timeout | Tempo máximo de espera entre 1 e 30 segundos. O padrão é 10 segundos. |
| Redirecionamentos | Quando ativo, segue até três redirecionamentos. |
Se você já possui um comando cURL, use Importar cURL para preencher método, URL, parâmetros, headers, autenticação e body. Revise os campos antes de testar.
Entradas e saídas
O node recebe uma entrada e oferece três saídas:
| Saída | Quando é usada |
|---|---|
| Sucesso | O endpoint respondeu e o status HTTP e a condição opcional foram aceitos. |
| Resposta não aceita | O endpoint respondeu, mas o status ou a condição aplicada ao body não passou na regra. |
| Erro técnico | Houve URL inválida, timeout, erro de rede ou configuração incorreta. |
Conecte as três saídas. Isso evita que a chamada fique sem um tratamento previsto quando a API rejeitar a solicitação ou estiver indisponível.
Usar variáveis da chamada
Use Inserir variável nos campos que exibem essa ação. O seletor reúne dados da telefonia e variáveis produzidas pelos nodes anteriores do mesmo fluxo.
| Variável | Conteúdo |
|---|---|
{{callerid}} | Número de origem da chamada. |
{{uniqueid}} | Identificador único da chamada. |
{{channel}} | Canal atual da ligação. |
{{context}} | Contexto atual do dialplan. |
{{extension}} | Extensão atual. |
{{call}} | Objeto com os dados atuais da chamada. |
{{flow}} | Identificação do fluxo de voz em execução. |
Variáveis criadas por nodes anteriores também ficam disponíveis. Por exemplo, se Solicitar Informação salvar o CPF em cpf, use {{cpf}} ou um subcampo com notação de ponto quando o valor for um objeto.
Enviar o contexto completo da chamada
Para enviar o estado atual sem montar o JSON manualmente, abra Body e escolha Contexto. O node gera um application/json com esta estrutura:
{
"call": {},
"flow": {},
"vars": {}
}callcontém dados atuais da chamada, como identificadores, número de origem, canal, contexto, extensão e variáveis do canal;flowidentifica o fluxo telefônico em execução;varscontém as variáveis acumuladas até aquele ponto, inclusive respostas de outros nodes.
Use Contexto apenas quando a API realmente precisar desse conjunto. Para enviar poucos campos, prefira JSON ou Raw e insira somente as variáveis necessárias.
Salvar e reutilizar a resposta
Preencha Variável de saída para disponibilizar o body retornado aos próximos nodes. Se o nome informado for respostaApi, por exemplo, o conteúdo poderá ser usado como {{respostaApi}} ou por caminhos como {{respostaApi.cliente.id}}.
Após uma resposta HTTP, o node também mantém:
| Variável | Conteúdo |
|---|---|
NodeHttpRequestLastRes | Último body recebido. |
NodeHttpRequestLastStatus | Último status HTTP recebido. |
Essas variáveis podem ser selecionadas por nodes posteriores no mesmo fluxo.
Configurar a regra de sucesso
Por padrão, respostas de 200 a 299 seguem por Sucesso. Você pode aceitar outras faixas separadas por vírgula e ativar Validar conteúdo da resposta para conferir também um caminho do body, como data.disponivel.
As condições disponíveis verificam se um campo existe, não está vazio, contém uma lista com itens, é igual ou é diferente do valor esperado. O status e a condição precisam ser aceitos; caso contrário, o fluxo segue por Resposta não aceita.
Exemplo prático
Para consultar disponibilidade antes de enviar a chamada a uma fila:
- adicione Requisição HTTP Personalizada depois do node que coletou a informação necessária;
- use
POSTe informe uma URL pública HTTPS; - escolha JSON e envie apenas os dados necessários ou use Contexto quando a API precisar de todo o estado da chamada;
- mantenha
200-299como status aceitos e validedata.disponivel, se o endpoint retornar esse campo; - conecte Sucesso à fila adequada;
- conecte Resposta não aceita a uma mensagem ou rota alternativa;
- conecte Erro técnico a um fallback seguro, como uma fila geral.
Escolher o node de integração correto
| Necessidade | Node recomendado |
|---|---|
| Configurar método, URL, autenticação, headers, body e regra de resposta no fluxo | Requisição HTTP Personalizada |
| Executar um método de uma plataforma de integração já cadastrada | Chamada API Externa |
| Apenas notificar uma URL sem aguardar a resposta | Envio de Webhook HTTP |
Segurança e cuidados
- Prefira HTTPS. A interface avisa quando a URL usa HTTP.
- Endereços locais e redes privadas são bloqueados.
- Proteja tokens, senhas, API Keys e valores secretos de parâmetros, headers ou body URL encoded.
- Credenciais protegidas são armazenadas com segurança ao salvar o fluxo e aparecem mascaradas no teste.
- Envie apenas os dados necessários, principalmente ao usar o body Contexto.
- Considere o tempo de espera na experiência da chamada. Configure um timeout compatível e mantenha uma rota de erro técnico.
Como testar
- Informe método e URL e clique em Testar.
- Preencha o modal com dados fictícios para as variáveis usadas.
- Se o body for Contexto, revise o exemplo de
call,flowevarsantes de executar. - Confira status, tempo, body, headers e requisição resolvida.
- Teste os cenários de sucesso, resposta não aceita e erro técnico.
- Depois, faça uma chamada controlada para validar a jornada completa antes de usar o fluxo em produção.
O teste exige perfil de administrador, não salva o fluxo e não persiste os dados customizados informados no modal.
