[Resolvido] 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?

1 Curtida

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.

1 Curtida

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?

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 :tipping_hand_man:t5: