Automatização de atendimento com o chatbot Weni - Blog 4Linux
4 de maio de 2021 Caique Portela 732 Views
A procura por soluções de chatbot (atendimento automatizado por chat) vem crescendo muito nos últimos tempos, ainda mais nestes tempos de pandemia. Muitos criticam seu uso pois isso retira uma parte da interação humana do atendimento e muitas vezes também possuem problemas de usabilidade. Mas a verdade é que seu uso e disponibilidade por parte das empresas se tornará mais comum, principalmente como um ponto de início dos atendimentos, apresentando uma solução para problemas recorrentes ou que possibilitam automação da solução.
Apesar do crescimento do uso de chatbots, será que realmente sabemos o que é/esperar de um chatbot?
Resumidamente, temos a seguinte definição:
Chatbot é um programa de computador que tenta simular um ser humano na conversação com as pessoas. O objetivo é responder as perguntas de forma que as pessoas tenham a impressão de estar conversando com outra pessoa e não com um programa de computador.
Então, o chatbot é um simulação de uma conversa com um humano? Não exatamente. Apesar de fazer parte da funcionalidade esperada de um bot, a capacidade de entender aquilo que o usuário está descrevendo independentemente da forma que é dita não é possível pois ele não é um humano e isso precisa estar claro.
O chatbot é um software criado para automatizar conversas via chat, sem limitação de plataformas (WhatsApp, Telegram, Messenger etc.). Assim, você pode criar fluxos de atendimento para todos os departamentos da sua empresa, criando tratativas para cada possível situação, de forma que o bot seja capaz de entender o que o usuário deseja e dar a solução adequada. Como o bot não descansa, ele pode trabalhar 24h por dia, 7 dias por semana ajudando seus usuários a terem seus problemas resolvidos a qualquer momento do dia, sem complicações.
O que eu posso fazer com um chatbot?
Apesar de o mais comum do chatbot ser no atendimento a clientes, a limitação de um robô de atendimento é a imaginação e a criatividade de seus autores. Tudo aquilo que possui um fluxo de solução e que já poderia ser feito via conversa com um humano, poderia ser automatizado com um chatbot. Mas vamos para alguns exemplos práticos:
Agendamento de horário – Seja para uma consulta médica, cabeleireiro, manicure ou dentista. Qualquer tipo de agendamento pode ser automatizado com um chatbot. Ele pode saber diferenciar o tempo que cada procedimento demoraria e encaixar os horários na agenda.
Compras e pedidos – Como seria bom poder pedir qualquer coisa sem sair de casa, não é? Com um chatbot isso é possível! Mercado, roupas, móveis, fast food, todos possuem um variedade de produtos e seus respectivos preços. Todos poderiam se encaixar em uma solução de vendas via chatbot sem necessidade de interação humana.
Pesquisas e formulários – Esse é o mais simples entre os exemplos. Uma simples interação de perguntas e respostas, sem questionamento sobre a respostas ser ou não a correta, é um uso simples de chatbot.
Sugestões de atividades – Quem nunca ficou na dúvida de onde ir ou o que assistir durante um fim de semana? Baseado nos seus gostos, um chatbot seria capaz de te enviar sugestões de lugares para visitar ou o que assistir.
Como o chatbot vai entender o que o usuário diz?
O chatbot só faz comparações de sim e não e toma decisões baseadas nisso? Sim e não. Ele faz essas comparações, como em qualquer fluxo de trabalho e isso é necessário e faz parte do nosso dia a dia. Porém, visando uma melhor usabilidade e praticidade, ele precisa ser mais inteligente do que isso.
E não, não é um inteligência quase humana onde os robôs vão destruir o planeta. Os chatbots utilizam uma tecnologia chamada NLP (Processamento de Linguagem Natural). Resumidamente, a definição seria:
"Processamento de linguagem natural é uma subárea da ciência da computação, inteligência artificial e linguística que estuda os problemas da geração e compreensão automática de linguagens humanas naturais."
Então vamos entender melhor essa definição: em nosso idioma podemos dizer diferentes frases que possuem o mesmo significado. Pensando assim, o NLP basicamente possui capacidade de interpretar o que o usuário está dizendo, e assim poder direcionar para o fluxo correto de resposta. Com seu uso, podemos treinar o bot para captar a intenção do usuário em suas frases, analisar qual seria o melhor caminho para seguir com ele, e dar o tratamento apropriado.
E se o chatbot não for capaz de resolver o problema?
Nem sempre os clientes vão ter disponíveis todos os meios de comunicação. Seria legal então, dar a ele diferentes meios de entrar em contato com o nosso chatbot. Mas, e se precisar de interação humana, visto que isso em muitos cenários se faz necessário, já que nem tudo tem um fluxo certo para se realizar? Vou precisar colocar atendentes em vários canais diferentes? Como organizar isso?
Omnichannel: atenda o cliente onde ele estiver e de forma centralizada!
O omnichannel veio para resolver esse problema! É um termo utilizado em diferentes áreas, mas o significado é sempre o mesmo: a centralização do atendimento. No caso de chatbots, o cliente pode entrar em contato por qualquer meio, seja WhatsApp, Messenger, Telegram ou webchat, e o atendimento será igual. Independentemente da plataforma que o cliente deseja utilizar, será direcionado para um mesmo chatbot e caso precise falar com um atendente, este estará disponível através de uma ferramenta única centralizada e atenderá o cliente proveniente de qualquer origem.
Com o omnichannel o cliente pode variar o meio de contato e sempre terá suas informações associadas. É possível acompanhar seu histórico de atendimentos independentemente da plataforma e acessar seus dados. Esse tipo de recurso é possível conseguir utilizando diferentes plataformas, uma delas é o Rochet.Chat.
Push: crie seu chatbot sem saber programar
A plataforma Push é disponibilizada pela Weni e fornece um meio de criar chatbots sem a necessidade de ter conhecimentos em programação, utilizando algo que conhecemos como desenvolvimento de código baixo. A criação dos chatbots é realizada utilizando blocos interligados, cada um possuindo uma ação específica.
É possível ainda criar vários fluxos de atendimento com funcionalidades específicas, assim organizando melhor o chatbot e tornando esses fluxos reaproveitáveis em diferentes momentos do atendimento.
O Push pode se integrar a diferentes plataformas, como WhatsApp, Facebook, Telegram, Twitter, entre outras. Além disso é possível criar campanhas para envio de mensagens ou inicio de fluxo.
O Push utiliza como tecnologia o projeto de código aberto RapidPro.
Bothub: adicione inteligência ao seu chatbot
O Bothub é uma plataforma gratuita criada pela Weni para desenvolvimento de inteligências para chatbot utilizando NLP. Nela é disponibilizado diversas inteligências que já foram testadas e aprovadas: basta começar a utilizar no seu chatbot. É possível também criar suas próprias inteligências e mantê-las privadas.
O Bothub trabalha com o conceito de intenções, onde para cada frase analisada ele identifica o que o cliente deseja e a partir disso o chatbot poderá dar o tratamento específico.
Para criar sua inteligência, adicione frases comuns que os usuários podem dizer e informe a qual intenção ela se refere. Quando tiver uma boa quantidade de frases por intenção, você poderá treinar sua inteligência (processo automático da plataforma) e no final começar a utilizar.
A plataforma possui outras funcionalidades, como:
Possibilidade de criar equipes de trabalho.
Inteligências podem interpretar diferentes idiomas a partir das frases treinadas.
Histórico das frases analisadas.
Uso de testes onde diversas frases serão analisadas e identificadas se estão com a intenção correta.
Sugestão de frases.
Crie seu primeiro chatbot
Dentro da plataforma, após criar o primeiro fluxo teremos uma tela como essa:
Ao clicar em Create Message será criado o primeiro bloco. Existem vários tipos de blocos, sendo os principais:
Enviar uma mensagem ao contato – Envia uma mensagem para o usuário, podendo ser um texto, template do WhatsApp ou um anexo.
Aguarde a resposta do contato – Espera o usuário enviar alguma mensagem e a salva em uma variável. É possível configurar o tempo máximo de espera pela resposta e até mesmo realizar validações, como: se é um e-mail, um número, ou um texto específico.
Adicione contato a um grupo – Adiciona o usuário a um grupo. Útil para organizar os usuários pela situação que se encontram (falando com o bot, selecionou um departamento etc.).
Remover contato de um grupo – Remove o usuário de um grupo.
Atualizar o contato – Atualiza um campo do contato.
Salve o resultado para este fluxo – Cria uma variável ou atualiza seu valor caso já exista.
Chamar um webhook – Chama um endereço externo. Útil para fazer integrações com serviços externos.
Entrar em outro fluxo – Inicia o usuário em outro fluxo. Quando acabar o outro fluxo, ele volta ao atual caso tenha mais blocos conectados.
Dividir por intenção – Utilizado para analisar textos por uma inteligência. Irá enviar o valor informado para a inteligência e poderá ser tomado ações dependendo do resultado.
Dividir por uma expressão de customização – Existem algumas expressões (funções) que se assemelham com programação. Elas podem tanto serem utilizadas na criação de variáveis como nesse bloco. É útil para algumas verificações um pouco mais avançadas.
Dividir por chance aleatória – Permite dividir o fluxo aleatoriamente. Um uso comum, por exemplo, é utilizado quando queremos enviar uma saudação para o usuário. Para enviar sempre a mesma saudação podemos utilizar esse bloco para enviar mensagens de forma aleatória.
Dividir por filiação de grupo – Permite tomar uma decisão caso o usuário faça parte de um grupo ou não.
Quando criamos o primeiro bloco, por padrão ele é o bloco de enviar mensagem. Então vamos começar enviando uma saudação para o usuário:
Aqui já enviamos uma saudação e em seguida um menu com as opções disponíveis. Veja que há asteriscos entre as opções que no WhatsApp faria com que esse texto ficasse em negrito. Logo abaixo é colocado um bloco aguardando uma mensagem do usuário.
Continuando nosso fluxo, vamos tratar a falta de mensagem do usuário:
Aqui, configuramos para aguardar uma resposta do usuário por 10 minutos. Caso não tenha a resposta ele irá enviar uma mensagem informando que não obteve a resposta e exibe o menu novamente. Outra possibilidade nesse caso é encerrar o fluxo por inatividade do usuário. Para encerrar o fluxo basta não ligar o bloco a nada, então, tudo o que chegar ali se encerra.
Agora podemos tratar as respostas válidas:
Nesse caso optamos por não utilizar inteligência, preferi criar o menu com opções numéricas. Sendo assim, foi adicionada uma divisão por resultado, e verificado se o valor digitado pelo usuário é o número 1, 2 ou 3, pois são as únicas opções disponíveis no menu. Caso não seja nenhuma das opções válidas, enviamos uma mensagem informando que não foi possível identificar a intenção, e é exibido novamente o menu.
Agora vamos simular o departamento de vendas. Nesse caso, vou solicitar um e-mail e validá-lo além de pedir o CEP e verificar em um serviço externo:
Solicitei o e-mail e o CEP e para cada um coloquei um bloco de "aguarde por resposta" e marquei para aguardar 10 min pela resposta. No caso do e-mail é possível garantir que é válido; já para o CEP, vou aceitar qualquer texto e utilizar um serviço externo para realizar essa ação:
Para validar o CEP costumo utilizar a API publica e gratuita do Viacep. Para validar basta realizar uma requisição com o método GET a URL com o CEP como parâmetro.
Nesse caso podem haver dois tipos de erros: a chamada ao endereço falhar por erro na formatação do CEP ou até mesmo por indisponibilidade do sistema, e ele também pode ter sucesso e retornar um erro na resposta.
Então para validar, preciso saber se na resposta da API existe um valor com o nome erro. Se ele existir ou se a chamada falhar, significa que houve um erro e eu solicito o CEP novamente. Para fazer essa validação utilizo uma expressão is_error que basicamente valida se aquela variável possui um erro. Então tento acessar o valor erro dentro da variável webhook (por padrão é onde o Push armazena a resposta da última requisição). Caso essa verificação retorne o valor false, significa que foi retornado um erro.
A partir disso, caso dê tudo certo, exibo então para o usuário o seu endereço, bairro, cidade e estado. Com os dados válidos, já poderíamos transferir para um atendente de vendas, por exemplo. Mas esse processo fica para um outro post.
Por hora, podemos ver como iria funcionar nosso fluxo pelo WhatsApp:
Esperamos que este post tenha esclarecido um pouco sobre o básico do funcionamento dos chatbots!
Anterior 40 horas de Kubernetes na 4Linux
Próxima Mongo DB - Primeiros passos
Tags chatbotIlhasoftOmnichannelPushRapidProRocket.chatWeniWhatsApp
Categoria Infraestrutura TINegócios
Caique Portela 3 posts
Ambari: crie um cluster Hadoop em minutos
O Apache Ambari é uma plataforma desenvolvida pela Hortonworks que permite instalar, configurar e monitorar um cluster hadoop em poucos minutos. Neste post irei ensinar como instalar o Ambari em