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.
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>
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'