4 Passos para Melhorar a Experiência de um Chatbot

Michael Barney Jr
Bots Brasil
Published in
8 min readApr 8, 2020

O Princípio Cooperativo para Interfaces Conversacionais

Quando comunidades surgiram, a capacidade dos humanos conversarem e cooperarem foi essencial. Da mesma maneira, esperamos que tecnologias conversacionais mantenham os princípios de cooperação comunicativa. Somente assim, uma conversa pode ser estabelecida sem esforço ou fricção.

Em 1970, Paul Grice definiu esse princípio cooperativo com 4 regras, chamadas de “As Máximas de Grice”, sendo elas:

  • Quantidade — Pessoas tentam ser o mais informativas possível, fornecendo o máximo de informações necessárias, mas não mais do que isso.
  • Qualidade — Pessoas tentam ser verdadeiras, não dando informações falsas ou que não sejam apoiadas por evidências.
  • Relação — Pessoas tentam ser relevantes e dizem informações que acreditam ser pertinentes em uma discussão.
  • Maneira — Pessoas tentam ser claras, breves e ordenadas, fugindo de ambiguidade e obscuridade.

Claro que nem toda conversa que você já participou conteve todos essas regras. Textos jurídicos, por exemplo, fogem completamente da regra de Maneira para que não tenham brechas. Mas veja que com a falta de alguma dessas máximas, a comunicação fica mais difícil de se estabelecer.

E se fica difícil entre pessoas, imagina entre uma pessoa e uma máquina!

Portanto, é importante nós entendermos como esses princípios afetam o planejamento de uma Interface Conversacional. Simbora!

1- Quantidade

Vamos começar observando algumas conversas:

Alice: Você sabe quando é a reunião?

Bob: Sim

Quando Alice perguntou se Bob sabia quando era a reunião, ela não procurava uma resposta de sim ou não, mas sim a data desta reunião. Alice esperava que Bob fosse cooperativo, dando o máximo de informações necessárias para o que foi perguntado, informando a data.

Alice: Estou precisando sair para beber

Bob: Você já foi para o Laçador?

Com apenas uma frase, Bob conseguiu ser cooperativo, informando de maneira implícita que:

  • O Laçador é um Restaurante
  • O Laçador tem bebidas
  • Essas bebidas são alcoólicas
  • O restaurante estará aberto
  • O restaurante é relativamente perto
  • O Laçador é um lugar que Alice provavelmente vai gostar.

Assim, a quantidade de informações apresentadas deve ser o máximo que seja necessário, sendo cooperativo, mas também apresentada de uma maneira que seja natural, podendo conter informações implícitas.

Apresentando Informações

Um Bot Cooperativo irá apresentar o máximo de informações necessárias para um comando ou pergunta feita, por exemplo:

🙋️ — Me mostre fotos do pássaro símbolo do Brasil

🤖 — Aqui está! Por acaso, ele é chamado de “Sabiá-Laranjeira”

Nesse exemplo, o chatbot poderia apenas ter mostrado a foto. Porém, pela maneira que foi perguntado, fica subentendido que a pessoa não sabe o nome desse pássaro, portando o seu nome também é uma informação necessária.

Mantendo a Conversa

Para que apresente o máximo de informações úteis e necessárias, o chatbot não pode apenas deixar um diálogo parar quando não for de acordo com um fluxo estabelecido. Por exemplo:

🙋 — Me chame um Uber

🤖 — Infelizmente não tem nenhum motorista a menos de 20 minutos de você, tente novamente mais tarde.”

Nesse exemplo, a conversa somente chega ao fim, com o usuário insatisfeito com o diálogo estabelecido. Uma maneira mais cooperativa do Bot agir seria:

🙋 — Me chame um Uber”

🤖 — O motorista mais próximo está a 20 minutos de você, tudo bem?

🙅 — Não

🤖 — Nesse caso, posso procurar de novo daqui a uns 3 minutos, pode ser?

🙆 — Ok!

Erros com um Usuário Cooperativo

Devemos lembrar que numa conversa, não só o usuário espera que o bot seja cooperativo, mas na maioria das vezes ele mesmo irá fornecer mais informações do que foi perguntado, podendo o chatbot não ter sido programado para responder isso.

Se for apresentar um erro, tente fazer com que ele flua de uma maneira natural, sem chamar atenção.

Por exemplo:

🙋 — Reserve um almoço no Laçador

🤖 — Quantas pessoas irão?

🙋 — Eu e a minha esposa

