ūüí° Como apontar uma condi√ß√£o de sa√≠da de um bloco para uma vari√°vel

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!!! :blush:

4 curtidas

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

2 curtidas

que demais, @Wesley.Oliveira :heart_eyes:

2 curtidas