Diálogos / Chatbot

O que é? Como funciona? Para que serve?

 

Apresentação

Visão Geral

O chatbot é um recurso fundamental para você que deseja automatizar e padronizar o seu processo de atendimento. Com ele, é possível criar fluxos de respostas automáticas para prestar um primeiro atendimento ao seu cliente, também como auxiliar os usuários da plataforma na utilização de outros recursos com poucos cliques.

A ordem em que os diálogos são listados impacta diretamente em sua prioridade na ativação. Os diálogos que ficam no topo tem maior prioridade em relação aos que ficam abaixo.

E como funciona o chatbot?


Diálogos

Diálogos é como são chamados as ações configuradas no chatbot. É no diálogo que configuramos como vai ativar, o que ele vai executar e em qual contexto o cliente ficará “marcado”.


Os diálogos podem funcionar tanto de forma automática com os gatilhos como de forma manual, sendo executadas em momentos definidos por algum usuário.


Basicamente os diálogos se divide em 4 partes, são elas:

 

Gatilhos

Os gatilhos definem como o chatbot vai ativar. Com um conjunto de gatilhos configurados você consegue definir se diálogo vai ativar somente nos finais de semana, em casos em que o cliente envie um arquivo de áudio, caso o cliente tenha um status especifico e muito mais.

Atenção: Os gatilhos só se aplicam a ações dos clientes! Caso um usuário da plataforma mande uma mensagem para o chat e se encaixe em algum gatilho, isso não ativará o chatbot. Os usuários possuem uma forma de ativar diálogos manualmente.

Vamos utilizar como exemplo um diálogo que deve ativar quando o cliente entrar em contato fora do horário de atendimento, servindo como aviso automático para esses casos.

O chatbot seguirá a regra configurada nesse gatilho e ativará caso alguma dessas combinações “batam” quando o cliente interagir. O exemplo está configurado para ativar quando:

  • O cliente interagir em um horário antes das 09:00h ou em um horário à partir das 19:00h. (current_time<09:00 or current_time >= 19:00)

ou (or)

  • O cliente interagir no domingo.(sunday)

ou (or)

  • O cliente interagir no sábado e em um horário à partir das 13:00h. (saturday and current_time>=13:00)

Porque não colocamos todos os dias da semana nos gatilhos?

Não é necessário colocar no gatilho todos os dias da semana, pois com a primeira parte se referindo apenas ao horário, ela irá ativar naquele período, independente do dia.

E o sábado? Porque está no gatilho?

No sábado o horário de atendimento encerra um pouco mais cedo, então nesse dia em especifico é necessário configurar que no sábado a partir das 13h o diálogo também deve ativar.

E o domingo? Porque não tem horário?

O domingo é um dia todo que não há atendimento, independente do horário, então os primeiros gatilhos que só ativam para quem interagir antes das 9h ou depois das 19h não servem. Nesse caso, adicionamos o gatilho do dia no diálogo e caso o cliente interaja no dia em questão, independente do horário, o diálogo será ativado.

Conectivos e parênteses, como usar?

Os conectivos ‘AND’ e ‘OR’ são o que dão logica ao seus gatilhos e impactam imensamente em como tudo vai funcionar, por isso é necessário atenção na logica usada para criar os gatilhos.

Vamos ver um exemplo comum de utilizar os conectivos de forma incorreta:

❌ Forma incorreta dos gatilhos

Os gatilhos acima estão incorretos pois prejudicam a interpretação do chatbot. O chatbot interpretará o gatilho acima da seguinte forma:

“Devo ativar quando o cliente interagir antes das 9:00h e depois das 19:00h.”

Isso está incorreto porque não é possível o cliente interagir em um horário que seja menor que 9h e maior que 19h ao mesmo tempo.

Então, a forma correta de escrever esses gatilhos seria utilizando o conectivo ‘OR’ e assim o chatbot interpretaria da seguinte forma:

✅ Forma correta dos gatilhos

