Hi there! HubSpot Pipeline tool is great for Sales and Support teams, but right now Key Account (Customer Success) and other teams that have continuous contact with clients really struggle to use HubSpot as Companies and Contacts just don't have 続きを読む
From my point of view and after working in sales for decades, I rate the functionality to have a kanban board on a contact level as must have feature...続きを読む
Hi all, In Sales > Deals and then changing to board view (= Kanban) I can see all Deals and can move them from stage to stage. Is there a Kanban view in Hubsport where I can move individual contacts, depending on the indiviual converstion 続きを読む
Hallo Herr Köhler, (können wir auf Deutsch fortfahren?) vielen Dank für Ihre schnelle Antwort und den Link. Das Thema damals war tatsächlich rec...続きを読む
Hi all, In Sales > Deals and then changing to board view (= Kanban) I can see all Deals and can move them from stage to stage. Is there a Kanban view in Hubsport where I can move individual contacts, depending on the indiviual converstion 続きを読む
Hallo Herr Köhler, (können wir auf Deutsch fortfahren?) vielen Dank für Ihre schnelle Antwort und den Link. Das Thema damals war tatsächlich rec...続きを読む
Liebe Community, ich bin brandneu bei HS und stoße direkt auf ein erstes Problem: Ich habe meinen E-Mail Account eingerichtet und es funktioniert - E-Mails aus HS heraus versenden - Wenn auf diese Mail geantwortet wird, kommt diese auch in HS 続きを読む
Hallo Herr Köhler, die Option mit einer Erweiterung kannte ich bereits, allerdings nutze ich Outlook 2019 für Mac. Dafür gibt es bedauerlicherweise ...続きを読む
Liebe Community, ich bin brandneu bei HS und stoße direkt auf ein erstes Problem: Ich habe meinen E-Mail Account eingerichtet und es funktioniert - E-Mails aus HS heraus versenden - Wenn auf diese Mail geantwortet wird, kommt diese auch in HS 続きを読む
Hallo Herr Köhler, die Option mit einer Erweiterung kannte ich bereits, allerdings nutze ich Outlook 2019 für Mac. Dafür gibt es bedauerlicherweise ...続きを読む
Liebe Community, ich bin brandneu bei HS und stoße direkt auf ein erstes Problem: Ich habe meinen E-Mail Account eingerichtet und es funktioniert - E-Mails aus HS heraus versenden - Wenn auf diese Mail geantwortet wird, kommt diese auch in HS 続きを読む
Hallo Herr Köhler, die Option mit einer Erweiterung kannte ich bereits, allerdings nutze ich Outlook 2019 für Mac. Dafür gibt es bedauerlicherweise ...続きを読む
Hi all, In Sales > Deals and then changing to board view (= Kanban) I can see all Deals and can move them from stage to stage. Is there a Kanban view in Hubsport where I can move individual contacts, depending on the indiviual converstion 続きを読む
Hallo Herr Köhler, (können wir auf Deutsch fortfahren?) vielen Dank für Ihre schnelle Antwort und den Link. Das Thema damals war tatsächlich rec...続きを読む
Liebe Community, ich bin brandneu bei HS und stoße direkt auf ein erstes Problem: Ich habe meinen E-Mail Account eingerichtet und es funktioniert - E-Mails aus HS heraus versenden - Wenn auf diese Mail geantwortet wird, kommt diese auch in HS 続きを読む
Hallo Herr Köhler, die Option mit einer Erweiterung kannte ich bereits, allerdings nutze ich Outlook 2019 für Mac. Dafür gibt es bedauerlicherweise ...続きを読む
//
//
//
//
//
(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 = '440642';}
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 = '