Today, we can use the personalization features in the email body such as first name, email address, contact id...etc. However, if we want to pass the contact id (VID) as a parameter in the URL (CTA url), it is not working. Why do we need t Leer más
So the link url in a button on an email cannot be updated to accept this, but we could format a block that looks like a button and it should work - c...Leer más
LOVE LOVE LOVE the parent/child company feature - it's going to help immensely with us managing how all of our local accounts role up into our larger national opportunities. That being said, it would be awesome to have a hierarchy view similar t Leer más
Can I upvote this 5 times? The number of organizations we have in our HubSpot that have child organizations is very large and it is not possible to ...Leer más
While it would be great to have a huge number of deals, we have over 118k Deals from June 2019 in our HubSpot Sales CRM that are all listed as Abandoned Cart. None of them have an associated Contact, Company or Product and there is a deal amount of Leer más
It's the native integration - not sure why that would produce an abandoned cart with $0 value. I exported all of the deals and will cull them from t...Leer más
While it would be great to have a huge number of deals, we have over 118k Deals from June 2019 in our HubSpot Sales CRM that are all listed as Abandoned Cart. None of them have an associated Contact, Company or Product and there is a deal amount of Leer más
It's the native integration - not sure why that would produce an abandoned cart with $0 value. I exported all of the deals and will cull them from t...Leer más
Does anyone know if HubSpot Unsubscribes are managed at an e-mail level or a contact level? We have multiple contacts that opt-out of blogs becusae their company policies prevent them from receiving the emails. But they still want to opt-in with a Leer más
Hi Alex - thanks for this. So there is only one column for OptOut Status on a Contact record, - are you saying that they can opt out of the personal...Leer más
Does anyone know if HubSpot Unsubscribes are managed at an e-mail level or a contact level? We have multiple contacts that opt-out of blogs becusae their company policies prevent them from receiving the emails. But they still want to opt-in with a Leer más
Hi Alex - thanks for this. So there is only one column for OptOut Status on a Contact record, - are you saying that they can opt out of the personal...Leer más
I may already know the answer to this but here it goes - is there a way to assign a Sequence to another Sales Hub user? I am building out sequences to re-engage lost deals and I want the other Sales Hub Users to use the Sequences I build but am not Leer más
Git it. The sequences need to be universal meaning you cannot "hard code" a sales rep name into the sequence. One of the articles showed "sharing" the...Leer más
While it would be great to have a huge number of deals, we have over 118k Deals from June 2019 in our HubSpot Sales CRM that are all listed as Abandoned Cart. None of them have an associated Contact, Company or Product and there is a deal amount of Leer más
It's the native integration - not sure why that would produce an abandoned cart with $0 value. I exported all of the deals and will cull them from t...Leer más
Does anyone know if HubSpot Unsubscribes are managed at an e-mail level or a contact level? We have multiple contacts that opt-out of blogs becusae their company policies prevent them from receiving the emails. But they still want to opt-in with a Leer más
Hi Alex - thanks for this. So there is only one column for OptOut Status on a Contact record, - are you saying that they can opt out of the personal...Leer más
I know that HubSpot allows a user to not see empty fields on the Contact or Deal objects but is it possible to create a custome field on an object that will hold data that is not necessary to be show on the Object? Time in Deal Stage is calculated Leer más
HubSpot is an app built on AWS and there is a structure to those apps that allows redundancy and stability. There are web servers, application serve...Leer más
I know the HubSpot tracking pixel is on an email when sent but we often get an email that is opened 30 or more times that suggests the email may have been forward through an organization. Is there a way to capture (other than the activity feed) the Leer más
Yes - the Contact Record shows ALL of the email opens - I was looking for people who have multiple opens on the same email - likely forwarded the ema...Leer más
I am looking into managing referrals by sending an email to client asking them to forward it to anyone who might be interested in attending a workshop. I can create the UTM tracking code but I want to append the ContactID to the end and capture tha Leer más
//
//
//
//
//
(function($) {
//START END-USER CONFIGURATION
//------------------------------
//selectors for hover card triggers
var allHoverCardTriggers = '.author-name-link,.friend-list .friend a,.username a,.avatar,.user-avatar,.author-img, .authors a, .messageauthorusername a, a.lia-user-name-link, .js-latest-post-by-from a, .user-online-list li a, a.UserAvatar, .customUsersOnline a, #authors a,.dashboard-followers a.user-name, .dashboard-following a.user-name,.author-login-wrapper a, .hb-leaderboard a, .author-img-floated';
// Forward calling page's URL params to endpoint URL as well, helps with testing!
var params = (new URL(location.href)).searchParams;
var userApiUrl = '/plugins/custom/hubspot/hubspot/hovercardendpoint?' + ((params.set('user_id', '') == []._) && params.toString());
if($('.hover-card-container').length<1){
$('body').append('');
}
var cardWrapper = $('.hover-card-container');
var error = false;
var thisUserID = '';
var thisUserLogin = '';
var userLink ='';
var cardTimer;
var leaveTimer;
function mouseenter(Elem) {
var thisEl = Elem;
cardTimer = setTimeout(function(){
var docWidth = $(document).width();
var rightSide = false;
var userLink = thisEl.attr('href');
if($('.ViewProfilePage').length && $('img.lia-user-avatar-profile',thisEl).length){thisUserID = '102332';}
else if(thisEl.attr('href')=='#' || thisEl.attr('href')=='' || !userLink.match('viewprofilepage')){
return false;}
else{
var thisLen = (userLink).split('/');
thisUserID = (thisLen)[thisLen.length-1];
}
var thisCard = $('.profileCard[data-user='+thisUserID+']',cardWrapper);
var cardId = 'userProfileCard-'+ thisUserID;
var addAttr = thisEl.attr('aria-describedby',cardId);
var thisElTopOffset = Math.round(thisEl.offset().top+(thisEl.height()/2)+30);
var thisElbottomoffset = "auto";
var className = "";
var winHeight = $(window).height();
var elOffset = thisEl.offset();
var scrollTop = $(window).scrollTop();
var elementOffset = thisEl.offset().top;
var distanceTop = (elementOffset - scrollTop);
var distanceBottom = (winHeight + scrollTop) - (elOffset.top + thisEl.outerHeight(true));
var distanceLeft = Math.round(thisEl.offset().left);
var bodyHight = $('body').height();
var topParam = '';
var bottomparam = '';
var position = '';
var className = 'topArrow';
cardId
if(distanceBottom < 300 ){
if(distanceLeft < 59){
thisCard.removeClass('bottomArrow');
var className = 'leftArrow';
var distanceLeft = (distanceLeft)+(39);
var thisElTopOffset = (thisElTopOffset)-(150);
}else{
var thisElTopOffset = (thisElTopOffset)-(301); var className = 'bottomArrow'; thisCard.removeClass('topArrow');
thisCard.removeClass('leftArrow');
var distanceLeft = (distanceLeft)-(45);
}
}
else{
if(distanceLeft < 59){
thisCard.removeClass('topArrow');
var className = 'leftArrow';
var distanceLeft = (distanceLeft)+(39);
var thisElTopOffset = (thisElTopOffset)-(150);
}else{
thisCard.removeClass('leftArrow');
thisCard.removeClass('bottomArrow').addClass('topArrow');
var distanceLeft = (distanceLeft)-(45);
}
}
if(thisCard.length && $('.profileCard[data-user='+thisUserID+'] .preloader',cardWrapper).length<1){
$('.profileCard',cardWrapper).hide();
thisCard.addClass(className);
rightSide?thisCard.addClass('rightArrow'):thisCard.removeClass('rightArrow');
thisCard.delay(0).css({'top':(thisElTopOffset),'left':distanceLeft,'bottom':thisElbottomoffset}).fadeIn();
} else {
var ajaxReturn = '';
//just in case
thisCard.remove();
//hover card wrapper markup
var rightArrowClass = rightSide?'rightArrow':'';
if(thisElTopOffset != "auto"){
topParam = 'px';
}
if(thisElbottomoffset != "auto"){
bottomparam = 'px';
}
var profileCardHtml = '';
$.when(
//get the background
$.ajax({
type: 'GET',
url: userApiUrl+thisUserID,
dataType: 'html',
success: function(data) {
$('.profileCard',cardWrapper).hide();
ajaxReturn = data;
}
})
)
.done(function(){
cardWrapper.append(profileCardHtml);
$('.profileCard[data-user='+thisUserID+']',cardWrapper).eq(0).empty().html(ajaxReturn);
if($('.profileCard[data-user='+thisUserID+'] .preloader',cardWrapper).length){
$('.profileCard[data-user='+thisUserID+'] .preloader',cardWrapper).parents('div.profileCard').remove();
}
})
.fail(function(){
//uh oh - bail out!
$('.profileCard',cardWrapper).hide();
});
}
}, 360);
}
function mouseleave(e) {
clearTimeout(cardTimer);
// glowingblue: When the user leaves the hovercard trigger, wait because the leaving could be
// to interact with the hovercard, if we don't wait it will just disappear...because
// we left the trigger, right...so we'll have another handler that check if the mouse is
// over the hovercard and if so clears this timer, so the card doesn't close here
leaveTimer = setTimeout(function() {
if ($('.profileCard[data-user="'+thisUserID+'"]',cardWrapper).length) {
$('.profileCard[data-user="'+thisUserID+'"]',cardWrapper).fadeOut('fast');
} else {
$(".profileCard").fadeOut('fast');
}
}, 2400);
}
$(document).on("mouseenter focusin", allHoverCardTriggers, function(event) {
if(!($(this).parents().hasClass('custom-header'))&& !($(this).parents().hasClass('green-wrap'))){
(leaveTimer !== []._) && clearTimeout(leaveTimer);
mouseenter($(this));
event.stopPropagation();
}
});
$(document).on("mouseleave focusout", allHoverCardTriggers, function(event) {
(leaveTimer !== []._) && clearTimeout(leaveTimer);
mouseleave(event);
event.stopPropagation();
});
// glowingblue: Add handlers for when the users interacts with the hovercard, no closing!
$('.hover-card-container').on('mouseenter', function(e) {
(leaveTimer !== []._) && clearTimeout(leaveTimer);
});
$('.hover-card-container').on('mouseleave', function(e) {
(leaveTimer !== []._) && clearTimeout(leaveTimer);
if ( $(e.target).is('.profileCard[style*="block"]') ) {
leaveTimer = setTimeout(function() {
$(e.target).fadeOut('fast');
}, 2400);
}
});
// glowingblue: add one global root level click handler to also close any visible hovercards
// if the user taps/clicks outside the hovercard
$(document).on('mousedown', function(e) {
if ( !$(e.target).parents('.hover-card-container').length ) {
(leaveTimer != []._) && clearTimeout(leaveTimer);
$('.hover-card-container .profileCard[style*="block"]').each(function() {
$(this).fadeOut('fast');
});
}
});
})(LITHIUM.jQuery);
(function($) {
$(document).ready(function(){
var originalElementId;
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(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 "";
}
function errorDisplay(errType) {
var errAuth = '
Para acceder a esta zona de la Comunidad, inicia sesión.
';
var errAuthLogin = '
To access HubFans and complete challenges, confirm you are logged in by clicking here. Find additional troubleshooting steps here
';
var noBadges = '
To start earning advocacy badges go to the HubFan advocacy program page and start completing advocacy challenges.
';
var noAsks = '
Hooray! No more challenges for you to complete today. Check back in for more challenges tomorrow.