Neste tutorial passo a passo, vamos mostrar como pegar um dado armazenado em uma página do seu site pelo Merlin através do chatbot 1 e enviá-lo para um chatbot 2 em outra página.

Primeira Página e ChatBot 1

Untitled

O bot possui um fluxo bastante simples. Primeiramente, ele armazena o email em uma variável e, em seguida, utiliza um código JavaScript para armazenar esse valor no cookie "email". Após isso, há uma pergunta com botões para avançar para a próxima página do Chatbot 2.

Código do Chatbot 1 de envio do dado:

// Supondo que você tenha o email disponível dentro do iframe
var email = "{{{email}}}";

// Envia o email para a página principal
console.log({ event_id: "save", email: email })
window.top.postMessage({ event_id: "save", email: email }, "*")

Também será necessário adicionar um script a sua pagina, no body.

Pagina em que o Chatbot 1 esta embedado

<script>
function setCookie(name,value,days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}

window.addEventListener('message', function(event) {
  // Verifica se a mensagem veio do domínio esperado
  console.log(event)
  if (event.data.event_id === 'save') {
    // Define um cookie com o email recebido
    //você pode altetar o numero 1 para a quantidade de dias que deseja armazenar o cookie
    setCookie("email", event.data.email, 1) 
    // Ou faça qualquer outra coisa com o email recebido
  }
});
</script>

Segunda página e Chatbot 2

Untitled

O Chatbot 2 possui um fluxo ainda mais simples. Será necessário apenas adicionar um componente de Código Javascript para criar a variável "email" no Merlin com o valor obtido no Chatbot 1. Para exibir, foi adicionado o "{{{email}}}" na pergunta, juntamente com botões para conferir se a variável foi criada corretamente.

Código do segundo bot em que é obtido o dado preenchido pelo chatbot 1

// Função para ler cookies
function getCookie(name) {
  var cookies = window.top.document.cookie.split(';');
  for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i].trim();
    // Verifica se o cookie começa com o nome desejado
    if (cookie.startsWith(name + '=')) {
      // Retorna apenas o valor do cookie desejado
      return cookie.substring(name.length + 1);
    }
  }
  return null;
}

// Recupera o valor do cookie "email" da página principal
var emailCookie = getCookie("email");
Merlin.setVariable("email", emailCookie); // Exibe o valor do "email" na variável do Merlin 'email'