Nó de IVR: Requisição HTTP
Como conectar seu IVR a um sistema externo (CRM, ERP, API própria) chamando uma URL e salvando a resposta numa variável.
Para que serve
Chama um endpoint HTTP externo direto do fluxo do IVR, sem passar pelo Asterisk, e opcionalmente guarda a resposta (corpo completo ou um trecho específico) numa variável para os próximos nós usarem. Útil para consultar um CRM antes de rotear, validar um cliente no seu ERP, ou disparar uma automação.
Configuração
- Método HTTP: GET, POST, PUT ou DELETE.
- URL: aceita interpolação de variáveis, ex.
https://crm.com/api/lookup?phone=${caller.phone}. Só são permitidas URLs http(s); endereços privados, loopback ou reservados são bloqueados por segurança. - Cabeçalhos: pares chave/valor; os valores também aceitam interpolação (útil para tokens salvos como variável, ex.
${secret}). - Corpo (JSON): o corpo da requisição para POST/PUT, também com interpolação de variáveis.
- Timeout (segundos): no máximo 30 segundos.
- Salvar resposta na variável: o nome da variável que guarda o corpo completo da resposta.
- Extrair caminho JSON (opcional): um caminho como
data.user.emailou$.user.tier; se definido, apenas esse trecho é salvo em vez do JSON inteiro.
Saídas (edges)
success: resposta 2xx (e, se você configurou um caminho JSON, que ele foi resolvido com sucesso).failure: qualquer erro — status não-2xx, timeout, problema de rede, JSON inválido, caminho JSON não encontrado, ou URL bloqueada pela proteção contra SSRF.
Exemplo
Antes de rotear uma chamada, você adiciona um nó Requisição HTTP com GET para https://meu-erp.com/api/clientes?telefone=${caller.phone}, salva a resposta na variável cliente_info e extrai o caminho $.tier para outra variável chamada nivel_cliente. Um nó Condição mais adiante decide: se ${nivel_cliente} for "vip", roteia direto para um agente sênior; se a consulta falhar (saída failure), segue para o menu geral.
Dicas
- Sempre conecte a saída
failurea algum lugar — um menu genérico, uma mensagem de desculpas. Nunca deixe esse ramo sem conexão. - Use o caminho JSON para ficar só com o dado que você precisa; salvar a resposta completa obriga os próximos nós a fazer o parse do JSON manualmente.
Solução de problemas
- Se a requisição sempre falhar, confira primeiro se a URL não aponta para um IP privado ou localhost — o nó bloqueia isso automaticamente por segurança (proteção SSRF), mesmo que o endpoint funcione bem na sua rede interna.
- Se você definir um caminho JSON e nada aparecer na variável, confirme que a resposta é um JSON válido e que o caminho corresponde exatamente à estrutura retornada (um
$.no início é opcional).
Artigos relacionados
-
Chamadas de WhatsApp no Omnifox
Receba e faça chamadas de voz do WhatsApp diretamente do inbox do Omnifox.
-
IVR, filas e roteamento de chamadas
Crie menus de voz (IVR), organize filas de chamada e conecte sua própria central PBX ao Omnifox.
-
Ver o histórico de chamadas e reproduzir gravações na caixa de entrada
Encontre todas as suas chamadas na aba Chamadas da caixa de entrada e ouça as gravações sem sair do Omnifox.
-
Iniciar uma chamada a partir de uma conversa
Ligue por voz para um contato sem sair do chat: o botão Ligar pelo WhatsApp disca a chamada e a registra na caixa de entrada.
-
Configurar os ajustes de chamada (dispositivo, microfone e SIP)
Deixe o navegador, o microfone e a conexão SIP prontos para fazer e receber chamadas direto da Caixa de entrada do Omnifox.