Hi everyone, I'm trying to batch update Contacts through the API using 'idProperty'=>'email' without success. I'm using the PHP library. If I do the update with regular ids it works, but with 'idProperty' I get an error message 'Could not get 続きを読む
Gordon, I'm solving the same problem now. It seems ONLY Contact ID / HubSpot Vid is the only way to do it... but we don't have HubSpot Contact IDs st...続きを読む
Using PHP, we're attempting to do a transactional email "simple send" fails, despite building my Request object using the RequestEgg. Full error: {"status":"error","message":"Invalid input JSON on line 1, column 67: Cannot deserialize value 続きを読む
Turns out my formatting was incorrect for custom properties and contact properties above. Items are no longer formatted in individual arrays. Al...続きを読む
Using PHP, we're attempting to do a transactional email "simple send" fails, despite building my Request object using the RequestEgg. Full error: {"status":"error","message":"Invalid input JSON on line 1, column 67: Cannot deserialize value 続きを読む
Turns out my formatting was incorrect for custom properties and contact properties above. Items are no longer formatted in individual arrays. Al...続きを読む
Using PHP, we're attempting to do a transactional email "simple send" fails, despite building my Request object using the RequestEgg. Full error: {"status":"error","message":"Invalid input JSON on line 1, column 67: Cannot deserialize value 続きを読む
Turns out my formatting was incorrect for custom properties and contact properties above. Items are no longer formatted in individual arrays. Al...続きを読む
Hey HubSpot, We recently implemented a few single sends using Transactional service. We found a small portion of our emails are not being sent where user status = "unsubscribed . " These emails must be sent regardless of subscription status. 続きを読む
Weird issue here and not sure where to turn... When a customer on our external shopping cart system completes a checkout, they are redirected back to our website. Our shopping cart system accepts a "redirect url" for where to send them. For this 続きを読む
Hey Stefen! Yeah, what we ended up doing for a quick solution was to give the shopping cart system a bit.ly link to handle that redirect, and thi...続きを読む
Hey HubSpot, Would love to see the Get Deal(s) API call to include support for all associations. (or adding a CRMGetAll() endpoint) Currently, setting includeAssociations = true only returns: 1. associatedVids 2. associatedCompanyIds 続きを読む
Hey HubSpot! We have a Flexible Redirect set up for a specific URL: URL A: https:// www .example.com/page/test ?query1=1&query2=2&query3=3 URL B: https:// subdomain .example.com/page/test ?query1=1&query2=2&query3=3 続きを読む
Using PHP, we're attempting to do a transactional email "simple send" fails, despite building my Request object using the RequestEgg. Full error: {"status":"error","message":"Invalid input JSON on line 1, column 67: Cannot deserialize value 続きを読む
Turns out my formatting was incorrect for custom properties and contact properties above. Items are no longer formatted in individual arrays. Al...続きを読む
Hey HubSpot, We recently implemented a few single sends using Transactional service. We found a small portion of our emails are not being sent where user status = "unsubscribed . " These emails must be sent regardless of subscription status. 続きを読む
Weird issue here and not sure where to turn... When a customer on our external shopping cart system completes a checkout, they are redirected back to our website. Our shopping cart system accepts a "redirect url" for where to send them. For this 続きを読む
Hey Stefen! Yeah, what we ended up doing for a quick solution was to give the shopping cart system a bit.ly link to handle that redirect, and thi...続きを読む
Hey HubSpot! We have a few sources on our website where we are able to capture email address. When this email is available, we attempt an identify tracking push. The problem is, according to the documentation, identify doesn't actually push 続きを読む
//
//
//
//
//
(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 = '116954';}
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 = '