Showing results for 
Show  only  | Search instead for 
Did you mean: 

Sharing our updated Group Hub email invitation

Hi all,

I thought this may be useful to some of you - we have rejiggered the group hub email invitation in a way we think will be helpful to end-users. Curious for any thoughts on this!

Here's the default group hub email:

Default email invitationDefault email invitation

Issues with the default email:

  • Title is NOT descriptive / we can't imagine clicking on this email
  • Email address of sender is included (we know this was removed in a recent update of Khoros, but since we had touched this template previously we didn't get the update)
  • We don't think that the Type / Date Created / Member count is useful information for most users
  • The action link is at the very bottom of the email

Here is our adjusted version:

Adjusted versionAdjusted version

Improvements made:

  • Descriptive title
  • Removed email address of inviter
  • Action link both towards the beginning of the email and at the end
  • Made it more clear what the personalized message from the inviter is (previously it was just in quotes, now it has a label)
  • Coded such that the personalized message section and group description section only show up if those items are actually filled in
  • We have removed the Type / Date Created / Member count

Curious for your thoughts on these changes / if you have any further improvements to suggest!

I'll include our updated code in a reply to this message, below.


4 Replies 4

Code below!

Email subject

Invitation to join the $invite.node.title on ${community.title}


Plaintext email

(scroll within the grey box to see the whole thing!)

#set($nodeTypeName = "group")
#set($nodeTypeNameUppercase = "Group")
#if($invite.node.nodeType == "board")
#set($nodeTypeName = "board")
#set($nodeTypeNameUppercase = "Board")
#elseif($invite.node.nodeType == "category")
#set($nodeTypeName = "category")
#set($nodeTypeNameUppercase = "Category")

Hi #if ($invite.receiver.login && $invite.receiver.login!="")$invite.receiver.login,#else there,

$invite.sender.login from ${community.title} invited you to join the $nodeTypeName $invite.node.title. Click ${invite.node.membership.joinLink} to join.

#if ($invite.optionalMessage && $invite.optionalMessage != "")
Message from $invite.sender.login: ${invite.optionalMessage}

#if ($invite.node.description && $invite.node.description != "")
$nodeTypeNameUppercase Description: $invite.node.description

Join this $nodeTypeName: ${invite.node.membership.joinLink}

We look forward to collaborating with you!

${community.title} Team


HTML Email

(scroll within the grey box to see the whole thing!)

#set($nodeTypeName = "group")
#set($nodeTypeNameUppercase = "Group")
#if($invite.node.nodeType == "board")
#set($nodeTypeName = "board")
#set($nodeTypeNameUppercase = "Board")
#elseif($invite.node.nodeType == "category")
#set($nodeTypeName = "category")
#set($nodeTypeNameUppercase = "Category")
<title>Invitation to join the $invite.node.title on ${community.title}</title>
#if ($invite.receiver.login && $invite.receiver.login!="")

<p>$invite.sender.login from ${community.title} invited you to join the $nodeTypeName <strong>$invite.node.title</strong>. <a href="${invite.node.membership.joinLink}">Click to join</a>.</p>

#if ($invite.optionalMessage && $invite.optionalMessage != "")
<p><strong>Message from $invite.sender.login:</strong> ${invite.optionalMessage}</p>

#if ($invite.node.description && $invite.node.description != "")
<p><strong>$nodeTypeNameUppercase Description:</strong> $invite.node.description</p>

<p><a href="$invite.node.membership.joinLink">Join this $nodeTypeName</a></p>

<p>Thanks,<br/> ${community.title} Team</p>


Some notes on this code:

The logic in the default email allows for invitations to boards and categories, so we maintained this logic. I don't actually think it's currently possible to invite people to boards / categories (since there's no notion of "membership" on those node types presently?) - but we kept the logic in in our version because it felt odd to remove it.

We have renamed "Group Hubs" to "Groups" throughout our community, so also did that here. Ideally I'd retrieve the text string variable for the name of "Group Hubs" that I already set in the community text (general.grouphub and general.Grouphub) - but I couldn't figure out how to do that.

I couldn't figure out how to uppercase the first letter of my $nodeTypeName variable, so I have the somewhat embarrassing "$nodetypeNameUppercase" variable. If someone knows how to do this within a Khoros email template, please let me know!

This is awesome 👏

We've been wanting to get these improved but been ignoring it because it's so painful, this makes it so much easier!

Community Manager

This is so cool, @CarolineS. Thanks for sharing it (and the fancy code)! 

This is awesome @CarolineS 


@Kerri  could be a great thread for us since we were thinking of looking at email templates

Welcome to the Technology board!

Curious about our platform? Looking to connect on social technology? You've come to the right place!

Are you a Khoros customer? For direct assistance from our Support team, please visit the Support Forum.