
Um chatbot online é uma tendência recente no mercado. Mas como interagir com os clientes que estão offline? Uma porcentagem significativa de pessoas prefere interagir por telefone. E a empresa precisa de uma grande equipe de operadores ou de uma solução de automação de comunicação de voz. Estamos oferecendo uma solução para reduzir a carga de trabalho e os custos (e afetará apenas a ocupação dos desenvolvedores).
Como programar com rapidez e facilidade qualquer menu de voz, informante automático, secretário-robô com um banco de dados de clientes anexado?
Alerta de spoiler: tudo é feito implementando webhooks e estamos usando o exemplo do PHP.
O que e porque?Por exemplo, você tem um serviço de entrega ou uma loja online com sua própria logística. Alguns clientes estão ligando para ver o que há com seus pacotes e isso pode ser facilmente automatizado. O mesmo vale para a geolocalização da cabine, alguma coleta de dados ou qualquer informação individual que possa ser relatada ao cliente sem desperdiçar energia humana.
Pode ser facilmente automatizado, forneceremos um exemplo abaixo. Ah, e isso pode ser feito completamente de graça.
Por que não seu próprio asterisco?Obviamente, tudo isso pode ser feito com o Asterisk, mas, além do desenvolvedor, você também precisará de um administrador, que também esteja familiarizado com a segurança da comunicação por voz (pois eles frequentemente são invadidos).
Então, discutiremos a maneira mais simples de resolver a tarefa - com webhooks.
Lista de métodosVocê precisará apenas de dois métodos novos para o trabalho, mas cada um deles oferece muitas possibilidades, e o mais importante - ciclos ilimitados. Com a ajuda desses ciclos, você pode obter um menu de voz em vários níveis e um informante para qualquer assunto.
Principais métodos:- NOTIFY_START - o início de uma chamada recebida no PBX
- NOTIFY_IVR - resposta dos chamadores a uma determinada ação
A descrição detalhada do método está disponível para copiar e colar na
descrição da API .
Para solicitações NOTIFY_START e NOTIFY_IVR, você pode alterar os cenários durante a chamada, respondendo com uma das opções:






Assim, um cliente liga e ouve a saudação e depois disca um determinado número (por exemplo, um código de rastreamento), enviamos uma notificação com os dígitos inseridos, o script verifica o banco de dados e envia a resposta para nós. A resposta pode conter um ID de arquivo de voz ou uma resposta de voz padrão.
Temos um sistema padrão de reprodução de números, para que você não precise gravar uma resposta com antecedência; ou seja, a notificação apropriada é escolhida no banco de dados e é reproduzida como um número por um robô. Ou você pode criar até cem mensagens de voz padrão e usá-las para responder aos clientes (por exemplo, “Sua entrega está no armazém”, “Você pode receber seu pacote todos os dias entre 9:00 e 22:00).
O mínimo de implementaçãoPara o atendedor responder, você precisa do número mínimo de telefone e de um PBX. Você também deve enviar ou inserir as respostas possíveis.
Configurar
- O PBX gratuito para esta tarefa pode ser definido em três cliques (escolha o número de funcionários e o menu de voz pode ser definido posteriormente)
- Os números de telefone do PBX podem ser conectados a partir de 100 países ao redor do mundo. O número se conecta automaticamente após a conclusão da verificação do ID (se for necessário para o país de sua escolha). Você também pode conectar um de seu próprio número gratuitamente
- Para definir os menus de voz, vá para a página "Chamadas recebidas e URA" e escolha uma opção que melhor lhe convier. Ou você pode enviar seus arquivos ou digitar um texto e o robô o lerá automaticamente. Existem 16 idiomas disponíveis com várias vozes para cada um (14 vozes em inglês). Você pode salvar até 100 saudações em sua conta pessoal.
Exemplo PHPPara demonstrar opções diferentes, criamos 4 exemplos de desempenho de URA no PHP.
- O sistema informa os três últimos dígitos do CallerID (exemplo de trabalho com informações sobre números e dígitos pronunciados)
- O usuário digita a data de nascimento em DTMF e o sistema informa quantos dias faltam até o aniversário (trabalhando com DTMF e pronunciando dígitos)
- Menu multinível sem fim: o usuário pode digitar dígitos e acessar o menu seguinte / anterior (exemplo de como, com um ciclo simples, você pode criar qualquer número de menus de voz)
- Exemplo de autorização para receber o status da balança (útil para muitas situações da vida)
Os três primeiros exemplos estão disponíveis no
GitHub . Lá você tem todos os elementos necessários, basta inserir os arquivos com o preenchimento (que devem ser enviados anteriormente ou lidos no PBX).
Tarefa 4 : o chamador ouve a saudação e é solicitado a digitar o número de identificação; depois de entrar no sistema, informa a balança, despede-se usando uma frase popular da lista e encerra a chamada.
Aqui está um exemplo de código para a tarefa descrita.
Código PHP$request = new Request(); $notify = self::getEvent([AbstractNotify::EVENT_START, AbstractNotify::EVENT_IVR]); if (!$notify) { return; } switch ($notify->event){ case AbstractNotify::EVENT_START: $request ->setIvrPlay(self::INFO_FILE_ID) ->setWaitDtmf(TIMEOUT , ATTEMPTS, MAXDIGITS, DTMF_NAME, DEFAULT_BEHAVIOUR); break; case AbstractNotify::EVENT_IVR: if (!empty($notify->wait_dtmf->digits)) { $balance = getBalance($notify->wait_dtmf->digits); $request->setIvrSayNumber($balance, 'en'); } elseif (!empty($notify->ivr_saynumber)) { $request->setIvrSayPopular(POPULAR_PHRASE_NUM, 'en'); } else { $request->setHangup(); } } $request->send();
Pretendemos expandir ainda mais os recursos de nosso método e coletar feedback nos comentários abaixo. Também temos outros métodos de webhook e API disponíveis. Você pode ver a lista completa
no site .