
O Unbounce é uma ferramenta digital para criação de landing pages que utiliza o método drag-and-drop para criação. Ou seja, é possível criar e publicar suas próprias landing pages sem a necessidade de desenvolver códigos. É uma ferramenta fácil e rápida para começar a gerar conversões vindas do seu tráfego.
Este artigo estará disponibilizando um código de script para realizar a integração entre formulários criados na ferramenta Unbounce e o CRM PipeRun. Desta forma, você pode enviar automaticamente os leads gerados na sua landing page para a sua conta no PipeRun.
ATENÇÃO: Este artigo exige conhecimentos técnicos em programação, tendo em vista que será necessário configurar as regras de envio de dados da integração em um JSON e inserir um script na página da landing page.
REALIZANDO A INTEGRAÇÃO
Para realizar a interação, inicialmente será necessário ter uma landing page criada no unbounce e uma conta ativa no CRM PipeRun.
Dentro da landing page, adicione um item javascript e cole o código da integração, disponibilizado logo abaixo.
Lembre-se de ajustar os IDs de acordo com os IDs do seu formulário. Retire ou adicione de acordo com a sua necessidade.
Este script já coleta dados de UTM e cadastra juntamente à Oportunidade dentro de campos customizados no CRM PipeRun. Caso os campos customizados não existam, serão criados automaticamente.
Lembre de alterar a Hash da etapa do funil na linha 95 do código.
CÓDIGO DE INTEGRAÇÃO
document.getElementById('lp-pom-button-196').addEventListener('click', function () {
enviarDados();
});
// sessionStart.min.js
function setCookie(name, value, exdays = 1) {
var expires;
var date;
var value;
date = new Date();
date.setTime(date.getTime() + (exdays * 24 * 60 * 60 * 1000));
expires = date.toUTCString();
document.cookie = name + "=" + value + "; expires=" + expires + "; path=/"
}
function getCookie(name) {
var c_name = document.cookie;
if (c_name != undefined && c_name.length > 0) {
var posCookie = c_name.indexOf(name);
if (posCookie >= 0) {
var hashOportunidade = '';
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) {
hashOportunidade = parts.pop().split(";").shift()
}
return hashOportunidade
} else {
return !1
}
}
}
function eraseCookie(name) {
setCookie(name, -1)
}
function getRequestURL(name) {
if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return decodeURIComponent(name[1])
}
function setSessionStart(sessionStartName, arTerms = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'utm_position', 'utm_device', 'utm_match', 'utm_creative', 'plano', 'tipo']) {
arTerms.forEach(function (termo) {
var nameTermo = sessionStartName + '_' + termo;
sessionStartCookie[termo] = '';
sessionStart[termo] = '';
var termValue = ' ';
var boSet = !1;
if (getRequestURL(termo)) {
termValue = getRequestURL(termo);
boSet = !0
}
if (!getCookie(nameTermo)) {
boSet = !0
}
if (boSet) {
setCookie(nameTermo, termValue)
}
termValue = getCookie(nameTermo);
if (termValue == '') {
termValue = ' '
}
sessionStartCookie[termo] = termValue;
sessionStart[termo] = termValue
})
}
var sessionStartCookie = new Object();
var sessionStart = new Object();
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
if (sessionStart && sessionStart[name]) {
return (sessionStart[name] === null || sessionStart[name] === "" || sessionStart[name] === " " || sessionStart[name] === undefined) ? "" : sessionStart[name];
}
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
function datePrint() {
let date = new Date();
let day = (date.getDate() < 10 ? '0' : '') + date.getDate()
let month = (date.getMonth() < 10 ? '0' : '') + parseInt(date.getMonth() + 1);
let year = date.getFullYear();
let hour = (date.getHours() < 10 ? '0' : '') + date.getHours();
let minute = (date.getMinutes() < 10 ? '0' : '') + date.getMinutes();
return day + '/' + month + '/' + year + ' ' + hour + ':' + minute;
}
function enviarDados() {
// ENDPOINT
let hashEtapaFunil = "XXXXXXX SUA HASH DE FUNIL AQUI XXXXXXXX";
let endpoint = "https://app.pipe.run/webservice/integradorJson?hash=" + hashEtapaFunil;
let dataHora = datePrint();
let name = document.getElementById('nome').value;
let email = document.getElementById('email').value;
let phone = document.getElementById('celular').value;
phone = String(phone).replace(/\D/g, '');
let segment = document.getElementById('segmento').value;
let company = document.getElementById('empresa').value;
let jobTitle = document.getElementById('cargo').value;
let pretend = document.getElementById('voce_pretende').value;
let utm_source = getParameterByName('utm_source');
let utm_medium = getParameterByName('utm_medium');
let utm_campaign = getParameterByName('utm_campaign');
let utm_term = getParameterByName('utm_term');
let utm_content = getParameterByName('utm_content');
let utm_position = getParameterByName('utm_position');
let utm_device = getParameterByName('utm_device');
let utm_match = getParameterByName('utm_match');
let utm_creative = getParameterByName('utm_creative');
// RULES
let rules = {
"update": true,
"equal_pipeline": false,
"validate_cpf": false,
"validate_cnpj": false,
"situation": "unfreezed,undeleted",
"status": "open",
"filter_status_update": "open",
"filter_situation_update": "freezed,unfreezed,undeleted"
}
// LEAD
let lead = [{
"id": email,
"title": dataHora + " " + "Fale com um Consultor",
"name": name,
"email": email,
"job_title": jobTitle,
"company": company,
"mobile_phone": phone,
"last_conversion": {
"source": utm_source || "Formulário >> Fale com um Consultor"
},
"custom_fields": {
"URL Conversao": location.href,
"Segmento": segment,
"Você pretende": pretend,
"Web Whatsapp - Pessoa": phone,
"utm_source": utm_source,
"utm_medium": utm_medium,
"utm_campaign": utm_campaign,
"utm_term": utm_term,
"utm_content": utm_content,
"utm_position": utm_position,
"utm_device": utm_device,
"utm_match": utm_match,
"utm_creative": utm_creative
},
"notes": [
"Título: " + dataHora + " Fale com um Consultor</br>" +
"E-mail: " + email + "</br>" +
"Nome: " + name + "</br>" +
"Celular: " + phone + "</br>" +
"Segmento: " + segment + "</br>" +
"Você pretende: " + pretend + "</br>" +
"utm_source: " + utm_source + "</br>" +
"utm_medium: " + utm_medium + "</br>" +
"utm_campaign: " + utm_campaign + "</br>" +
"utm_term: " + utm_term + "</br>" +
"utm_content: " + utm_content + "</br>" +
"utm_position: " + utm_position + "</br>" +
"utm_device: " + utm_device + "</br>" +
"utm_match: " + utm_match + "</br>" +
"utm_creative: " + utm_creative
]
}];
Object.entries(lead[0]).map((index, value) => {
if (typeof value === 'string' && value === '') {
delete lead[0][index]
}
});
// DATA
let dataToSend = {
"rules": rules,
"leads": lead
}
fetch(endpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
}, body: JSON.stringify(dataToSend)
});
}
</script>Em caso de dúvidas, chame nossa equipe no chat. 😉