Variáveis no Router

Estou me aprofundando em Router mas estou com dúvidas.
Preciso passar minhas variáveis de um bot para outro durante o redirecionamento.

  1. Neste tópico eu vi que eu devo passar a variável na opção de contexto e ler+tratar através da variável {{input.content}} no início do novo bot:
    [Resolvido] Variáveis de Fluxos no Router

  2. Neste tópico eu vi sobre ativar a opção “Contexto do Router”:
    [Resolvido] Usando o Router - Criar Atendentes

Poderiam me explicar vantagens e desvantagens de um para o outro? Ou enfim, por que optar pela opção 1, ou 2…

Olá, Gabriel. Tudo bem?

Quando você ativa a opção de Contexto do Router, é como se o seu router + serviços (sub bots) virassem um bot só. Com isso você consegue acessar todas as variáveis em qualquer dos sub bots com a sintaxe {{variavel}}, porque estarão no mesmo contexto.

Já variáveis de fluxo não são acessíveis nesse formato e poderiam ser utilizadas para tomadas de decisões no início do fluxo de cada sub bot.

Por exemplo: você tem um sub bot de atendimento onde você direciona para equipes diferentes de acordo com o assunto (uma caixinha no fluxo de atendimento daria as opções, por exemplo). Uma forma do usuário ser atendido é digitando “Desejo atendimento” no bot principal. Mas você também tem no bot principal os assuntos possíveis de atendimento (opções A e B).

Como seria a “recepção” do usuário no sub bot de atendimento para cada uma dessas possibilidades de atendimento? Ambos receberiam a mensagem da caixinha de fluxo dando as opções. Para aqueles que digitaram “Desejo atendimento” até faz sentido, mas para quem já selecionou o assunto diretamente no principal a experiência ficaria repetitiva.

Com esse exemplo, você poderia passar nas variáveis de fluxo (ao redirecionar para o sub bot) algo que identificasse se o usuário já selecionou o assunto e na caixinha de início do fluxo de atendimento, tratar para que o bot “pulasse” a parte de exibir quais são esses assuntos já direcionando ele pro respectivo atendimento. Tipo o exemplo abaixo:

Qualquer dúvida pode chamar aqui :slight_smile:

1 Curtida

Obrigado pelo retorno @Flavia_Gomes_da_Silv

Mas seguindo este exemplo que você deu, eu posso adicionar a minha variável de tomada de decisão dentro do Extras Contato e ao iniciar o subbot, eu testo essa variável para informar se ele precisa ir pelo caminho X ou pelo caminho Y, então funcionaria também certo?

Porém uma outra dúvida é que, em um cenário como este que estamos exemplificando, para eu testar o subbot eu preciso chegar diretamente do meu bot principal, para fazer isso eu preciso iniciar o teste pelo Router… teria algum problema se eu executar este teste diretamente do Router ?

Outro ponto: em prática eu posso usar o Contexto do Router + Variáveis, caso eu queria tomar alguma ação como você disse e também “globalizar/unificar” o meu bot. Não teríamos problemas com isso né?

É que eu ainda não entendi o porque eu devo escolher uma opção para isso, faz muito sentido para mim que tudo deveria estar interligado (seria essa a função do router né? ligar um bot à outro)

Aliais, tem alguma vantagem ou desvantagem em usar Contexto do Router ?

Sim, usar os extras pra direcionar o fluxo funciona também!

O indicado é que você teste diretamente pelo router justamente pra ter essa visão do todo, para que os direcionamentos fiquem transparentes para quem tá usando.

Exato, não tem problemas em usar contexto + variáveis.

A desvantagem de não usar o contexto é que variáveis definidas dentro dos sub bots são vistas somente no escopo dele, e não nos demais sub bots.

Outro ponto é o contato do usuário não ser único já que cada sub bot terá seu próprio contexto. E, com isso, você não consegue acompanhar de forma clara a jornada dele no bot como um todo.

image

Mas talvez no seu cenário isso não seja um problema rs

1 Curtida

Opa! Excelente, confesso que com a documentação sobre Router eu fiquei confuso… eu percebi que era o que você está dizendo (através de algumas leituras no fórum), mas na documentação eu tinha entendido que não iria conseguir separar os atendimentos nos subbots.

Agora um problema sério que aconteceu comigo foi que os testes que eu executei a partir do meu router e que passaram por pelo menos 2 subbots, estão cadastrados como contato ativo. Veja este exemplo:

Eu vou ser cobrado por isso? Quando percebi que ocorreu isso, parei de fazer testes… estou com receio e desconfortável pois não deveria ter acontecido isso em meu ponto de vista…

O contexto dos sub bots estão ligados? Isso cria apenas um contato para cada conversa que você tiver com o bot.

Sobre cobrança não sei te informar, infelizmente.

Sim, contexto estão ligados:

Muito esquisito isso, consegue validar com o time para me ajudar?

Bom dia, Gabriel.

Como você fez esses testes?

Olá @Flavia_Gomes_da_Silv, eu fiz de duas formas, direto no Router na opção de Teste! tanto que o nome dos contatos é "Tester ", não foi direto no canal blip.chat… Este caso está em análise pelo suporte, apenas peço que reforce com eles para que resolvam este problema o quanto antes e não me cobrem por isso. Obrigado pelo apoio!
Em relação a variáveis, está tudo esclarecido, muito obrigado!

Abraços

@GabrielPetrone,

Você só é cobrado pelos contatos ativos do router, desconsidere a contabilização dos subbots da sua arquitetura,

Ficou alguma outra dúvida pontual que podemos te ajudar?

1 Curtida

Obrigado pelo retorno @Caiof , agora estou mais tranquilo hahaha!
Pra finalizar, isso só acontece se eu usar o Contexto do Roteador nos subbots ?