Olá, Murilo. Como vai?
No link abaixo explica como buscar variável de contexto via requisição HTTP:
https://docs.blip.ai/?http#get-a-specific-context-variable
Veja se te ajuda ☺
Olá, eu já havia utilizado essa requisição para verificar se a a variável tinha mesmo o valor que eu precisava.
E ela mostra que ela foi criada e tem o valor que eu preciso.
Porém, o meu problema é que não sei como chama-lá dentro do bot, pois colocando apenas {{variavel}}, não funciona.
Mas você está fazendo essa requisição dentro do bot? Porque assim você terá o valor na variável que você definir no próprio builder e aí conseguirá usar no formato {{variavel}}
Não, estou fazendo em uma ferramenta de integração de processos, o integromat, as chamadas são externas.
Os testes que estou realizando são basicamente identificar em que subbot o usuário se encontra,
escrever uma variável de contexto para identificar que tipo de ação quero fazer e por fim mover o usuário para um determinado bloco
E nesse bloco em que o usuário foi movido, a continuidade do flow dependeria da variável já escrita na ferramenta de integração.
Então o que eu realmente preciso saber é a maneira certa de se chamar a variável de contexto criada por meio da chamada HTTP feita externamente,
para executar uma ação dentro do builder.
Eu consigo fazer algo similar com o update de um contato, com a criação de uma informação extra do usuário nos “extras”
porém essa é uma solução que não queria usar, pois ela iria mostrar essa variável no Desk para os atendente no card do usuário.
Entendi, Murilo. Vou fazer umas pesquisas e te falo.
Ei, Murilo.
Fiz umas pesquisas e, infelizmente, não encontrei uma solução direta.
Mas uma forma de fazer seria:
Fazer uma requisição HTTP na entrada do bloco em que o usuário foi movido para resgatar a variável. Algo tipo:
{
"id": "3da135e5-7743-48d6-adad-d74ac38ba6ca",
"to": "[email protected]",
"method": "set",
"uri": "/contexts/{identity}/{variableName}",
"type": "{type}",
"resource": "{resource}"
}
O retorno será algo parecido com o código abaixo:
{
"type": "text/plain",
**"resource": "true",**
"method": "get",
"status": "success",
"id": "XPTO",
"from": "[email protected]/#az-iris4",
"to": "{botIdentity}",
"metadata": {
"#command.uri": "lime://{botIdentity}/contexts/{identity}/{variableName}",
"uber-trace-id": "XPTO"
}
}
onde “resource” é o valor da variável. Aí na sequência você faz um script para pegar somente o valor da variável. Algo tipo:
function run(response) {
try {
objResponse = JSON.parse(response);
variable = objResponse a'resource'];
return typeof variable != 'undefined' ? variable : "null"
}
catch(e){
return "null";
}
}
A variável de retorno desse script vai ter o valor da sua variável de contexto.
Olá, muito obrigado pela resposta!
Eu tinha chegado em uma solução parecida, eu estava usando “processar comando” com a uri :/contexts/{{contact.identity}}/contexto, a mesma ideia de como você fez com a requisição.
Eu achei que não era uma boa solução, pois imaginei que existia uma maneira de chamar diretamente a variável.
Bom então podemos considerar um bug? Talvez devêssemos mover esse tópico para bugs?
Mais uma vez obrigado pela resposta!
Olá @Murilo_Rodrigues_Pad,
Realizei alguns testes aqui e está tudo funcionando como esperado 👨💻
Fique atento quando preencher os valores do endpoint Create a context variable
, o body da requisição é:
{
"id": "3da135e5-7743-48d6-adad-d74ac38ba6ca",
"to": "[email protected]",
"method": "set",
"uri": "/contexts/{identity}/{variableName}",
"type": "{type}",
"resource": "{resource}"
}
Substitua todos os campos marcados com {}
, veja abaixo um exemplo de adição de uma variável de contexto de:
Nome da variável
: variavel
Tipo de variável
: texto
Conteúdo da variável
: “Este é meu conteúdo desta variável”.
Identidade do usuário de contexto
: [email protected]
O body da requisição para criar a variável de contexto utilizando estes dados são:
{
"id": "3da135e5-7743-48d6-adad-d74ac38ba6ca",
"to": "[email protected]",
"method": "set",
"uri": "/contexts/[email protected]/variavel",
"type": "text/plain",
"resource": "Este é meu conteúdo desta variável"
}
Para acessar e imprimir o conteúdo da variável, basta utilizar {{variavel}} .
Obs: A variável só será visível para o usuário de ID [email protected]
, uma vez que a variável está conectada apenas no contexto dele.
Olá, eu fiz exatamente como você está falando, mas usar a variável {{variavel}} (dentro do builder para imprimir ou usar em decisões) não funciona nos meus teste. A única maneira que funcionou foi como a Flavia falou, que é utilizando uma requisição HTTP ou “processar comando” dentro do builder para ler o valor da variável.
Lembrando que todas as requests que faço estão respondendo como 200 e quando uso a requisição HTTP a variável de contexto está associada ao contato que utilizei para criá-la.
@Murilo_Rodrigues_Pad,
O exemplo no fluxo abaixo executa a tarefa que você deseja, para executar siga as instruções abaixo:
Importe o fluxo para seu bot.
- Adicione a Key do seu bot nas VARIÁVEIS DE CONFIGURAÇÃO. No modelo abaixo:
botteste.json (8,1,KB)