Não consigo filtrar por respostas dentro de uma requisição JSON

Hello guys and girls!

Olha só, estou filtrando uma requisição JSON por uma API.
Eu vi no curso do builder, que para eu pegar uma resposta em específico eu teria que usar:

{{Resposta@Opção}}

Só que ela não puxa a informação, fica em branco no bot.
Se eu filtrar sem o @, vem todo o corpo da resposta, bem certinho.

Exemplo do corpo da resposta:

[{"id_contabanco_cb":"93","st_descricao_cb":"Descrição da Conta","st_nome_con":"Nome do CLiente"

Alguém pode me ajudar?

Hey, Bruno!

Para você utilizar {{Resposta@Opção}} o corpo da reposta precisar ser {"Opção": "valor"}, o que não acontece para o exemplo que você enviou. Assim, a melhor solução seria utilizar um script com JSON.parse() como Ação de Entrada/Saída para filtrar essa requisição.

2 Curtidas

Mas ele vem assim, não? :((

“id_contabanco_cb”: “1”,
“st_descricao_cb”: “Conta Principal”,
“st_uf_uf”: “SP”,
“id_uf_uf”: “25”,

Exemplo de outro retorno API.

Então, no caso o exemplo que você mostrou a resposta é uma lista:

Bloco de Citação
[{“id_contabanco_cb”:“93”,“st_descricao_cb”:“Descrição da Conta”,“st_nome_con”:“Nome do CLiente”

Então, será necessário utilizar um script semelhante a esse para obter o id_contabanco_cb:

const run = (response) => {
    response= JSON.parse(response);

    return response[0].id_contabanco_cb;
}

Caso queira retorna apenas o primeiro elemento da resposta, substitua return response[0].id_contabanco_cb por return response[0].

2 Curtidas

Meu Deus, não tenho conhecimento desse script, vou tentar fazer. :sweat_smile:

2 Curtidas

Não deixe dê dar uma olhada na documentação de Ação: Executar script, com certeza irá te ajudar! :wink:

2 Curtidas

Estou com esse erro aqui na execução, sabe o que pode ser?

order: 0

type: "ExecuteScript"

parsedSettings: {"function":"run","source":"/**\n * All input variables needs to be passed as function param;\n * Objects received as param needs to be parsed. Ex.: JSON.parse(inputVariable1);\n * Objects returned needs to be stringfied. Ex.: JSON.stringify(inputVariable1);\n **/\n \n const run = (response) => {\n \n response= JSON.parse(response);\n\n return response[0].vl_emitido_recb;\n}","inputVariables":["response"],"outputVariable":"vlemitidorecb","LocalTimeZoneEnabled":false}

Consegui! rs

Falta o input da variável! Gratidão pela ajuda.
Caso eu queira transformar mais de uma resposta, como faço? Consegue me mostrar à sintaxe?

1 Curtida

Outra coisa. Se eu quiser definir, o seguinte fluxo:

O cliente digita a palavra “Prédio” e eu quero passar uma ID em específico que representa essa palavra através de uma variável.

Como faço? Precisa ser por script também?

E a última dúvida!

const run = (response) => {
response= JSON.parse(response);
return response[0].link_segundavia;
}

Esse último retorno trás um link, tem como eu esconder esse link atrás de um texto?
Por exemplo, se clicar na palavra “Boleto” ele direciona para o link.

Nesse caso, você pode utilizar Definir Variável como uma Ação de Saída como na primeira imagem e, em seguida, utilizar a funcionalidade Parecido com ou Igual, como na segunda imagem, para identificar se a resposta do usuário é parecido com ou igual a Prédio. Assim, você terá a VARIAVEL com o valor PREDIO se identificar a condição acima utilizada por você.

image

1 Curtida

Então, isso depende muito da plataforma que você utiliza. É o BLiP mesmo ou WhatsApp?

1 Curtida

Os dois na verdade rsrs

1 Curtida

Então, você pode utilizar uma nova funcionalidade do BLiP que é o Web Link e caso queira entender um pouco mais você pode consultar essa documentação.
image

2 Curtidas

Único problema é que o link é uma variável :frowning:

image

Eu não sabia que não era possível utilizar variável como link, me desculpe :sweat_smile:

Eu consultei alguns colegas e eles disseram que não tem como fazer nesse caso, Bruno.

2 Curtidas