🤖 — Ocorreu um erro, por favor diga um número, você pode dizer por exemplo “Dois”.

Nesse caso, o usuário tenta ser cooperativo dando mais informações do que o bot esperava. Por estar esperando um número, o bot não só chama atenção ao erro mas também menospreza o usuário dizendo o que ele pode ou não falar, como se o usuário não soubesse português.

Pesquisas com usuários mostram que o seguinte fluxo é o suficiente para que o usuário responda da maneira esperada:

🙋 — Reserve um almoço no Laçador

🤖 — Quantas pessoas irão?

🙋 — Eu e a minha esposa

🤖 — Desculpa, são quantas pessoas?

🙋 — Duas

Aproveitando um Usuário Cooperativo

Leia esse exemplo:

🙋 — Gostaria de um sapato

🤖 — Que tipo de sapato deseja?

🙋 — Um sapatênis tamanho 40

🤖 — Um sapatênis então, qual tamanho?

🤦 — 40…

Nele, o usuário foi cooperativo e informou mais informações do que foi perguntado. Assim, um chatbot ciente do Máximo de Quantidade poderia ter aproveitado essa informação e não ter sido redundante.

🙋 — Gostaria de um sapato

🤖 — Que tipo de sapato deseja?

🙋 — Um sapatênis tamanho 40

🤖 — Ótimo! Veja essas opções que encontrei:

E os usuários não cooperativos?

Devemos lembrar também que um usuário pode não ser cooperativo, talvez devido à sua personalidade, mas seu bot deve estar preparado para eles:

🤖 — Você está com seu endereço em mão?

🙋 — Sim.

🤖 — Ótimo, qual é ele?

🙋 — Rua Capitão Leopoldo, 233

Um usuário cooperativo teria respondido á primeira pergunta já com o endereço, mas quando isso não ocorrer, o chatbot só precisa dar um empurrãozinho para receber a informação.

2- Qualidade

Essa é uma fácil de se entender. Num bom diálogo, o usuário espera que o chatbot seja verdadeiro e o bot espera que aquilo que o usuário está dizendo é verdade.

Então, tome cuidado para que uma informação que um chatbot responda seja sempre verdadeira.

Se um usuário perguntar "o shopping está aberto?" durante um feriado, o que deve o bot responder?

Talvez em feriados o horário seja diferente ou o shopping nem abra, então deve-se planejar as respostas do bot de acordo com diversas situações.

3- Relação

🙋 — Ligue para a polícia

🤖 — Tocando “Ligue para a Polícia”, no Spotify

Quando perguntamos ou solicitamos algo, esperamos que a resposta seja de acordo com o que foi solicitado.

Infelizmente, o estado da tecnologia de Processamento de Linguagem Natural (NLP) e Reconhecimento de Voz ainda permitem erros na compreensão de fala ou de significado.

Não dependa de Botões

Para resolver completamente este erro tecnológico, muitas pessoas criam bots que dependem muito de recursos como Quick Replies ou Menus.

Mas convenhamos, se você vai criar um chatbot que funcione somente através de botões, vale mais a pena criar uma Interface Visual como um site ou aplicativo.

Para manter os benefícios de um Chatbot, devemos lembrar que eles são primeiramente experiências conversacionais.

Frases de Treinamento

Para evitar erros de relação, adicione um número grande e variado de frases de treinamento aos seus chatbots, aumentando a sua capacidade de responder uma solicitação de maneira correta.

Mantenha o Contexto

Quando construindo os diálogos da sua experiência, lembre-se armazenar os contextos de uma conversa. Assim, quando o usuário perguntar ou solicitar algo, o bot saberá o que está sendo referido:

🙋 — Tem algum sanduíche vegetariano?

🤖 — Temos o Laça Rebel, com carne feita de cogumelos

🙋 — E quanto custa ele?

🤖 — O Laça Rebel está na promoção por somente R$ 20, quer adiciona-lo no carrinho?

Ao ser perguntado "quanto custa ele", o bot deverá lembrar que a pessoa está se referindo ao Laça Rebel, o sanduíche apresentado anteriormente.

Manutenção

Implemente também formas de visualizar as interações feitas com sua plataforma. Assim, será possível constantemente realizar manutenções a fim de melhorar o funcionamento e a experiência do bot.

4- Maneira

Esse é um dos piores problemas encontrados em diversas plataformas conversacionais, seja um bot no WhatsApp, uma Action para o Google Assistant ou até uma ligação automatizada. Usuários sempre esperam conversas claras e breves.

