Como descobrir o tunnel id de um usuário que nunca entrou em contato com o chatbot com estrutura roteador e subbots?


Olá, estamos realizando um projeto de criação de um chatbot em uma estrutura de roteador e subbots.

Estamos passando por alguns problemas por usar essa solução. O primeiro problema é o fato de não existir atendimento no bot roteador. Esse problema afeta várias coisas nas lógicas dos subbots.

1-O subbot em que tiver o atendimento aos clientes (atendimento humano no desk), não pode usar o compartilhamento de contexto com o roteador, pois se o fizer o card do usuário para os atendentes fica limitado a informação do tunnel id do usuário.

2-A solução de desligar o compartilhamento de contexto do subbot com o roteador leva a outro problema, não se pode mais executar ações sobre o usuário de forma externa usando o id do usuário no roteado.

Ex.: Nós precisamos enviar ativos de whatsapp para usuários que nunca entraram em contato com o bot, e para que possamos fazer o tratamento certo da resposta para esse ativo, precisamos mover o usuário para um determinado bloco no subbot principal, que por sua vez é onde fazemos todo o atendimento humano (o que nos impede de ligar o compartilhamento de contexto com o roteador). E para executar essa requisição HTTP de mudar o usuário de contexto no subbot principal precisamos da informação do tunnel id do usuário. A única maneira que encontramos de encontrar essa informação foi a de pegar a última mensagem que o usuário trocou com o roteador(por meio da requisição de histórico de conversa). Porém, quando o usuário ainda não conversou com o roteador, não sabemos como pegar essa informação.

Esses problemas geram algumas perguntas:

1- Existe alguma maneira de gerar/descobrir o tunnel id de um usuário antes de ele falar com o bot roteador?

2-Existe uma previsão/maneira de recolocar de novo a função de atendimento humano no próprio bot roteador?

3-Existe alguma maneira de manter o compartilhamento de contexto no subbot principal (onde está o atendimento humano), sem estragar as informações do usuário que aparecem no card no Desk?


3 comentários

Murilo, como você usa o tunnel id?

Para enviar o comando change user state eu uso a key do roteador e o flow id (código do sub-bot).


Para atendimento, nós temos um sub-bot separado só para fazer essa função. Assim a gente centraliza todos num lugar só, já que temos uma arquitetura com mais de 17 sub-bots, seria inviável ficar cadastrando atendentes e fluxos de atendimento em todos os sub-bots.

Olá Raphael, obrigado pela resposta.


“Para enviar o comando change user state eu uso a key do roteador e o flow id (código do sub-bot).”

Eu não posso fazer dessa maneira a princípio, pois nós tivemos que desligar o compartilhamento de contexto do bot principal com o Roteador para que o card do usuário apareça com todas as infos no Desk.


No seu subbot especializado em atendimento humano, você mantém o compartilhamento de contexto ligado? Se sim, você tem alguma solução para que o card do usuário apareça com todas as infos no Desk para o atendente?

Reputação 5

Olá @Murilo_Rodrigues_Pad,



Criarmos um conteúdo no Help Center para ajudar na recuperação de informação quando se utiliza o sistema de router 💁🏿‍♂️


https://help.blip.ai/docs/en/router/recuperando-infomacoes-contatos-subbots/

Comente