“Devo ativar quando o cliente interagir antes das 9:00h ou depois das 19:00h.”

Agora está correto porque nesse caso sim, é possível o cliente interagir antes das 9h ou depois das 19h.

E quando utilizar o ‘AND’?

O ‘AND’, em casos de horários, serve para ativar em um período entre determinadas horas. Por exemplo, um horário de almoço.

O ‘AND’ nesse caso está correto porque o chatbot deve interpretar como:

“Devo ativar caso o cliente interaja entre 12:00h e 13:00h”

Tá, mas e os parênteses?

Os parênteses servem para separar e “isolar” situações de ativação, funcionando em conjunto com os outros gatilhos. No exemplo que utilizamos anteriormente tínhamos 3 situações: O horário do dia a dia, o horário especifico do sábado e o domingo como um todo.

Observe então que cada situação é separada por um parênteses. A situação do horário do dia a dia está em um parênteses e a situação do sábado também. O domingo não está separado em parênteses porque é composto por apenas um gatilho, já estando isolado das outras situações por meio dos conectivos ‘or’.

Os conectivos e parênteses são de extrema importância na utilização de todos os gatilhos, sejam de horários, status ou qualquer outra coisa. É com os conectivos que você cria a lógica de ativação para o chatbot interpretar.

Ações

A ação é o que o chatbot vai executar quando ativado automaticamente (por gatilhos) ou manualmente (por usuários).

Existem diversas ações e elas podem ser utilizadas todas de uma única vez ou com intervalos predefinidos.

As ações disponíveis atualmente são:

  • Responder: Envia uma mensagem para o chat.
  • Anexar: Envia um arquivo para o chat.
  • Encaminhar: Envia um aviso para o WhatsApp de um usuário da plataforma.
  • Delegar: Atribui ou remove um usuário/departamento como responsável do chat.
  • Tag: Atribui uma tag ao chat. Não serve para remover, apenas atribuir.
  • Funil: Atribui um chat a uma etapa de um funil ou mais. Não serve para remover, apenas atribuir.
  • Anotação: Realiza uma anotação dentro do chat.
  • Leitura: Atribui ou remove o ícone da notificação de mensagem não lida do chat.
  • Diálogo: Executa outro diálogo configurado no chatbot.
  • Status: Altera o status do chat.
  • NPS: Envia uma pesquisa de NPS para o chat.
  • CRM: Ação que realiza um post para um webhook, utilizado para configurações que envolvem API.
  • Template: Envia uma mensagem de template para o chat. Mensagens de template são configurações especificas de contas que utilizam o WhatsApp Business API Oficial.

 

Exemplo de ação de mensagem

As ações, além de especificas como listado acima, também possuem configurações extras. No caso da ação ‘Responder’, que envia uma mensagem para o chat, nós conseguimos utilizar os comandos mencionados em respostas rápidas e montar o texto da forma que desejarmos.

Ao lado de toda ação existirá também as opções de: status, execução e atraso.

Status

Serve para que você ative ou desative determinadas ações de um diálogo, fazendo que não seja necessário refazer todo um diálogo para remover uma ação que você não deseja apagar.

Execução

Determina se a ação vai acontecer de forma automática ou se ficará agendada, aguardando a aprovação de um usuário para executar.

Atraso

Com o atraso você define quanto tempo aquela ação deverá acontecer depois do diálogo ativar. Não se confunda, o que você está atrasando é a ação e não o diálogo.

Um exemplo de uso disso seria um diálogo que envia 2 mensagens, uma é um texto extenso que o cliente levará um tempo para o cliente ler e concordar e a segunda mensagem seria uma confirmação após 20 minutos, do tipo “Você concorda com o texto acima?”

Assim, com uma combinação de ações, você pode definir tudo o que vai acontecer com a ativação de determinado diálogo e o que vai acontecer com o chat do cliente.