Conversas são intuitivas, usuários sabem português

🤖 — Essa é a sua primeira mensagem. Thayná enviou “Oi”.

🤖 — Para escutar a mensagem novamente diga “escutar”, para responder a mensagem diga “responder”, para ver a próxima mensagem diga “próxima”

🙎 — Próxima

Essa interação acima traduz como: “eu sou uma experiência extremamente instável, por favor fale comigo pisando em cascas de ovos”.

Um dos benefícios da Interface Conversacional é a sua facilidade e intuitividade, você não precisa ensinar o usuário a falar. O diálogo a seguir tem o mesmo resultado do exemplo anterior, mas respeita a regra de Maneira:

🤖 — Essa é a sua primeira mensagem. Thayná enviou “Oi”.

🤖 — Você quer escutar ela novamente, responder ou ver a próxima?

🙋 — Ver a próxima

Seja Breve

Esse é até um dos traumas que pessoas tem com Chatbots. Uma boa conversa consiste em uma troca de turnos entre uma pessoa e outra, então seu bot não tem motivo para monopolizar um diálogo.

🤖 — Bem vindo ao sistema automático de atendimento da Cloe. Se tiver alguma dúvida, a qualquer momento digite “ajuda”. Para ver seu saldo digite “saldo”, para trocar de plano digite “trocar plano”, para opções de pré-pago digite “pré-pago”, para opções de pós-pago digite “pós-pago”. Você já ouviu falar da nossa nova promoção Cloe Mais? Com ela você pode conversar ainda mais com toda a sua familia. Para saber mais sobre a Cloe Mais, digite “cloe mais”.Para conversar com um dos nossos atendentes, digite “conversar”.

🙎 — pós-pago

Se é difícil ler essa interação, imagina ter que escutar!

Planeje um caminho feliz do seu usuário que seja simples e intuitivo, sem fazer ele ter que ler/escutar um monólogo. Vale até lembrar que o usuário vai querer cooperar com a regra da quantidade, agilizando ainda mais o diálogo:

🤖 — Oi eu sou a Cloe, sua atendente automática, você prefere falar comigo ou com um atendimento humano?

🙋 — Com você mesmo, quero trocar meu plano

🤖 — Tudo bem, me diz seu número que já podemos trocar o plano

Complete Informações

Muitas vezes, o usuário responde uma informação de maneira incompleta ou de uma forma não desejada, por exemplo:

🤖 — Qual é o número do seu telefone?

🙋 — 998267054

🤖 — Não entendi, diga o número no formato (XX) XXXXX-XXXX

🙎 — (81) 99826-7054

Nessa interação, a conversa foi redundante, sem aproveitar as informações já ditas. Uma maneira mais cooperativa de realizar ela seria:

🤖 — Qual é o número do seu telefone?

🙋 — 998267054

🤖 — E o DDD?

🙋 — 81

Fácil facinho para o usuário, que nem precisava saber que era para o DDD ser informado na primeira pergunta.

Seja claro e direto

Muitas vezes, Chatbots são prolixos ou realizam o chamado Techsplaining com seus parceiros de conversa. Você prefere alguém falando com você assim:

🤖 — A sua lista de pagamentos atualmente possui os seguintes contatos:

ou assim?

🤖 — Certo, essas são as pessoas que você pode pagar:

Interações simples requerem menos esforço e fricção, tornando a experiência do usuário no geral mais agradável. Veja esse outro exemplo comum:

🤖 — A transação solicitada foi realizada com sucesso

Tranquila né? Mas poderia ser substituída facilmente por:

🤖 — Feito!

Conclusão

O processo de design da Experiência de Usuário (UX) de um Chatbot deve levar em consideração como pessoas conversam de maneira eficaz. Assim, deve-se levar em conta a cooperação através de diálogos, criando experiências com menos fricção e esforço.

Se quiser aprender a como aplicar estas regras em um chatbot profissional, você vai curtir o seguinte vídeo:

Digite "comentário" para escrever sua opinião ou experiência com o design de Interfaces Conversacionais, assim a gente pode também manter uma conversa cooperativa.

Esse texto é baseado na palestra "Aplicando Hacks de Conversação na sua UI de Voz" realizada por James Giangola na Google I/O de 2017. Vale a pena assistir ela para ver outro posicionamento sobre o tema (em inglês).

--

--

Michael Barney Jr
Bots Brasil

Desenvolvedor apaixonado por Produtos Digitais e Plataformas Conversacionais 🤖