Hey Yassine. You can use the Klaviyo external subscribe link rather than the api which will not expose the private api Key. Let me know if this works for all
<script>
function send_to_klaviyo() {
var email="", fname="", lname="", phone="", city="", state="", country="", zip="";
var emailbox = document.getElementsByName("email")[0];
if (emailbox == null)
return; // no email :o
email = emailbox.value;
var fnamebox = document.getElementsByName("first_name")[0];
if (fnamebox != null)
fname = fnamebox.value;
var lnamebox = document.getElementsByName("last_name")[0];
if (lnamebox != null)
lname = lnamebox.value;
var phonebox = document.getElementsByName("phone")[0];
if (phonebox != null)
phone = phonebox.value;
var citybox = document.getElementsByName("city")[0];
if (citybox != null)
city = citybox.value;
var statebox = document.getElementsByName("state")[0];
if (statebox != null)
state = statebox.value;
var countrybox = document.getElementsByName("country")[0];
if (countrybox != null)
country = countrybox.value;
var zipbox = document.getElementsByName("zip")[0];
if (zipbox != null)
zip = zipbox.value;
var settings = {
"async": true,
"crossDomain": true,
"url": "https://manage.kmail-lists.com/subscriptions/external/subscribe",
"method": "POST",
"headers": {
"content-type": "application/x-www-form-urlencoded",
"cache-control": "no-cache"
},
"data": {
"g": "LISTID",
"$fields": "first_name,last_name,phone,city,state,country,zip,source",
"email": email,
"$first_name": fname,
"$last_name": lname,
"state": state,
"country": country,
"zip":zip,
"$source": "clickfunnels"
}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
}
window.addEventListener("load", function() {
var divs = document.getElementsByTagName("div");
for (i = 0; i < divs.length; i++)
{
var div = divs[i];
if (div.getAttribute("data-title") == "optin button" || div.getAttribute("data-de-type") == "button") {
div.onclick = function() {
// Send the lead to Klaviyo
send_to_klaviyo();
};
}
}
});
</script>