Você pode, por exemplo, criar um diálogo para finalizar o atendimento para que os usuários utilizem manualmente. Esse diálogo teria que fazer o seguinte:

  • Enviar uma mensagem
  • Inserir o chat na etapa de um funil
  • Alterar o status para resolvido
  • Realizar uma anotação

Lembrando que as ações acontecem na ordem de cima para baixo, então lembre-se de utilizar o botão para arrastar as ações e deixar na ordem desejada.

Acionando diálogo dentro de um chat

Depois de configurado, basta executar o diálogo manualmente dentro do chat que será finalizado!

Contextos

Os contextos são marcações que ficam nos chats para que você consiga utilizar como gatilhos específicos e controlar como a evolução da conversa automática vai acontecer.

Por exemplo, digamos que você possui uma mensagem inicial que pergunta ao cliente se ele quer atendimento do departamento comercial ou suporte, digitando números para selecionar o desejado.

Mensagem que pergunta a opção desejada

Nesse mesmo diálogo é necessário colocar um contexto para que consigamos captar a resposta do cliente referente a essa pergunta e encaminha-lo para o departamento escolhido.

O diálogo que envia a pergunta também marca o contexto

Então, agora sabemos que o cliente marcado com o contexto “URA = Departamento” recebeu a mensagem que pergunta sobre o departamento desejado.

E como criamos os diálogos para encaminhar a opção escolhida?

Sabemos que para encaminhar ao departamento comercial, além de ter que digitar o texto exato ‘1’, o chat também precisa ter como gatilho o contexto criado anteriormente.

Adicionando o contexto aos gatilhos

No final, ficando assim:

Ou seja, nesse exemplo, o cliente precisa estar no status aberto, digitar o número 1 e estar marcado com o contexto da pergunta anterior, URA = Departamento.

Assim, quando esses gatilhos ativarem, o cliente vai receber uma mensagem, vai ser delegado para o departamento escolhido e também vai ter o seu contexto atualizado, assim ele não ficará preso no contexto anterior.

No exemplo acima então, seriam utilizados 3 diálogos: 1 para fazer a pergunta sobre os departamentos e os outros 2 para ativar de acordo com o número selecionado. Cada um deles com seu conjunto de gatilhos, ações e contextos.

Informações importantes sobre os contextos:

  • Os contextos podem ser criados com qualquer nome, tanto a variável (URA, utilizada no exemplo anterior) quanto o valor (Departamento, utilizado no exemplo anterior), exceto 3: 0, null e None.

 

O número 0 e o texto Null são reconhecidos como valores nulos no chatbot. Já o None é utilizado para quando o contexto não existe no chat. Por exemplo, alguém que nunca passou pela pergunta de departamento que utilizamos no exemplo não possui o contexto URA, então ele é “URA = None”.

  • Os contextos são essenciais na criação de diálogos que respondem após outros diálogos, como menus e submenus.

 

  • Lembre-se sempre de “atualizar” o contexto que o cliente está conforme as perguntas evoluem. Se você nunca mudar o valor do contexto, deixando sempre URA = Departamento, por exemplo, o chatbot vai sempre estar esperando a resposta do número selecionado e ativando sempre que o cliente enviar algum número correspondente. Para atualizar é simples, basta manter o mesmo nome da variável e alterar apenas o valor.
    URA = Departamento > URA = Departamento1

 

  • É possível aplicar mais de 1 contexto no mesmo diálogo, desde que tenham variáveis diferentes.

 

  • Para o contexto aparecer na lista de gatilhos é preciso que ele exista antes, ou seja, não é possível criar o diálogo que é a sequência de uma pergunta antes que o diálogo da pergunta seja criado e tenha o contexto.

 

Configurações do diálogo

As configurações de um diálogo também são um ponto importante da configuração de um chatbot. É nelas que você definirá como o diálogo deve executar, se deve estar disponível para os usuários ativarem manualmente ou se deve estar oculto e outras coisas. São elas:

Tipo de diálogo

Existem 3 tipos de diálogos: Padrão, Contínuo e Manual.

