Mapeamento de blocos entre bots distintos

Olá,

Estou com uma dúvida em relação ao mapeamento dos blocos entre bots diferentes. Exemplo da estrutura:

  • Router
  • Bot1: bloco1 - bloco2 - bloco3 - bloco4 - bloco5
  • Bot2: bloco1 - bloco2 - bloco3
  • Bot3: bloco1 - bloco2 - bloco3 - bloco4

Tenho uma condição de saída no bloco2 do bot1, que se a condição de saída X for correspondida, deve ir para o bloco1 do bot2 e depois retornar para o bloco2 do bot1.

Como posso implementar esta solução?

Obrigada

Olá Karen! Bem vinda ao fórum!
Bem simples, basta colocar uma ação de saída “Redirecionar a um Serviço” apontando pro Bot2 no Bloco2 do Bot1, depois uma ação de saída “Redirecionar a um Serviço” apontando pro Bot1 no Bloco1 do Bot2, porém a Mensagem de Contexto você precisa tratar nas condições de saída do Bloco-Inicio do Bot1, para que se ele cair lá com aquela mensagem específica, ele já pula pro Bloco2 do Bot1… dá uma olhada aqui:

E pra complementar:

Mas sinceramente, qual a necessidade disso? Achei complexo e sem um contexto pareceu desnecessário… Acho que você corre o risco de ter falhas de transbordo e dependendo do seu fluxo, precisará trabalhar com API para atualizar os dados do cliente, enfim… Será que precisa disso mesmo? Fica a questão aí!

Abraços e obrigado por compartilhar sua dúvida!

Oi, bom dia,

Como o chatbot será utilizado no WhatsApp, o usuário poderá inserir qualquer tipo de mídia na ‘entrada do usuário’, então nas condições de saída de cada bloco será realizada a verificação desse input e, caso ele tenha enviado um vídeo, imagem, aúdio, pdf ou apenas um emoji, por exemplo, o Bot2 será utilizado para reconhecer o tipo de input, enviar uma mensagem de acordo com a mídia e retornar para o bloco do Bot de origem para que o usuário possa continuar o fluxo de onde parou e inserir novamente a sua resposta, nos padrões de input solicitado.

Acredito não ser viável a solução proposta, visto que existem muitos subbots, com vários blocos cada. Além disso, acredito que há outra forma de fazer, pois o BLiP fornece variáveis que identificam o ID dos blocos e dos bots e que talvez eu posso utilizar o a ação de ‘processar comando’ para isso, porém não tenho certeza e não possuo conhecimento suficiente para fazer.

Pesquisando no fórum encontrei uma tópico que talvez se aproxime um pouco do que preciso - na questão da identificação dos blocos -, entretanto a resolução do problema não foi apresentada:

Obrigada

Eu também ainda não tenho conhecimento sobre o Processar Comando, me desculpe não poder ajudar.

Mas então, você não precisa ir pra um outro subbot só para validar o input ué, pode trabalhar dentro do próprio subbot… Inclusive, você pode por o novo bloco da mensagem lá em Exceções, para ficar mais organizado o seu fluxo.

Sobre esse problema do StateID, eu tive um problema muito parecido com meus roteamentos, dá uma olhada:

@Bruno pode ajudar, por favor?

Olá @Karen_Fischborn tudo bem com você?

Primeiramente, obrigado @GabrielPetrone pelo apoio. Tá quase merecendo um mimo :stuck_out_tongue_winking_eye:

Vamos ao problema:
Para fazer o que você quer, vai precisar de alguns passos:

  1. Salvar o ID do último bloco no bot de origem (no exemplo, o Bot 1).
  2. Redirecionar para o Bot2 e fazer o que deve ser feito
  3. Ao redirecionar para o Bot1 novamente, você pode enviar uma mensagem dizendo que ele veio do Bot2, apenas que seja diferenciado o fluxo.
  4. No início do Bot1, você verifica essa mensagem e caso ele tenha vindo de um redirect, você faz uma chamada para a API de Change User State, trocando o usuário para o bloco que ele estava antes (usando o ID do bloco salvo no passo 1).

Porém, sinceramente, receio ter que concordar com o Gabriel de que esta não é uma solução muito viável. Uma API simplesmente resolveria o seu problema, assim como tratar no mesmo bot, como o Gabriel disse.

Haha! Essas dúvidas que me deixam com dúvidas, gosto muito! Daí aprendo ainda mais… :wink:

Já salvei nos favoritos o tópico, se um dia eu precisar de usar o User State para algo parecido com a situação, já tenho a orientação que você passou. Obrigado pelo apoio de sempre!