💡 Como apontar uma condição de saída de um bloco para uma variável

💡 Como apontar uma condição de saída de um bloco para uma variável
Reputação 5

Olá, pessoal!!!


Enquanto aguardamos o lançamento oficial da funcionalidade pela Take, vamos de solução alternativa!


Vc vai precisar baixar o JSON do bot, pois será necessário editá-lo.

Após baixar, organize/formate o conteúdo para facilitar a edição e para isso, sugiro instalar o plugin JSON Viewer no NotePad++ e utilizar o atalho CTRL+Alt+Shift+M ou utilizar outra ferramenta que melhor lhe atenda.


Vamos editar manualmente o bloco alvo e para isso, vamos utilizar o JSON do link abaixo como exemplo:


JSONBot.json (22,7KB)




No bot de exemplo acima, eu faço 2 perguntas ao usuário e se a resposta for diferente de “Sim” ou “Não”, envio ele para o bloco “Validação”, onde digo que “não entendi sua resposta” e envio-o de volta ao bloco da mesma pergunta. Obviamente num fluxo real, vc deve controlar quantas vezes o usuário pode repetir esse processo para não o deixar em um loop infinito (essa configuração não foi aplicada no bot do exemplo).



Passo 1:

Busque o nome do bloco no seu JSON.

Ele tem que ter pelo menos uma condição de saída configurada.

No nosso exemplo, o nome do bloco “Validação” está na linha 909.



Passo 2:

Busque as condições de saída ($conditionOutputs) do bloco no seu JSON.

No nosso exemplo, as condições de saída do bloco “Validação” começam na linha 881.

A condição de saída que eu quero editar começa na linha 882 e termina na linha 897.



Passo 3:

Edite o “stateId” da condição de saída, trocando o ID do bloco de destino pela variável desejada.

No nosso exemplo, o “stateId” está na linha 883 (print acima) e o ID antigo foi substituído pela variável “{{state.previous.id}}” (print abaixo), que remete ao bloco que o usuário passou anteriormente antes de chegar ao bloco “Validação”.



Passo 4:

Salve o JSON e suba-o de volta ao builder.

Pronto! Agora a condição de saída do seu bloco está apontando para uma variável.

No nosso exemplo, o usuário voltará ao bloco anterior (de uma das perguntas) sempre que inserir um input inesperado no fluxo.



Casos de uso:




  1. Vc pode criar uma variável personalizada com vários IDs de blocos específicos e setar no JSON de acordo com a necessidade, exemplo: {{variável@id}};




  2. Neste bloco editado vc pode criar trackings coletando o nome do bloco anterior ({{state.previous.name}}) e a entrada do usuário ({{input.content}}) para fins de análise e melhoria contínua do fluxo.




  3. Facilidade para validar pontos de decisão (perguntas e/ou menus) em um só lugar, sem a necessidade de enviar o usuário para um bloco de “erro genérico”, mantendo-o engajado no fluxo e diminuindo a possibilidade de abandono.




Observação:


Esta dica é de minha própria autoria. Criada por necessidade, testada e implementada em um cliente que possui cerca de 20 mil acessos diários no WhatsApp, porém mesmo assim, a responsabilidade de colocar algo editado manualmente diretamente no JSON do bot em produção é do próprio desenvolvedor, portanto, teste em HMG todas as edições que fizer para garantir o perfeito funcionamento do fluxo.


Espero que tenha bons resultados!!! 😊


2 comentários

Reputação 7

Sensacional, como sempre, @Wesley.Oliveira! :blipinlove:

Reputação 6

que demais, @Wesley.Oliveira 😍

Comente