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.
TomM2 has earned 47 badges!
HubSpot Platinum Partner
Jul 17, 2024
Earned by 7,453
You have achieved HubSpot Platinum Partner status!
Welcome to the Community
Feb 11, 2021
Earned by 777,360
Welcome to the HubSpot Community, we're happy to have you! Let's celebrate with your first community badge!
Thankful
Mar 31, 2022
Earned by 182,239
Kudos to you for sending upvotes to others!
Thankful (5)
Apr 24, 2023
Earned by 26,059
Kudos to you for sending upvotes to others!
Thankful (10)
Apr 27, 2023
Earned by 11,227
Kudos to you for sending upvotes to others!
Thankful (25)
May 2, 2023
Earned by 3,546
Kudos to you for sending upvotes to others!
Thankful (50)
May 18, 2023
Earned by 1,389
Kudos to you for sending upvotes to others!
Thankful (100)
Jul 5, 2023
Earned by 549
Kudos to you for sending upvotes to others!
Thankful (250)
Oct 25, 2023
Earned by 165
Kudos to you for sending upvotes to others!
Thankful (500)
Jul 16, 2024
Earned by 74
Kudos to you for sending upvotes to others!
Thankful (1000)
Jul 16, 2024
Earned by 28
Kudos to you for sending upvotes to others!
Helpful
Feb 11, 2021
Earned by 97,723
Congrats on the upvotes - you definitely know your stuff!
Helpful (5)
Feb 15, 2023
Earned by 21,018
Congrats on the upvotes - you definitely know your stuff!
Helpful (10)
Apr 21, 2023
Earned by 10,325
Congrats on the upvotes - you definitely know your stuff!
Helpful (25)
Apr 26, 2023
Earned by 4,357
Congrats on the upvotes - you definitely know your stuff!
Helpful (50)
May 1, 2023
Earned by 2,382
Congrats on the upvotes - you definitely know your stuff!
Helpful (100)
May 8, 2023
Earned by 1,244
Congrats on the upvotes - you definitely know your stuff!
Helpful (250)
May 31, 2023
Earned by 399
Congrats on the upvotes - you definitely know your stuff!
Helpful (500)
Jun 30, 2023
Earned by 146
Congrats on the upvotes - you definitely know your stuff!
Helpful (1000)
Aug 3, 2023
Earned by 56
Congrats on the upvotes - you definitely know your stuff!
Helpful (2000)
Feb 26, 2025
Earned by 25
Congrats on the upvotes - you definitely know your stuff!
Conversationalist
Jun 23, 2023
Earned by 120,838
What's a community without great conversations? Thanks for keeping things lively!
Conversationalist (5)
Oct 20, 2023
Earned by 18,419
What's a community without great conversations? Thanks for keeping things lively!
Conversationalist (10)
Mar 6, 2025
Earned by 2,699
What's a community without great conversations? Thanks for keeping things lively!
Responder
Feb 11, 2021
Earned by 199,813
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (5)
Mar 31, 2022
Earned by 22,264
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (10)
Mar 24, 2023
Earned by 6,825
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (25)
Apr 26, 2023
Earned by 1,319
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (50)
May 2, 2023
Earned by 493
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (100)
May 12, 2023
Earned by 250
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (250)
Jun 20, 2023
Earned by 100
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (500)
Jul 21, 2023
Earned by 56
Thanks for helping others out with their questions, you make the community a great place to learn!
Responder (1000)
Nov 21, 2023
Earned by 36
Thanks for helping others out with their questions, you make the community a great place to learn!
Problem Solver
Feb 15, 2023
Earned by 6,034
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (5)
Apr 21, 2023
Earned by 559
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (10)
Apr 26, 2023
Earned by 350
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (25)
May 8, 2023
Earned by 209
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (50)
May 25, 2023
Earned by 144
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (100)
Jun 24, 2023
Earned by 89
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (250)
Aug 17, 2023
Earned by 37
Thanks for solving problems and sharing your expertise! Keep up the great work!
Problem Solver (500)
Apr 5, 2024
Earned by 17
Thanks for solving problems and sharing your expertise! Keep up the great work!
Community Champion
May 2, 2023
Earned by 139
You have joined the top tier of Community users and become a Community Champion! Congratulations!
Ideator
Jun 23, 2023
Earned by 31,710
Thank you for submitting an idea - we count on your feedback to make our products and services even better!
Ideator (5)
Aug 15, 2024
Earned by 1,441
Thank you for submitting an idea - we count on your feedback to make our products and services even better!
Ideator (10)
a month ago
Earned by 429
Thank you for submitting an idea - we count on your feedback to make our products and services even better!
Brainstormer
Jun 7, 2023
Earned by 55,758
Thanks for feedback in the Ideas forum. We love hearing from you!
Blogger
Aug 7, 2023
Earned by 307
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.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_5a400f3bd68c6f","feedbackSelector":".InfoMessage"});
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_5a400f3bd68c6f_0","feedbackSelector":".InfoMessage"});
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_5a400f3bd68c6f_1","feedbackSelector":".InfoMessage"});
LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_5a400f3bd68c6f_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=$('