We’re approaching the end of 2023, the year in which we relaunched Sales Hub with dozens of new sales tools . During such a busy year, it’d be easy to forget just how much HubSpot’s sequences tool has evolved. In this year-end recap, we'll unv 続きを読む
What is it?
HubSpot is adding a new object to Sales Hub called ‘Leads’. Leads transform how sellers can manage prospecting and qualification efforts for both inbound and outbound demand gen motions inside of HubSpot. Managing leads happens from 続きを読む
Hi @economize , in this first iteration of the leads object we're keeping the lead properties under a bit of a wrapper as we're still in the process...続きを読む
What is it?
HubSpot is adding a new object to Sales Hub called ‘Leads’. Leads transform how sellers can manage prospecting and qualification efforts for both inbound and outbound demand gen motions inside of HubSpot. Managing leads happens from 続きを読む
Hi @economize , in this first iteration of the leads object we're keeping the lead properties under a bit of a wrapper as we're still in the process...続きを読む
7 Reasons Why HubSpot’s New Leads Object is a Total Game Changer
Forget everything you thought you knew about lead management. HubSpot has just added a new leads object to Sales Hub, and it's about to revolutionize how you manage your leads.
続きを読む
Hi @economize ! No need to worry, it still is simple 😄 You can still use the old wayof managing leads. This is just an alternative out-of-the-box...続きを読む
7 Reasons Why HubSpot’s New Leads Object is a Total Game Changer
Forget everything you thought you knew about lead management. HubSpot has just added a new leads object to Sales Hub, and it's about to revolutionize how you manage your leads.
続きを読む
Hi @economize ! No need to worry, it still is simple 😄 You can still use the old wayof managing leads. This is just an alternative out-of-the-box...続きを読む
What is it?
HubSpot is adding a new object to Sales Hub called ‘Leads’. Leads transform how sellers can manage prospecting and qualification efforts for both inbound and outbound demand gen motions inside of HubSpot. Managing leads happens from 続きを読む
Hi @economize , in this first iteration of the leads object we're keeping the lead properties under a bit of a wrapper as we're still in the process...続きを読む
Join our Workshop in No-Code HubSpot Automation
Watch On-Demand
Hi everyone,
I'm so happy that I get to announce that as of May 11, we'll start holding Community Workshop on HubSpot Automation. All throughout May we'll have three w 続きを読む
Hi folks,
It’s me, Jan, your new RevOps & Operations Community manager! I’m so thrilled and honored to be taking up this role and connect with all of you. I’ll be taking over as moderator from @maggiebutler , but no worries! Maggie is 続きを読む
7 Reasons Why HubSpot’s New Leads Object is a Total Game Changer
Forget everything you thought you knew about lead management. HubSpot has just added a new leads object to Sales Hub, and it's about to revolutionize how you manage your leads.
続きを読む
Hi @economize ! No need to worry, it still is simple 😄 You can still use the old wayof managing leads. This is just an alternative out-of-the-box...続きを読む
RevOps with HubSpot Summer School
Enroll now until July 25 at 9 AM (EDT)
Day 1 | Day 2 | Day 3
About the event
For the first time ever, HubSpot Community and RevPartners are organizing a free education 続きを読む
Hi everyone!
Yesterday, Matt Bolian of RevPartners, a HubSpot RevOps agency , kicked off a three-part event series for our community called: Becoming a HubSpot Admin.
In this post, you'll find all the resources for yesterday's event. The 続きを読む
Operations Hub Show & Tell
Thursday December 2, 2021 | 11 AM (EST) Watch On-Demand
Hi everyone!
We're holding another Operations Hub Show & Tell . The last one we did back in September was a huge success, so we decide 続きを読む
//
//
//
//
//
(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 = '117612';}
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 = '