Como construir um bot baseado em ux research e uma pitada de ux writing, por favor 🤖

Rayssa Araújo
rayssaraujo
10 min readSep 24, 2019

--

relacionando ux research, ux writing, estratégia de conteúdo e pizza — sim, pizza — pra criar chatbots incríveis.

Os chatbots não são mais tão novidade assim. Empresas já utilizam como forma de posicionamento de marca e em diversos aspectos, seja pra pedir uma pizza ou auxiliar um atendimento que poderia ser humano. E não estou falando só de versão web não, esses robôzinhos habitam URAS, seu celular e onde mais a tecnologia chega.

Tive um curso sobre ux writing para chatbots recentemente dado pelo Leo Queiroz e pelo Fabiano, dois designers que trabalham no Banco do Brasil hoje em dia, e me perguntei porque estamos falando disso agora se os assistentes virtuais estão aí há um tempo. A experiência com os bots estão cada vez mais próximas do que seria um humano — vide Samantha do Her, Siri na Apple, Alexa… e uma infinidade de assistentes conhecidos — porque eles são adaptáveis inclusive em personalidade. E como é que não pensamos em não deixar o robô ser claramente um robô antes?

Faz um exercício aqui comigo!

  1. Pensa numa pessoa que você goste muito. Pensou?
  2. Agora imagina como ela pediria pra você passar o prato na mesa.
  3. Você consegue quase ouvir a voz da pessoa, né? Se ela usa gíria, se tem uma entonação, qual o humor que ela usaria pra falar essa frase.

É exatamente pra isso que o Ux Writing tá sendo tão importante nos bots. Não se trata mais de somente fornecer uma informação ou realizar uma tarefa. Precisamos criar familiaridade, um tom de voz e seguir quase que um arquétipo pra esses carinhas manterem a mensagem que a marca ou serviço pretendem passar, além de se relacionar bem com o tipo de público que desejamos alcançar. Tudo isso da forma mais natural que uma máquina pode ser hahaha!

> Em nome de quem o bot fala e como ele deve se apresentar?
Lembra da personalidade da marca? Agora vamos falar de Tom de voz da marca do seu serviço, é o formato que você utiliza para expressar a marca. A dica é conhecer a personalidade do avatar pra criar respostas e discursos alinhados ao negócio lembrando que não é a sua voz.

Outra ideia também é que o bot fica ainda melhor quando é um especialista no assunto dele, que seja focado. Não tentar abraçar o mundo, escolher um assunto e arrasar nele, sempre focado em responsividade — adaptabilidade do conteúdo às plataformas. Não necessariamente vai ter o mesmo conteúdo disponível em todas elas.

O ideal seria que no primeiro contato seu usuário soubesse que está lidando com um assistente virtual, mas que ao longo da interação esquecesse que tá falando com uma máquina.

E isso não é impossível, temos que lembrar que quem treina um bot — sim, se tiver inteligência artificial, eles aprendem igual crianças, sabe? — é um humano.

Antes de falarmos então de como construir conteúdo estratégico pra um chatbot, vamos ver alguns itens essenciais da estrutura de diálogo de chatbot e que tem tudo a ver com o nosso trabalho como designer.

> Estrutura do inventário.

Corpus de conhecimento: é a base de dados sobre determinado assunto que o bot vá tratar. Nele, temos intenções e entidades.

1.1 Intenções
É o que resume o pensamento, o propósito. Ex: #pedir. (Nas anotações de código, normalmente é visto com # antecedendo a intenção)

1.2 Entidades
É um conjunto de valores associados aos sinônimos que formam uma unidade. Ex: @pizza (Nas anotações de código, normalmente é visto com @ antecedendo a entidade)

Sabe Arquitetura de informação? Esse conhecimento seria útil nessa etapa. Então, fica o modelo ontológico:

#Intenção: como uma categoria maior.
@produto: como uma categoria menor da intenção e que vá interagir diretamente com ela.
_ categoria sobre produto 1 — — — — respostas possíveis e suas variações.
_ categoria sobre produto 2 — — — — respostas possíveis e suas variações

fonte: retirado de uma apresentação que ocorreu no evento DEX2019

Melhor escrevendo em um exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

#Pedir: é a intenção que o usuário está tendo.
@pizza: é o que que o usuário quer pedir — lembre-se da ligação com a intenção.
@sobremesa: pode ser mais de um item.
_sabor
________ calabresa, calabresa, atum, portuguesa.
_tamanho _____ 1 fatia, p, m, g, grande, brotinho, família.

As categorias são características peculiares da entidade e elas podem se relacionar entre si.

Como assim? Você pode pedir uma pizza, calabresa tamanho família e o bot tem que entender que faz tudo parte do mesmo pedido.

E como isso aplicaria num diálogo? Imagine o diálogo seguinte:

