Skip to main content

šŸ’” 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
Wesley.Oliveira

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

Bia
  • Inspiring
  • April 25, 2022

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


Larissa_Vitoriano

que demais, @Wesley.Oliveira 😍