Olá
Preciso criar um temporizador no meu bot, que não usa disparo ativo, para quando o usuário der o primeiro input ele contar o tempo, quando tiver no valor de 24h não deixar o usuário ter acesso ao bot caso o cliente retorne e direcionar para um bloco de retorno diferente. Alguém pode me ajudar??
Respondido
Temporizador no bot.
Melhor resposta por hewmoreira
Bom dia, Rodolfo, tudo bem?
Um cenário que consigo imaginar é o seguinte:
- No bloco inicial de conversa do cliente tu criar um script para salvar a data/hora atual e armazenar numa variável de nome, por exemplo, “dataInicioConversa”. Além disso, por uma condição de execução desse script para apenas executar se a variável “dataInicioConversa” não existir. Essa deve ser uma ação de entrada.
Exemplo de script:function run() {
const dataHoraAtual = new Date();
return dataHoraAtual;
} - Crie segundo script, ainda nesse bloco, que receba a variável “dataInicioConversa” e que tenha a condição de executar apenas se essa variável “dataInicioConversa” existir. Esse script deverá ler essa variável e comparar com uma nova. Essa nova deve coletar a data/hora atual e comparar se já se passou 24h. Salve esse retorno como bool numa variável de nome, por exemplo, “estaDentroDoPrazo”. Essa deve ser uma ação de entrada.
Exemplo de script:function run(dataInicioConversa) {
const umDiaEmMilissegundos = 24 * 60 * 60 * 1000;
const dataAtual = new Date();
const diferencaEmMilissegundos = dataAtual - dataInicioConversa;
return diferencaEmMilissegundos >= umDiaEmMilissegundos;
} - Crie uma condição de saída para que leia a variável “estaDentroDoPrazo” e verifique se é verdadeiro ou falso. Se for verdadeiro, permita que o usuário prossiga no fluxo. Se não, envie para o fim da conversa com o bot.
- Definir um timeout de expiração para seu subbot. Você pode fazer isso nas configurações gerais do seu bot builder, ou, caso estiver usando router, na definição dos serviços dos subbots. Esse timeout vai ajudar mandar o usuário para o ponto inicial do fluxo. Defina o tempo para “86400” que corresponde a 24h em segundos.
Este tópico foi fechado para respostas.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.