O Padrão é um tipo de diálogo que ativa automaticamente e apenas executa 1 vez por ação do cliente, para aguardar a próxima ação. Voltando para o exemplo dado anteriormente, digamos que você tenha o diálogo que pergunta sobre o departamento que o cliente deseja atendimento. Esse diálogo deve ser padrão, pois o chatbot deve executar e parar, aguardando a resposta do cliente para prosseguir.

Já o Contínuo é um tipo de diálogo que executa e segue para o próximo diálogo, caso o cliente se encaixe em mais de um, sem aguardar uma segunda interação do cliente. Por exemplo, digamos que você deseja que toda vez que um novo chat surgir, uma tag seja aplicada nele automaticamente, mas ainda sim ele deve ter acesso ao menu que pergunta sobre os departamentos.

Assim, quando um novo chat surgir, o diálogo configurado para novos chats vai executar e aplicar a tag, e sendo continuo, vai seguir para ativação do próximo diálogo, caso o cliente também se encaixe nos gatilhos do mesmo.

Por último, temos o tipo Manual e como o próprio nome sugere, ele é um diálogo que não vai ativar automaticamente, somente se executado por um usuário ou se ativado por outro diálogo.

Invocável

O invocável serve para você decidir se o diálogo deve ou não aparecer na lista de diálogos manuais para os usuários. Isso é útil para deixar a visualização dos seus usuários mais limpa e também evitar que alguém acione manualmente algo que deveria ser automático.

Máximo de execuções

O máximo de execuções você define o limite de quantas vezes aquele diálogo pode acontecer no mesmo chat. Isso não vai fazer com que o diálogo seja executado repetidas vezes na mesma ativação, mas sim um limite na conversa. Por exemplo, vamos supor que você apenas deseja que a pergunta sobre o departamento só possa acontecer uma vez por chat, nesse caso você altera o máximo de execuções para 1 e quando o cliente ativar esse diálogo uma vez, ele não conseguirá ativar novamente, mesmo que se encaixe nos gatilhos. O limite de execuções não se aplica a execuções manuais, podendo assim passar manualmente do limite configurado.

Intervalo mínimo

No intervalo mínimo é decido de quanto em quanto tempo aquele diálogo pode ser ativado novamente na mesma conversa. Vamos ao exemplo utilizado anteriormente de fora de horário. Geralmente  colocamos um intervalo de 10 minutos (600 segundos) para que a mensagem de fora de horário se repita novamente. Assim, caso o cliente envie 3 mensagens separadas mas em um intervalo de 10 minutos, ele só vai receber uma mensagem de fora de horário.

Certificar contexto

O certificar contexto serve para validar os gatilhos do diálogo, geralmente manuais, que será executado. Por exemplo, digamos que manualmente o seu usuário vai executar o diálogo de finalizar atendimento.

Com o certificar contexto ativo, o diálogo só ativará se o cliente se encaixar nos gatilhos, que nesse caso é o status em atendimento. Então, mesmo sendo executado manualmente por um usuário, o diálogo só vai acontecer se o chat se encaixar nos gatilhos.

Restringir à usuários/departamentos

Ao restringir um diálogo, você define para qual usuário ou departamento aquele diálogo deverá aparecer como opção para acionar manualmente. Digamos que você irá possuir 2 diálogos para finalizar o atendimento: um para o vendedor “Josué” e outro para a vendedora “Luana”.

Assim, para evitar que o Josué execute o diálogo que deve ser apenas utilizado pela Luana, nos restringimos o diálogo para o usuário dela.

Grupo

Os grupos servem para você separar visualmente os diálogos. Então se você tem uma série de diálogos para finalizar atendimento, você cria um único grupo para todos eles, facilitando assim a identificação dos mesmos. No nosso caso, temos um grupo de diálogos para a nossa Wiki:

E isso facilita tanto na organização da lista de diálogos quanto para os usuários que precisam executar manualmente, sendo mostrados assim:

Condições adicionais

