Badges are a great way to demonstrate your contributions to the Community and level of expertise. Just start engaging in the conversations to earn new badges. Learn more.
Maximize your profile
Your community badges are also reflected on your Connect profile. Showcase your skills and grow your network in the Connect.com.
danmoyle has earned 58 badges!
HubSpot Diamond Partner
Feb 11, 2021
Earned by 4,302
You have achieved HubSpot Diamond Partner status!
HubSpot Elite Partner
Jul 25, 2022
Earned by 4,139
You have achieved HubSpot Elite Partner status!
Welcome to the Community
Feb 11, 2021
Earned by 691,896
Welcome to the HubSpot Community, we're happy to have you! Let's celebrate with your first community badge!
Thankful
Feb 11, 2021
Earned by 166,965
Kudos to you for sending upvotes to others!
Thankful (5)
Mar 15, 2021
Earned by 24,062
Kudos to you for sending upvotes to others!
Thankful (10)
Mar 18, 2021
Earned by 10,366
Kudos to you for sending upvotes to others!
Thankful (25)
Apr 1, 2021
Earned by 3,239
Kudos to you for sending upvotes to others!
Thankful (50)
May 12, 2021
Earned by 1,277
Kudos to you for sending upvotes to others!
Thankful (100)
Jun 27, 2021
Earned by 508
Kudos to you for sending upvotes to others!
Thankful (250)
Nov 23, 2021
Earned by 151
Kudos to you for sending upvotes to others!
Thankful (500)
May 2, 2022
Earned by 65
Kudos to you for sending upvotes to others!
Thankful (1000)
Aug 23, 2022
Earned by 27
Kudos to you for sending upvotes to others!
Thankful (2000)
Feb 15, 2023
Earned by 17
Kudos to you for sending upvotes to others!
Helpful
Feb 11, 2021
Earned by 89,792
Congrats on the upvotes - you definitely know your stuff!
Helpful (5)
Feb 11, 2021
Earned by 19,559
Congrats on the upvotes - you definitely know your stuff!
Helpful (10)
Mar 18, 2021
Earned by 9,556
Congrats on the upvotes - you definitely know your stuff!
Helpful (25)
Apr 12, 2021
Earned by 4,019
Congrats on the upvotes - you definitely know your stuff!
Helpful (50)
Jun 1, 2021
Earned by 2,209
Congrats on the upvotes - you definitely know your stuff!
Helpful (100)
Jun 27, 2021
Earned by 1,140
Congrats on the upvotes - you definitely know your stuff!
Helpful (250)
Oct 22, 2021
Earned by 375
Congrats on the upvotes - you definitely know your stuff!
Helpful (500)
May 2, 2022
Earned by 133
Congrats on the upvotes - you definitely know your stuff!
Helpful (1000)
Jul 29, 2022
Earned by 56
Congrats on the upvotes - you definitely know your stuff!
Helpful (2000)
Nov 23, 2022
Earned by 22
Congrats on the upvotes - you definitely know your stuff!
Conversationalist
Feb 11, 2021
Earned by 112,646
What's a community without great conversations? Thanks for keeping things lively!
Conversationalist (5)
Jun 30, 2021
Earned by 17,854
What's a community without great conversations? Thanks for keeping things lively!
Conversationalist (10)
Sep 21, 2021
Earned by 2,498
What's a community without great conversations? Thanks for keeping things lively!
Conversationalist (25)
Aug 3, 2022
Earned by 628
What's a community without great conversations? Thanks for keeping things lively!
Conversationalist (50)
Jun 12, 2023
Earned by 267
What's a community without great conversations? Thanks for keeping things lively!
Responder
Mar 15, 2021
Earned by 178,733
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (5)
Mar 23, 2021
Earned by 20,257
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (10)
Apr 1, 2021
Earned by 6,165
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (25)
May 21, 2021
Earned by 1,197
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (50)
Jun 27, 2021
Earned by 439
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (100)
Oct 26, 2021
Earned by 228
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (250)
May 10, 2022
Earned by 92
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (500)
Jul 8, 2022
Earned by 52
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (1000)
Nov 28, 2022
Earned by 35
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (2000)
Aug 30, 2023
Earned by 21
Thanks for helping others out with their questions, you make the community a great place to learn!
Problem Solver
Mar 31, 2021
Earned by 5,044
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (5)
May 31, 2021
Earned by 483
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (10)
Jun 23, 2021
Earned by 313
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (25)
Oct 27, 2021
Earned by 185
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (50)
Apr 19, 2022
Earned by 126
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (100)
Jun 9, 2022
Earned by 76
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (250)
Sep 29, 2022
Earned by 34
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (500)
Apr 21, 2023
Earned by 15
Thanks for solving problems and sharing your expertise! Keep up the great work!
Community Champion
Jun 24, 2021
Earned by 121
You have joined the top tier of Community users and become a Community Champion! Congratulations!
Ideator
Jun 1, 2021
Earned by 29,167
Thank you for submitting an idea - we count on your feedback to make our products and services even better!
Ideator (5)
Mar 14, 2022
Earned by 1,301
Thank you for submitting an idea - we count on your feedback to make our products and services even better!
Ideator (10)
Aug 24, 2022
Earned by 389
Thank you for submitting an idea - we count on your feedback to make our products and services even better!
Brainstormer
Jul 20, 2021
Earned by 51,813
Thanks for feedback in the Ideas forum. We love hearing from you!
Brainstormer (5)
May 23, 2022
Earned by 4,629
Thanks for feedback in the Ideas forum. We love hearing from you!
Brainstormer (10)
Jun 10, 2022
Earned by 1,477
Thanks for feedback in the Ideas forum. We love hearing from you!
Brainstormer (25)
Jul 8, 2022
Earned by 288
Thanks for feedback in the Ideas forum. We love hearing from you!
Brainstormer (50)
Jan 24, 2023
Earned by 69
Thanks for feedback in the Ideas forum. We love hearing from you!
Blogger
Jul 20, 2021
Earned by 280
Congratulations! You've written a blog for the ages!
Blogger (5)
Jun 16, 2022
Earned by 65
Congratulations! You've written a blog for the ages!
Blogger (10)
Jan 31, 2023
Earned by 38
Congratulations! You've written a blog for the ages!
//
//
//
//
//
(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 = '';}
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.cookie = "advocacyToken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
document.cookie = "Crowdvocate_jwt_token=; domain=.hubspot.com; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
document.cookie = "Crowdvocate_user_ck=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
})(LITHIUM.jQuery);
(function($) {
document.addEventListener('gdpr.allow', function() {
if (document.querySelector('.lia-cookie-banner-alert-accept a')) {
document.querySelector('.lia-cookie-banner-alert-accept a').click();
}
});
})(LITHIUM.jQuery);
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox","feedbackSelector":".InfoMessage"});
;(function($){
var langMap = {
'en':'hubspot_community_en',
'es':'hubspot_community_es',
'fr':'hubspot_community_fr',
'ja':'hubspot_community_jp',
'pt-br':'hubspot_community_pt',
'de':'hubspot_community_de'
}
var nodeType = "community";
var langScope = langMap['en'];
var isSearchPage = jQuery('body').hasClass('SearchPage');
var isIdeasLandingPage = jQuery('body').hasClass('ideaslandingpage');
if (nodeType === "community" && !isSearchPage && !isIdeasLandingPage) {
var inputFormFilter = '';
var inputFormLocation = '';
$('form.SearchForm').append(inputFormFilter).append(inputFormLocation);
} else if (nodeType === "community" && isIdeasLandingPage) {
var searchUrl = "/t5/forums/searchpage/tab/message?filter=location&location=idea-board:HubSpot_Ideas&collapse_discussion=true";
var query = jQuery('.SearchForm .lia-search-input-message').val();
jQuery(document).on('submit', 'form.SearchForm', function(e) {
e.preventDefault();
var newQ = "&q=" + document.querySelector('.SearchForm .lia-search-input-wrapper input.search-input').value;
window.location = window.location.origin + searchUrl + newQ;
})
}
})(LITHIUM.jQuery)
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16f3bd5180e114","feedbackSelector":".InfoMessage"});
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16f3bd5180e114_0","feedbackSelector":".InfoMessage"});
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16f3bd5180e114_1","feedbackSelector":".InfoMessage"});
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16f3bd5180e114_2","feedbackSelector":".InfoMessage"});
LITHIUM.AjaxFeedback(".lia-inline-ajax-feedback", "LITHIUM:hideAjaxFeedback", ".lia-inline-ajax-feedback-persist");
LITHIUM.Placeholder();
LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('