Criando sistema de validação de acesso com PIN no bot

Olá Blippers tudo bem vocês? :happyblip:

Espero que estejam bem, hoje irei ensinar como usar um sistema de confirmação de e-mail com pin, ele pode ser adaptado para validação do whatsapp também esse tipo de validação pode se incorporado ao bot para garantir que estejamos tratando com o responsável pela conta ou usuário cadastrado no sistema.

Cenário: Nos já conhecemos todos os nosso clientes que acessam ao bot e não precisamos perguntar novamente os dados, para evitar uso indevido iremos enviar um código via e-mail para que ele confirme e autorize aquela sessão.

1° Passo : Na ação de entrada do nosso bloco que cria o pin vamos adicionar o script :


            function run() {
                let pin = Math.random() * (9999 - 1000) + 1000;
                return Math.floor(pin);
            }

Salvando a varivel com nome pin :

2° Passo : No mesmo bloco vamos adicionar uma ação de entrada como definir contato e inserir o pin no extras do contato :

3° Passo : Nesse bloco vamos adicionar um script para formatar o e-mail para o padrão da requisição http essa vai ser uma ação de saída :
variável de entrada = contact.email
variável de saída = emailformatado

script :


            function run(email) {
               let emailformatado= encodeURIComponent(email);
                return emailformatado; 
            }

4° Passo : Continuando nesse mesmo bloco vamos colocar a ação de saída de requisição http para envio do e-mail código da requisição :
referencia : Blip Docs | API Reference

{
    "id":"{{random.guid}}",
     "to": "{{emailformatado}}@mailgun.gw.msging.net",
  "type": "text/plain",
  "content": "Pin = {{pin}}"
}

5° Passo : No bloco de validação criei um script na ação de saída com as variáveis de entrada pin e contra pin na variável de saída use o Isvalidpin :

script:


            function run(pin, contrapin) {
                if(pin==contrapin){
                    return true;
                }
                return false; 
            }

nas condições de saida deixe dessa forma :

Teste do fluxo :
image

Teste do envio do email :
image

4 curtidas