A regra nas condições adicionais é um campo onde você pode colocar os gatilhos por extenso, no lugar de seleciona-los na parte superior referente a gatilhos, para que funcionem em conjunto com os gatilhos já existentes. Vamos ver um exemplo:

Nesse caso, além do gatilho de status em atendimento, nós também temos os gatilhos por extenso referente aos horários, o mesmo do exemplo que temos no inicio dessa página. Assim o diálogo só ativará se o gatilho e as condições adicionais baterem.

Vale ressaltar que as condições apenas são uma forma de colocar os gatilhos por extenso, não vai servir para criar um tipo gatilho que não existe na plataforma.

E isso é tudo em relação as opções internas de um diálogo, porém ainda temos mais algumas coisas para explorar…

 

Intenções

A intenção é um tipo de gatilho de diálogo mais complexo, onde você consegue colocar várias palavras e textos agrupados para utiliza-los como um único gatilho.

Ao criar uma nova intenção, você deverá definir:

Titulo

Serve apenas para identificação, não impacta na ativação.

Palavras chave

As palavras chave servem como a base de cada intenção, pois é nela que o chatbot vai se basear para ativar ou não. Nesse nosso exemplo, como é uma intenção referente a preço de algo, nós colocamos os sinônimos que podem ser utilizados na mensagem enviada pelo cliente.

Frases de exemplo

As frases de exemplo são modelos de perguntas que podem ser enviadas pelo cliente utilizando as palavras chave.

Pontuação mínima

Após criar uma intenção, ao voltar para a lista inicial, você poderá definir a pontuação mínima para que essa intenção ative ou não quando estiver em um diálogo. A pontuação é definida da seguinte forma:

  • Palavra chave: 10 pontos
  • Mensagem similar a frase de exemplo: 2 pontos
  • Mensagem exatamente igual a frase de exemplo: 100 pontos

Assim, após criar uma intenção, você também consegue definir em qual pontuação mínima o cliente deve se encaixar para ser valido para a intenção.

Nessa tela inicial, você também pode adicionar novas palavras chave ou frases de exemplo.

Depois, basta utilizar a intenção como gatilho de algum diálogo!

 

Entidades

Já as entidades servem como um grupo de palavras chave e seus sinônimos que podem ser utilizados como gatilhos de um diálogo, assim como as intenções. A diferença entre intenções e entidades é que nas entidades não existe o sistema de pontuação, então elas funcionam de forma mais precisa e só ativarão se o cliente mandar exatamente a palavra que existe na entidade.

Ao criar uma nova entidade, você deverá definir:

Nome

Serve apenas para identificação, não impacta na ativação.

Descrição

Serve apenas para descrever qual a utilidade daquela entidade, não impacta na ativação.

Sinônimos/Padrões

Nos sinônimos / padrões você colocará as palavras chaves que farão parte da entidade, colocando o seu valor principal e seus sinônimos.

No nosso exemplo acima, colocamos que a palavra “Preço” tem como sinônimo “Preco”, “valor”, “custo”, “valores”, “custos” e “preços”.

Assim, quando colocarmos a entidade como gatilho, tanto a palavra “Preço” como qualquer outro sinônimo configurado funcionarão.

Existem 2 tipos valores em entidades:

  • Sinônimos: Como usado anteriormente, serve para palavras diferentes que possuem o mesmo sentido da principal (valor).
  • Padrões: Servem para alterar o tipo da entidade para que ela aceite uma expressão regex no lugar de sinônimos pré definidos. Com um Regex, por exemplo, conseguimos criar uma entidade que aceite palavras com 11 dígitos, independente de como for escrita.

O regex é uma expressão regular utilizada mundialmente na área de desenvolvimento, nós não conseguiremos ensinar a criar regex's diferentes aqui.

Caso tenha interesse ou necessidade de criar algum regex, indicamos que pesquise e verifique como montar esse código.

Após criar a sua entidade, basta utiliza-la como um gatilho no seu diálogo!

IAWSM