How we can automatically apply a global opt-out to contacts that request it? I see I have a step for "manage subscription status", but this won't allow us to apply a global opt-out. Even if we unsubscribe from all of the "communication subscription 続きを読む
Hi Karsten, thanks for replying. So yes, I meant workflows by "automatically" but if there is another way, like using Hubspot API, Third-party tools,...続きを読む
How we can automatically apply a global opt-out to contacts that request it? I see I have a step for "manage subscription status", but this won't allow us to apply a global opt-out. Even if we unsubscribe from all of the "communication subscription 続きを読む
Hi Karsten, thanks for replying. So yes, I meant workflows by "automatically" but if there is another way, like using Hubspot API, Third-party tools,...続きを読む
How we can automatically apply a global opt-out to contacts that request it? I see I have a step for "manage subscription status", but this won't allow us to apply a global opt-out. Even if we unsubscribe from all of the "communication subscription 続きを読む
Hi Karsten, thanks for replying. So yes, I meant workflows by "automatically" but if there is another way, like using Hubspot API, Third-party tools,...続きを読む
Hello, My marketing team has suggested having a contact property that receives the Deal Stage, so they can export and analyze data without having to worry about associating deals and contacts. They would rather just export the contact database a 続きを読む
Hello, Our team currently measures lead conversions by counting contacts that received a date stamp in a property called Recent Lead Conversion. This stamp is set when the contact has filled the relevant forms which are triggers in a workflow. 続きを読む
Hello, would you be able to know if a solution that covers issue exists or if a workaround has been implemented by other users in a similar situation...続きを読む
I have a workflow that will send contacts after 48 hours of inactivity to another system, but having that 48-hour delay to run during a weekend is not fair, since a contact could enter the delay Friday afternoon and then be sent sunday afternoon, le 続きを読む
In my case, we needed a 48h delay always. In the situation you mentioned, the contact is going through the weekday delay on Friday, then stops for 48...続きを読む
There are a few Dashboards that we want all our users to be able to see, but only a few to edit. It seems I can only either allow all users to see and edit or allow all to see but only the owner to edit. It would be useful to be able to edit these t 続きを読む
We need to be able to look into the historical values of some date properties in order to report last touch conversion information, instead of just the create date, or a overwritten date property. If this resource is implemented, we could analyze al 続きを読む
Hello, Our team currently measures lead conversions by counting contacts that received a date stamp in a property called Recent Lead Conversion. This stamp is set when the contact has filled the relevant forms which are triggers in a workflow. 続きを読む
Hello, would you be able to know if a solution that covers issue exists or if a workaround has been implemented by other users in a similar situation...続きを読む
How we can automatically apply a global opt-out to contacts that request it? I see I have a step for "manage subscription status", but this won't allow us to apply a global opt-out. Even if we unsubscribe from all of the "communication subscription 続きを読む
Hi Karsten, thanks for replying. So yes, I meant workflows by "automatically" but if there is another way, like using Hubspot API, Third-party tools,...続きを読む
Hello, My marketing team has suggested having a contact property that receives the Deal Stage, so they can export and analyze data without having to worry about associating deals and contacts. They would rather just export the contact database a 続きを読む
I have a workflow that will send contacts after 48 hours of inactivity to another system, but having that 48-hour delay to run during a weekend is not fair, since a contact could enter the delay Friday afternoon and then be sent sunday afternoon, le 続きを読む
In my case, we needed a 48h delay always. In the situation you mentioned, the contact is going through the weekday delay on Friday, then stops for 48...続きを読む
A place for social media professionals to share ideas, learn, network, and be inspired.
//
//
//
//
//
(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 = '265460';}
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 = '