Como faço para transmitir os resultados salvos de um fluxo para outro fluxo?

Hello pessoal! : )

Aqui nesse fluxo, eu consigo fazer a soma de todos os produtos, mas não consigo levar esse resultado para outros fluxos, eu já tentei salvar em um campo que eu criei do contato porém mesmo utilizando o mesmo fluxo eu não consigo visualizar o valor.

Dúvida: Tem alguma forma que eu consiga transmitir os resultados salvos de um fluxo e passar para outro fluxo? Porque mesmo usando as variáveis globais eu não posso mudar o valor delas.

Oi, Priscila! Tudo bem?

Consigo entender a importância de salvar valores para acessá-los em outros fluxos, é uma parte importante de oferecer experiências customizadas para o contato que está falando com o chatbot.

As duas sugestões que você sugeriu em tese devem funcionar para esse propósito.
1) Campos de contato
Essa opção é boa caso cada contato possa ter somas diferentes, e você precisa salvar essa informação para cada pessoa.
Você pode fazer operações normalmente nos valores que quer salvar (calcular o máximo, fazer operações matemáticas e alterar os valores) usando expressões e as funcionalidades da plataforma.
Recursos úteis aqui:
a. Esse artigo Weni fala sobre como criar campos de contato
b. Você precisa lembrar de atualizar o campo de contato após fazer as operações que quiser escolhendo a opção Atualizar o contato, como mostra a imagem.

Você está fazendo o passo B? Pode compartilhar mais como você está salvando essa informação no campo de contato?

2) Variáveis Globais
As variáveis globais fazem sentido para um campo a nível do chatbot, e não contato. Ou seja, se você precisa salvar por exemplo uma URL X ou token Y independente de qual contato está falando.
Se a sua variável vai mudar de acordo com o contato, provavelmente as variáveis globais não são o melhor local para salvar essa informação.

De qualquer forma, se fizer sentido para o seu caso, lembre-se:
a. Existe uma limitação do máximo de variáveis que seu chatbot poderá ter.
b. Para atualizar uma global, como você percebeu não existe funcionalidade nativa dentro do fluxo, apenas nas configurações gerais. Mas a Plataforma Weni possui amplos endpoints em sua API, e uma delas é para atualizar globais.

Como exemplo, eu já precisei fazer algo parecido em um projeto sobre COVID-19, onde eu configurei uma campanha para de quatro em quatro horas pegar do site da OMS a contagem de infectados e mortes por COVID-19. Esse dado era salvo numa variável global, e toda vez que um contato perguntava essa informação ela era puxada de lá.

Se isso fizer sentido no seu caso, você precisará dentro do fluxo que você quer salvar ter um card com a opção chamar um webhook para, através da API da Plataforma Weni, salvar a global que quiser:


Com base nessas informações, variáveis globais ainda parecem ser o ideal? Pode compartilhar mais sobre como você está salvando essas informações em campos de contato?

4 curtidas

Ah Priscila, e talvez exista outro jeito fácil.
Digamos que o cenário é precisar acessar os resultados do fluxo Pai a partir do fluxo Filho, e você inicia o fluxo Filho sempre a partir do fluxo Pai através do card Iniciar outro Fluxo.

Você pode usar a expressão @parent para acessar todos os resultados do fluxo Pai. Dá uma olhadinha nesse artigo aqui da Weni e pesquisa por ‘parent’! Você vai encontrar esse trecho:

@parent: permite referenciar todas as variáveis do fluxo pai, ou seja, o fluxo que chamou a carta de ação Enter a flow, dentro do fluxo filho. Caso você queira acessar um resultado do fluxo pai durante a execução do fluxo filho, por exemplo, basta utilizar @parent.results.nome_do_resultado.

Nessa opção, a informação não fica salva nem no contato nem nas globals!
Abcs!

2 curtidas

Hello Yves, tudo bem! obrigado por retornar!

Entendi, perfeita essa explicação! Com esse exemplo que compartilhou e com a indicação dos materiais, testei e consegui resolver essa parte no fluxo, agora deu certo! Muito obrigado, ajudou demais! :smiley:

Ps: A partir da primeira resposta, já consegui solucionar! :white_check_mark:

2 curtidas