CMS Development

FViana
Membro

hubspot cookie callback

resolver

Hey!

 

I need help, we have a website with the integration of the hubspot in the contact forms and in the widget of our bot.

 

However, our widget is loaded before the hubspot by the wordpress footer script. Is there any way to place a callback on the main hubspot script? so that our widget is loaded with the value of the hubspotutk variable?

 

We are currently trying to get the cookie like this, but our script must 'wait' for the hubspot, as the value does not exist, the variable is empty.


function getCookieGeneric(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

var prechat_inputs = {};
prechat_inputs["hubspotutk"] = getCookieGeneric('hubspotutk');

var chatbotKey = 'someKEYHere';

(function(d, r, o, z, a, k, t) {
        a = d.getElementsByTagName('head')[0];
        k = d.createElement('script');
        k.async = 1;
        t = (Math.floor(Math.random() * 1000000) + 1);
        k.src=r + '/' + o + '/droz.js?i=' + z + '&u=' + r + '&v=' + t;
        a.appendChild(k);
    })(document, 'https://chat-app.meudroz.com', 'v1', chatbotKey);

 

 

0 Avaliação positiva
1 Solução aceita
FViana
Solução
Membro

hubspot cookie callback

resolver

I found a solution, but I haven't tested it yet, I believe there is an easier way but I haven't found it anywhere.

It can be considered a workaround.

 

If you do not have the cookie (page was loaded for the first time) ... run this:

 

		var checkCookie = function() {

		var lastCookies = document.cookie.split( ';' ).map( function( x ) { return x.trim().split( /(=)/ ); } ).reduce( function( a, b ) { 
				a[ b[ 0 ] ] = a[ b[ 0 ] ] ? a[ b[ 0 ] ] + ', ' + b.slice( 2 ).join( '' ) :  
				b.slice( 2 ).join( '' ); return a; }, {} );


		return function() {

			var currentCookies =  document.cookie.split( ';' ).map( function( x ) { return x.trim().split( /(=)/ ); } ).reduce( function( a, b ) { 
				a[ b[ 0 ] ] = a[ b[ 0 ] ] ? a[ b[ 0 ] ] + ', ' + b.slice( 2 ).join( '' ) :  
				b.slice( 2 ).join( '' ); return a; }, {} );


			for(cookie in currentCookies) {
				if  ( currentCookies[cookie] != lastCookies[cookie] ) {
					console.log("--------")
					console.log(cookie+"="+lastCookies[cookie])
					console.log(cookie+"="+currentCookies[cookie])
                                        // get value from hubspotutk !!
                                        // call my widget
				}

			}
			lastCookies = currentCookies;

		};
		}();

		window.setInterval(checkCookie, 100);

 

if you have the cookie, verified by the getCookieGeneric function (which I posted up there) take the value and call our widget.

 

This is not ideal, more is something, if anyone has any better ideas please post here below

 

 

Exibir solução no post original

4 Respostas 4
FViana
Membro

hubspot cookie callback

resolver

@dennisedsonis this a good solution? 🤔

0 Avaliação positiva
FViana
Solução
Membro

hubspot cookie callback

resolver

I found a solution, but I haven't tested it yet, I believe there is an easier way but I haven't found it anywhere.

It can be considered a workaround.

 

If you do not have the cookie (page was loaded for the first time) ... run this:

 

		var checkCookie = function() {

		var lastCookies = document.cookie.split( ';' ).map( function( x ) { return x.trim().split( /(=)/ ); } ).reduce( function( a, b ) { 
				a[ b[ 0 ] ] = a[ b[ 0 ] ] ? a[ b[ 0 ] ] + ', ' + b.slice( 2 ).join( '' ) :  
				b.slice( 2 ).join( '' ); return a; }, {} );


		return function() {

			var currentCookies =  document.cookie.split( ';' ).map( function( x ) { return x.trim().split( /(=)/ ); } ).reduce( function( a, b ) { 
				a[ b[ 0 ] ] = a[ b[ 0 ] ] ? a[ b[ 0 ] ] + ', ' + b.slice( 2 ).join( '' ) :  
				b.slice( 2 ).join( '' ); return a; }, {} );


			for(cookie in currentCookies) {
				if  ( currentCookies[cookie] != lastCookies[cookie] ) {
					console.log("--------")
					console.log(cookie+"="+lastCookies[cookie])
					console.log(cookie+"="+currentCookies[cookie])
                                        // get value from hubspotutk !!
                                        // call my widget
				}

			}
			lastCookies = currentCookies;

		};
		}();

		window.setInterval(checkCookie, 100);

 

if you have the cookie, verified by the getCookieGeneric function (which I posted up there) take the value and call our widget.

 

This is not ideal, more is something, if anyone has any better ideas please post here below

 

 

dennisedson
Equipe de Produto da HubSpot
Equipe de Produto da HubSpot

hubspot cookie callback

resolver

@piersg , @Kevin-C  how would you handle this?


Join us on March 27th at 12 PM for the Digital Essentials Lab, an interactive session designed to redefine your digital strategy!
Engage with expert Jourdan Guyton to gain actionable insights, participate in live Q&A, and learn strategies to boost your business success.
Don't miss this opportunity to connect and grow—reserve your spot today!

0 Avaliação positiva
FViana
Membro

hubspot cookie callback

resolver

Anyone can help me?

 

Thanks.

0 Avaliação positiva