Cliente misterioso do CityMobile

Oi Meu nome é Narek Markosyan e sou desenvolvedor de back-end no Citimobil. Quero falar sobre o nosso bot fechado do Telegram "Mystery shopper" .

Prólogo


Ninguém usa óculos cor de rosa no CityMobile, entendemos bem que nosso serviço não é perfeito, portanto, estamos sempre trabalhando para melhorá-lo. Os problemas do cliente podem estar associados ao aplicativo, ao cálculo do preço, mas na maioria das vezes ao motorista.

Adoramos nossos motoristas e tentamos tornar seu trabalho mais agradável e lucrativo, mas por causa de um motorista inescrupuloso, podemos perder vários clientes e, assim, privar motoristas que honestamente fazem seu trabalho.

Por esse motivo, decidimos desenvolver uma ferramenta para responder rapidamente às reclamações relacionadas aos motoristas.

Por que precisamos de um bot


Absolutamente todas as reclamações de nossos clientes são consideradas pelos funcionários do departamento de suporte, mas não podemos confiar totalmente nas estatísticas recebidas dos clientes por vários motivos:

  • nem todos os clientes deixam feedback se algo der errado;
  • nem sempre podemos ter certeza da objetividade dos clientes;
  • não queremos e não podemos oferecer aos clientes um monte de perguntas esclarecedoras para obter uma visão completa.

Então o que fazer? Peça aos nossos colegas para ajudar!

  • Os funcionários provavelmente não se esquecerão de relatar um problema;
  • Os funcionários são mais objetivos . Não até o fim, mas ainda :)
  • Você pode ir a um colega e descobrir todos os detalhes necessários.

Obviamente, quando surgem problemas, você sempre pode ligar para a sala de expedição e passar sem intermediários, mas o bot ajuda a executar duas tarefas importantes: lembra o que você precisa prestar atenção e permite que você relate um problema com o clique de um botão .

Como o bot funciona?


imagem

O comprador misterioso é muito simples. Consiste em apenas dois manipuladores:

O primeiro manipulador realiza as viagens da API que foram concluídas recentemente ou estão com o status "Em trânsito" e envia a pergunta da primeira viagem ao chat.

O segundo manipulador acessa a API do Telegram e capta mensagens não lidas, passa por cada mensagem sucessivamente e envia uma resposta ao bate-papo.

Obviamente, era possível fazer com que nosso servidor enviasse automaticamente mensagens para o bot da viagem e as respostas dos usuários do Telegram não chegavam em lotes, mas no momento do envio, mas após discussões, decidimos fazer o mecanismo descrito acima. Havia várias razões para isso:

  • com esta implementação, o serviço é completamente fechado para solicitações de entrada em todas as portas; portanto, não podemos ter medo de tentativas de hackers ou ataques DDOS;
  • se muitas mensagens vierem de usuários ao mesmo tempo, o Telegram não nos bombardeará com solicitações ;
  • se o bot ficar sem graça, não afetará o servidor principal e nem os processos de negócios.

Escolhemos o MySQL como base para o bot. Qualquer banco de dados seria adequado para nós, mesmo noSQL, mas escolhemos o MySQL para tornar mais fácil para o departamento de análise processar os dados necessários.

Quanto à linguagem, aqui escolhemos entre PHP e GoLang. Paramos no PHP, porque "por que não". Com a implementação que temos, não usaríamos as principais vantagens do Go, mas complicaria o desenvolvimento - nem todos os desenvolvedores escrevem no Go. Se você tem uma idéia do que seria melhor que o PHP nesta implementação do Go, ficarei feliz em ler os comentários.

Aprimoramentos


Não houve muitas melhorias desde a primeira versão. Após o lançamento oficial, começamos a coletar feedback e, como resultado, encontramos apenas dois problemas.

O primeiro problema é a falta de memória . Na primeira implementação, o bot começou a questionar o funcionário 5 minutos após a viagem. Verificou-se que, durante esse período, o passageiro conseguiu esquecer alguns detalhes, por exemplo, o número de matrícula do carro. Após o refinamento, o bot começou a pesquisa um minuto depois que o passageiro entrou no carro. O bot fez perguntas, cuja resposta já é conhecida com certeza (limpeza do carro, se o carro tem os números corretos, etc.) Após a viagem, o bot retornou com outro pacote de perguntas, cujas respostas ficam claras apenas durante a viagem.

O segundo problema é que tudo está quase sempre bem conosco . Não importa o quão estranho possa parecer, mas do ponto de vista do bot, isso se tornou um problema. Nossos colegas estão cansados ​​após cada viagem 10 vezes para responder "está tudo bem". Resolvemos esse problema agrupando perguntas: combinamos todas as perguntas feitas durante a viagem e todas as perguntas depois em duas perguntas idênticas: “Está tudo bem?” Com um conjunto diferente de respostas.

imagem

Em um futuro próximo, planejamos aumentar o número de clientes confiáveis ​​e, assim, tornar o bot mais eficiente. Para fazer isso, você precisará refazer a autorização e adicionar monitoramento aos eventos críticos. Se houver mudanças interessantes, escreverei um artigo separado sobre elas ...

Source: https://habr.com/ru/post/pt484728/


All Articles