👧🏻”Quero uma pizza”
🤖 “Que sabor?”
👧🏻 “Calabresa”
🤖 “Qual o tamanho?”
👧🏻 “Uma grande”

Até agora, tudo certo. O bot já estaria assimilando então as categorias a intenção de pedir da entidade pizza e construindo o pedido da mocinha. Mas e se tivesse um plot twist — porque a gente sabe que o ser humano não é tão previsível assim — e ocorresse a resposta:

👧🏻 “Tem como colocar borda de catupiry e trocar pra Mussarela?”

O bot estava provavelmente construindo uma lógica de passo 1, passo 2, passo 3… e assim vai, pelas categorias que foram cadastradas de antemão por um humano. Agora, ele vai ter que associar “borda de catupiry” a categoria “adicionais” da entidade Pizza — que você não colocou previamente — e “Mussarela” a categoria “sabor”, realizar essa inclusão e substituição respectivamente. Mas se você não cadastrou os adicionais antes e o sabor já havia sido pedido, como ele vai saber que ainda estamos falando da mesma Pizza? E como o usuário recebe a resposta?

É aí que entra o nosso trabalho de UX :)

Fluxos de conversação

Alguns objetivos do fluxo de diálogo são: definir os conteúdos a serem apresentados, o escopo inicial do projeto e facilitar a vida do curador e do desenvolvedor nesse projeto.

Pensar em todas as possibilidades desse fluxo de diálogo e fazer uma curadoria para as interações que surgem nesse fluxo e que não foram pensadas previamente é um dos nossos papéis. Provavelmente a melhor forma de sair dessa situação sem prender o usuário em um looping eterno sem resolver porque o bot não aprendeu ainda Adicionais de pizza, seria de forma “genérica”, mas orientando o usuário:

🤖 “Hmmm… ainda não aprendi sobre esse item! Vou falar pro Pizzaiolo sobre ele depois. Mas se quiser continuar pedindo a sua pizza, nossos sabores são esses: (lista de sabores de pizzas disponíveis), você pode escolher uma dessas!”

Quando rolasse a curadoria dos diálogos, veríamos que essa resposta de adicionais ficou pendente e trataríamos esse dado mais tarde — isso que é ensinar o bot quando ele acerta ou não :)

Uma dúvida que pode ter surgido nesse momento: A intenção é sempre um verbo e a entidade um substantivo?

Não necessariamente. Seria o ideal, mas dependendo do critério utilizado pela equipe responsável pelo bot isso pode variar. O importante são as relações criadas entre esses eles.

Até agora, falamos do porquê do ux writing estar aplicado na estratégia de conteúdo de chatbots. Mas e o Research onde se encaixa? Aqui.

Você já ouviu a palavra do Atomic Research?

Pensando em categoria-entidade-intenção pra organizar uma pesquisa, estava pensando que podemos levar esse conceito também pra o diálogo construído pra bots: átomos-molécula-organismo. Ferramentas como o Aurelius poderiam ajudar super nessa construção e interligação que acaba ficando complexa quando o bot é um especialista em determinado assunto. Inclusive, o atomic poderia servir até pra ajudar na curadoria de assuntos específicos.

Em átomos cadastraríamos as categorias, as entidades seriam as moléculas e a intenção o organismo. Sendo assim, quando o usuário inputasse a frase contendo átomos que não necessariamente são da mesma molécula como a categoria borda se relacionando com entidade pizza e a categoria sabor que pode também se relacionar com a entidade sobremesa além da pizza, por exemplo, o chatbot procuraria por categorias maiores como a intenção do pedido e no fluxo de diálogo, ele permitiria o usuário acrescentar como “observação” ou “adicionais” num fluxo geral caso ele encontrasse um átomo que não fosse cadastrado e que seria revisado depois pela curadoria.

É o que vai dar a diferença Espontaneidade x Intencionalidade.

Escutei uma metáfora muito boa sobre esse tópico quando se tratava de diálogo. Espontaneidade é a resposta pronta que o seu 🤖 daria e que precisa parecer natural é como bater numa muriçoca quando ela tá pra te picar. É reflexo. Agora, intencionalidade é você, como a palavra já diz, utilizar da melhor resposta pra aquele caso em específico, mudando quando o cenário também se altera. Seria como passar repelente ao invés de ficar se debatendo. A intencionalidade normalmente se atrela a inteligência.

um slide com fundo branco mostrando tópicos de métricas a serem aplicadas no chatbot em retângulos azuis
Um print da apresentação do curso.

Sem contar na importância de dados sendo criados com o cruzamento de dados e podendo ser tratado mais tarde para entender melhor o negócio da solução.

Ex1: X% dos seus usuários tentaram incluir borda de catupiry até o mês Y

Ex2: X% dos usuários que falaram de pizza pediram calabresa

Ex3: x% dos usuários que pedem pizza calabresa, incluem borda de catupiry no final do processo.

