Tratar multiplas mensagens


Bom dia!

Tenho o seguinte cenário. Um cliente ao iniciar a conversa com o bot envia varias mensagens de uma vez, antes do bot mandar a primeira. Isso faz com que cada mensagem passe pelas condições do bloco, porem como elas já foram enviadas, as instruções contidas são ignoradas e o bot não se comporta como deveria.

Existe alguma maneira de manusear múltiplas mensagens dessa forma via builder? Caso o cliente envie várias mensagens seguidas ele apenas considere a ultima recebida desde a ultima resposta? Entendo que não é a melhor solução mas evita do bot ‘pirar’.


10 comentários

Reputação 3

Esse é um problema sério que até então é uma duvida sobre como tratar de forma correta.


Normalmente os usuários, na primeira interação, quebram tudo e a experiência não é boa para uma primeira impressão.


Também tenho essa dúvida.

Infelizmente o blip não trata múltiplas mensagens ainda.

Cada resposta do usuário vai fazer o fluxo andar uma casa.


Infelizmente, você terá que controlar a resposta do usuário armazenando em uma variável e validando se é aquilo que espera…e isso vai deixar a conversa um pouco mais chata!


Isso é uma coisa que a IA poderia ter, um interpretador de “desabafo” hehehhe


Acompanhando…

Oi Lucas!


Tiveum problema semelhante, vê se serve como solução pra você:


A interação era iniciada muito da forma:


User > Oi!

Bot > Olá usuário, qual seu nome?

User > Boa tarde

Bot > Opa, não entendi, tenta de novo

User > Tudo bom?

Bot > Ainda não entendi.


Lidei fazendo reconhecimento de frases comuns de início de conversa (saudação, cumprimento, etc) e o bot não responde a elas. Ficou assim:


User > Oi!

Bot > Olá usuário, qual seu nome?

User > Boa tarde

User > Tudo bom?

User > Me chamo Blip

Bot > Oi, Blip! Vamso começar.

Obrigado pela resposta.

Entendi a dica, porem não parece funcionar adequadamente pro meu caso.

No meu bot tentei bastante prever o que o cliente diz, inclusive coloquei esse manuseio de saudações/cumprimentos via AI. O grande problema esta em casos onde o cliente fala ‘pausadamente’, usando parágrafos. Devido ao delay no envio de mensagens, principalmente em Whatsapp, o cliente tem tempo de digitar varias coisas antes do bot receber a mensagem. Um exemplo:



Cliente: Bom dia

Bot:Bom dia! Você já é cliente? (aqui o bot aguarda por uma confirmação, que será comparada via entidade)

Cliente: Sim

Cliente: Poderia verificar uma fatura pra mim?

Cliente: Pode mandar no meu email [email protected]

(até então, devido ao delay do chat, o bot nao recebeu nenhuma mensagem)

Bot: Ótimo, pode me passar seu CPF?

Bot: Por favor digite um CPF válido

Bot: Por favor, verifique se seu CPF está correto



Em outro caso:



Cliente: Pode mandar

Cliente: minha fatura atualizada

Cliente: por favor

Bot: Desculpa, não consegui entender

Bot: Estou verificando suas faturas. Deseja receber em seu email ou via chat? (match via intenções)

Bot: Desculpa, não consegui entender



Este é realmente um problema complexo de se resolver, e se dá em sua maior parte pelo cliente não entender que o bot segue os comandos (quase) literais. Uma vez que é impossível prever tudo que o cliente vai falar, acredito que uma melhor solução seria uma forma de agrupar (ou, no mínimo, pegar apenas a ultima) as mensagens recebidas após a ultima mensagem enviada pelo bot. Assim seria feito um join em todos os parágrafos em um único texto, evitando que o bot passe por vários blocos descontroladamente. Porem, não consegui pensar em como criar isso via builder. Também deixar o cliente sem resposta mesmo após falar ‘Oi’ não me parece legal, ao menos uma mensagem de correção deveria ser enviada.

Eu já pensei muito nisso e vejo que a saída menos dolorosa é apresentar um menu numérico pro usuário e fazer ele andar na linha por toda a conversa.


Esse negócio de IA pra interpretar a vontade do usuário é utopia!


Nunca vi um bot de IA inteligente nesse ponto.


O que um humano faz na vida real?

Ele lê um conjunto de mensagens e entende o contexto.

Na sequência ele coloca o usuário nos trilhos novamente, na ordem de atendimento desejada.

Ainda podem existir muitos contextos na enxurrada de mensagens.

Mesmo assim, o atendente humano resolve seguir os trilhos pra organizar a conversa e seguir o protocolo de atendimento.

Sim @Jhoni_Desb não discordo de você.

No meu modelo, ele tenta decifrar o que o cliente quer, se não consegue apresenta um menu numérico.

O problema é mais simples que isso, apenas evitar um spam de mensagens pra atrapalhar o fluxo. Melhor o bot não entender uma mensagem e enviar apenas uma correção, do que 4 seguidas e enviar 4 correções.

Reputação 3

Minha tentativa para amenizar os impactos da mensagens quebradas é deixar uma instrução para o usuário digitar tudo em um único paragrafo.

Sim, é como se o bot tivesse um delay time para reagir…

Podia inclusive reagir apenas depois do status “digitando…”

Mas essa sincronia é complicada e pode onerar inclusive conversas que deveriam ser rápidas.

Complicado mesmo.

Isso é bom, guiar o usuário deixa o fluxo bem mais controlado.

Pessoal estou com essa dor também, queria reacender essa discussão e saber se vocês encontraram alguma solução.  

Comente