[Resolvido] Alterar contexto do usuário numa estrutura com router e subbots

Oi, pessoal!

Vou explicar um pouco a situação para ver se alguém consegue me ajudar. Hoje operamos com um bot apenas e uma das coisas que fazemos com frequência é enviar notificações ativas do WhatsApp. Quando eu envio uma notificação sobre o assunto A, eu também altero o contexto do usuário para que, ao responder, ele passe a falar com o bot sobre o assunto A, referente a notificação ativa. Usamos diferentes notificações de diferentes assuntos, então sempre que um cliente recebe uma notificação, alteramos o fluxo dele.

Estamos projetando agora uma estrutura com um bot router, bot principal e subbots. Queria entender como e quais requisições eu uso para alterar o contexto do usuário para que ele possa ser colocado num contexto específico. Entendo que em algumas situações ele pode ser um novo usuário (nunca falou com o bot), um usuário ativo que está num contexto do bot principal ou um usuário ativo que está num contexto de algum dos subbots.

Eu preciso garantir que, quando o usuário responder a minha notificação, ele esteja no contexto do fluxo que eu quero, independente de onde ele estava antes. Eu consigo fazer isso nessa estrutura? Se sim, alguém tem alguma dica? Com um bot só era muito simples, agora eu estou mais confuso.

Muito obrigado!

Apenas complementado, para fazer isso no modelo atual (apenas um bot), eu uso a seguinte requisição:

POST Set Builder’s User State

{
“id”: “12355433”,
“to”: "postmaster@msging.net",
“method”: “set”,
“uri”: “/contexts/{{contact.id}}/stateid%400”,
“type”: “text/plain”,
“resource”: “{{contexto.que.eu.quero}}”
}

Olá @Ricardo_Ventura,

não é possível realizar esse mesmo processo na estrutura de bots e subbots atualmente.

Boa tarde, eu estou usando de um artifício para contornar essa situação.
Para redirecionar uma conversa para outro subbot eu utilizo o mesmo comando sitado, porem em vez de trocar o contexto diretamente para o contexto de outro subbot, eu troco para um contexto do mesmo subbot que contém a função de Redirecionar para um serviço, nessa função podemos redirecionar a conversa para qualquer subbot que está registrado como um serviço do bot router e ainda enviar juntamente uma mensagem de contexto, que pode ser utilizada para direcionar a conversa para o contexto desejado no subbot de destino.
Espero que ajude.

P.S. Para as requisições HTTP sempre utilizo a chave do bot router e nos id’s de fluxo, coloco os específicos de cada subbot que estou mudando o estado atual.

2 Curtidas