Redirecionar para um subbot com mensagem ativa do Whatsapp

Olá,

Eu estou em um seguinte cenário, eu tenho um template do Whatsapp criado que é usado para mensagem ativas por meio da API. Este template contem opção de Quick Reply, e ai vem a minha dúvida: como eu consigo definir pra qual subbot ele irá depois de responder o Quick Reply da mensagem ativa?

Se alguém puder me ajudar, ficaria muito grato.

@BrunoC tu consegue me dar uma luz aqui cara?

Olá @Vitor_Ricardo_de_Pau, tudo bem?

Primeiramente, bem-vindo à nossa comunidade. Antes de responder sua pergunta, vou só pedir pra você dar uma lidinha nos nossos Primeiros Passos, pra ter uma melhor experiência aqui com a gente. Beleza?

2 curtidas

Bacana!

Então, você pode usar o que pessoa responder (salvando o valor da variável {{input.content}} em outra variável ).

Por exemplo:

Digamos que você tenha um Quick Reply com duas opções: Suporte e Segunda via.
A resposta do usuário estará nessa nova variável que você acabou de criar, que aqui vou chamar de resposta.
Agora você pode criar 2 ações de redirecionamento, uma para cada uma das opções e usar uma opção de Condição para redirecionamento, que fica no final da ação. Ali você configura da seguinte maneira:

Cenário 1: Direcionar para subbot de Suporte

image

2 curtidas

Tudo certo, e ai? Desculpe se acabei sendo um pouco grosso na minha abordagem xD

Mas então, estou fazendo testes de mensagens ativas no whatsapp por API e toda vez que eu envio elas e a respondo, acabo caindo no fluxo do bot de entrada do Router. Tendo isso em mente, se eu for e enviar na conversa a resposta da minha mensagem ativa, ele vai cair no mesmo fluxo, e não gostaria disso.

Tentei alterar o status do usuário para um determinado bloco de um bot por meio da API, e não obtive sucesso.

Você acha que teria alguma maneira de que quando eu enviasse uma mensagem ativa ele fosse para um determinado fluxo direto? Ou sempre ele irá entrar no meu bot de entrada do router? Ou estou fazendo tudo errado mesmo? :smiley:

Agradeço desde já!

Por aqui tudo certo também, obrigado por perguntar! E fica tranquilo, não foi nada grosseiro! xD

Você está usando o método de Change User State, correto? Você está usando as chaves e IDs dos fluxos dos subbots, principal ou do Roteador?

É possível sim, tanto pela API, quanto usando as nossas ferramentas disponíveis na Plataforma. Você está fazendo de forma “correta”, só precisamos analisar o que está errado :joy:

1 curtida

Sim, estou usando a API do Change User State, segue o exemplo:

POST https://http.msging.net/commands HTTP/1.1
Content-Type: application/json
Authorization: Key {{Token_Router}}
{
  "id": {{GUID}},
  "method": "set",
  "uri": "/contexts/{{whatsapp_identifier}}/[email protected]{{bot_id}}",
  "type": "text/plain",
  "resource": {{block_id}}
}	

Estou fazendo o envio pelo Insomnia para teste, e ele retorna o seguinte:

{
  "method": "set",
  "status": "success",
  "id": {{GUID}},
  "from": "[email protected]/#iris-hosted-5",
  "to": {{identificador_router}},
  "metadata": {
    "#command.uri": "xxxx",
    "uber-trace-id": "xxxx"
  }
}

Obs: a variável whatsapp_identifier é equivalente ao user-identity, visto que o ambiente que está sendo testado é o Whatsapp.

Porém, quando faço a interação na conversa, o usuário não está no fluxo que setei. Estaria errado fazer desta maneira? Porque a ideia é consumir uma API e enviar as mensagens ativas por meio desta API, e após o envio delas, o usuário ir para um fluxo/bot exclusivo desta mensagem, e para isso, pensei em depois que enviar a mensagem ativa, fazer o Change User State também.

Alguém para me auxiliar neste problema?

Aparentemente está tudo certo. A configuração de Contexto do Roteador está ativa?

Então @BrunoC, consegui entender e resolver aqui (acho que seria legal adicionar isso na documentação do Change User State), vou deixar registrado a minha solução pois talvez sirva de exemplo para outras pessoas, segue:

Antes de você executar o Change User State, você deve fazer uma requisição pra alterar o master-state:

{
  "id": {{GUID}},
  "method": "set",
  "uri": "/contexts/{{user-identity}}/master-state",
  "type": "text/plain",
  "resource": "{{bot_id}}@msging.net"
}	

Feito isso, o usuário estará dentro do bot, e daí sim você deve executar o Change User State:

{
  "id": {{GUID}},
  "method": "set",
  "uri": "/contexts/{{user-identity}}/stateid%40{{flow_id}}",
  "type": "text/plain",
  "resource": {{block_id}}
}	

E por fim, quando o usuário mandar uma msg, ele estará onde deve estar de acordo com as 2 request feitas.

4 curtidas