Pronto! Eu, por exemplo, passo a sugerir novos sabores de pizza pra pizzaria e tudo isso com base em dados e sem frustrar o usuário no quesito comunicação.

Falando mais de Research & Bots ❤

Algumas metodologias e abordagens da área de pesquisa no design poderiam auxiliar na construção de diálogos de chatbots.

Jornada criada para o pedido de pizza via aplicativo

#1 Jornada do Usuário

Antes de tudo, pense no serviço/produto que você está oferecendo com o seu bot.

  • O que o seu usuário quer fazer ao entrar em contato com ele?
  • Como é o processo sem o bot pra realizar a mesma tarefa?
  • Quais são os pontos de maior frustração e os de maior engajamento?

Faça as anotações necessárias e reflita sobre os pontos de contato existentes.

#2 Brainstorming
ok, depois de entender todos os pontos de contato, pense em quais os tipos de perguntas que o usuário poderia fazer em cada um desses pontos. É um grande mapeamento de dados e que vai ser parte da nossa base de perguntas pra desenvolver o fluxo de diálogo do bot. O ponta-pé inicial!

Equipe montando o fluxo de usuário e as perguntas possíveis de quem pede pizza por aplicativos.

#3 Card Sorting
Chegou o momento para organizar as informações levantadas no fluxo de usuário em grandes blocos. Quais perguntas tem a ver com pedido? E quais são de forma de pagamento? Tente unir grupos por aproximação também.

#4 Fluxo de diálogo
Agora vamos começar a estruturar em forma de fluxo uma linha de pensamento para realizar a tarefa definida: pedir pizza. Use as perguntas que você já formulou no Brainstorming e lembrando do processo que você desenhou na jornada de usuário. A ideia é que se construa um mapa mental contendo se o usuário falar X, o bot deverá responder Y. Se ele falar Y, responda W e assim em diante.

#5 Teste de usabilidade
Hora do teste! Vamos ver se o fluxo montado funciona e se está um diálogo fluido? É nessa hora que a gente vê se o banco de perguntas inicial está contemplando a situações mais recorrentes. O mais legal? Você não precisa de tecnologia super avançada pra testar, apenas 03 humanos e os roteiros que montamos até agora.

defina a tarefa: pedir pizza.

recrute participantes:
01 pessoa fica no papel de 🤖.
01 pessoa fica no papel de usuário interagindo com o 🤖
01 pessoa atua como curadoria.

atue: O bot apenas lerá o roteiro montado e visualizado pela equipe até agora. O usuário irá interagir — em modo de conversa mesmo — com a pessoa que interpreta o bot como falaria no chat. E o curador anota todo gap que existir nas conversas ou possibilidades caso o usuário entre em um looping de respostas ou não encontre a ajuda necessária para realizar a tarefa inicial.

E aí, pronto pra lançar o seu bot? Se tudo estiver ok, basta implantar no código mais próximo de você hahahah! Uma ferramenta interessante pra esse processo é o DialogFlow, já viu?

Você consegue aprovar ou ajustar a intenção do bot com o input do usuário de forma bem fácil!

#6 Análise heurística

Nessa parte, é legal a gente não esquecer de validar a usabilidade do bot levando em conta as heurísticas de Nielsen, lembra delas?

  1. Visibilidade do Status do Sistema
  2. Compatibilidade entre o sistema e o mundo real
  3. Controle e liberdade para o usuário
  4. Consistência e Padronização
  5. Prevenção de erros
  6. Reconhecimento em vez de memorização
  7. Eficiência e flexibilidade de uso
  8. Estética e design minimalista
  9. Ajude os usuários a reconhecerem, diagnosticarem e recuperarem-se de erros
  10. Ajuda e documentação

Usabilidade boa, diálogos sem gaps, tarefa alinhada. Manda ver na execução do bot! :)

E lembre-se trabalhar com chatbot é um trabalho contínuo, sempre haverá curadoria porque acredite, você e nem a máquina tem resposta pra tudo.

texto de um comentário feito em blog de notícias sobre chatbots
Não sabemos mesmo. Comentário retirado das interações do G1 em reportagem sobre bots.

🤖 Para ler mais sobre bots e diálogos:

- Robôs que abandonaram o inglês e criaram linguagem própria para atingir uma tarefa

- Ux writing para bots

- O que (não) sabemos sobre conteúdos para chatbots

Edit: Mudei o título do post retirando o "Receita para bot" pelo entendimento de que não há receita pra nada e sim, sugestões de boas práticas. Mas era meramente uma brincadeira com o fato de sempre darem o exemplo de pizza nos cursos relacionados a aprendizado de bot. De qualquer forma, achei melhor modificar :)

--

--

Rayssa Araújo
rayssaraujo

user experience research designer at @IPSY and crazy lady plants, moccha addicted ☕ 🐹 https://www.linkedin.com/in/rayssaaraujo/