改进邀请系统

Targeting version 2.7, we will be making some improvements to the invite system to bring it into line with how platforms like Discord are handling invites these days, with a bias toward quickly generating a link that can be copied and pasted into an email, text or chat. Options like sending an email with personalized message or adding users to groups etc will be provided behind an advanced options :gear:. Invite management will also be improved to enable users to edit their invites after they have been created.

This change has quite a few moving parts and touches on things that staff can do that regular users cannot, so we will want to be mindful to get it right. I’ve indicated the top level todos below as well as proposed copy for the new interfaces. We can update this OP as we move along.

  • remove LINKS tab, restructure PENDING tab on /user/invited/pending page to include link invites
  • add ability to edit existing invites listed on PENDING tab
  • simplify the Invite popup, putting advanced options behind :gear:
  • add ability to specify topic where the invited user will land after accepting invite
  • add interim step to Bulk Invite (for admins) with just in time education on how to prep and upload csv
  • We did not remove it but made it work! remove ability to invite new user via share button on topic menu

Proposed new interfaces:

Structure of new consolidated pending tab
Invitation Groups Topic Created/Last sent Expires
invitedperson@example.fake team, developers Welcome, developers! Nov 15 Dec 15 [Edit] [Delete] [Get link] [Send email]
link (1/5 redeemed) team Oct 5 Dec 15 4pm [Edit] [Delete] [Get link]
anotherinvitedperson@example.fake translators Getting started with translation Nov 2 Dec 20 [Edit] [Delete] [Get link] [Send email]
thirdinvitedperson@example.fake team Nov 25 Dec 25 [Edit] [Delete] [Get link] [Send email]
New invite popup
Heading: Invite people 

Share this link with others to instantly grant access to SITENAME!

[                             ]  [create link/copy]

Your invite link expires next week. :gear:

Note: when CREATE LINK button selected, the link is added to the empty field and the button changes to COPY. When selected, the link is copied to the clipboard to be pasted into an email, chat or text.

New invite popup advanced options
Title: Invite people (advanced options)

Add to groups:

[ Search... ]

Send to topic on first login: 

[ Search... ]

Expire after

[ Select a timeframe  ]

Max number of uses

[ 5 ]

Limit to email address 

[ name@example.com ] 

Send email 

[ Hello, please join our team.


                                                ]

    [                           ] [create link/copy link] [send email]

Note: Expire after is one week after current date by default. Max number of uses is only shown if no email address is provided. Custom message and send email buttons are only shown if email address is provided.

New bulk invite interim step
Title: Bulk invite (admin only)

Invite a list of users to get your community going quickly. Prepare a [csv file](https://en.wikipedia.org/wiki/Comma-separated_values) containing at least one row per email address of users you want to invite. The following comma separated information can be provided if you want to add people to groups or send them to a specific topic the first time they sign in.   

name@example.com,group_1;group_2,topic_id

Every email address in your uploaded csv file will be sent an invitation, and you will be able to manage it later. 

[ upload csv file]

Note: selecting the upload csv file button opens the file system to select the csv to upload.

18 个赞

As folks on tests-passed may have noticed, @dan has been diligently working on improving the invite system along the lines described in the OP. The improvements are now in and working quite well, so now is a good time to check it out if you have not already! Let us know what you think and if you notice any issues. Some screenshots of new interfaces below.

Invites can now be accessed via a much improved interface on the user menu. Pending link and email invites are now displayed in a combined interface. Redeemed invites are displayed in chronological order, newest first.

The biggest addition is that regular users allowed to invite others can now copy a link to share in addition to sending an email invite. They can also change the max number of times a link can be used, limited by the invite link max redemptions limit users admin setting (default 10). They cannot change how long invites are valid, set in invite expiry days admin setting (default 30 days).

Staff can access advanced options to add invited users to groups, choose a specific topic to send them to upon first login, and change the link expiry timeframe. For email invites, staff can add an optional personal message.

Bulk invite works as previously, except now an interim step is displayed with some just in time info on how to set up your csv file before uploading it.

Pending invites tab with both link and email invites

Create invite link with advanced options open

Create invite email with advanced options open

12 个赞

13 posts were split to a new topic: API endpoint to create invite links has moved to /invites.json

This looks great - thanks to all those who worked on it :slight_smile:

7 个赞

7 posts were split to a new topic: Trusted users cannot invite when must approve users admin setting enabled

Just a comment/idea for further improvement:
our Discourse has separate categories linked to groups representing separate community membership. There are multiple communities on the same overall installation. It would be good if

  • either the “user to user inivitation” includes an automatic option so that the invitated person inherits the same group membership as the invitating person (maybe selectable if the inviter has multiple group memberships)
  • or there is some kind of workflow where the admin/moderator approval adds the correct group permissions in a second step
2 个赞

I’m not sure whether it’s just an overlook during the revamp of the UI, or if there is a rationale for this, but when a user, non staff, owner of some group(s), select invite just one email address, the advanced options does not let him add the invitee to his group(s). The owner still can do it via the UI in /g . Maybe this change could be reminded somewhere, in js.user.invited.invite.restrict_email perhaps?

Thanks so much for all the updates, especially this one. A big improvement on usability of invites.

2 个赞

@dan 在最近几周向邀请系统部署了一个更新。请告诉我们您的想法,以及是否有进一步改进的建议!这些最新更改的主要目标是尽可能简化,同时仍然支持邀请系统中的所有魔力。不再有“高级”屏幕。所有可用选项都同时显示在邀请弹出窗口中,具体取决于情况和用户可以访问的内容。

普通用户只有几个选项,因此对他们来说,邀请非常简单。我知道对于工作人员来说,我们仍然需要决定五个选项(都是可选的),然后才能获取邀请链接或通过电子邮件发送邀请……这很方便,但可能会令人困惑,尤其是对于刚接触 discourse 的人。我们正在寻找保持所有魔力但转向更简单界面的方法。欢迎提出建议。

截图:

信任等级 2 的用户通过电子邮件邀请某人。仅当您开始键入电子邮件地址时,才会显示可选的个人消息。

同一用户通过主题菜单上的邀请链接邀请某人。请注意,“到达主题”已显示但无法编辑。

管理员可以获得所有高级功能。我还没有开始键入电子邮件地址。如果您尝试让被邀请者到达需要组成员资格才能访问的安全类别的某个主题,则会显示警告。

当我保存邀请时,我可以复制链接进行分享。

哇,这听起来很复杂。我理解这种冲动,而且这个想法很有趣,但我不太确定我们是否想在此时添加更多魔力。您能否通过使用工作人员可用的邀请到主题和组选项来达到您想要的效果?每个子社区都有一个组,人们可以在注册后加入,用户可以互相帮助并与组所有者合作来实现这一点。

这是故意的,目的是让大多数用户的邀请系统更简单。正如您所说,组所有者始终可以通过其组页面将人员添加到他们的组,或者邀请他们并将他们立即添加到他们的组中。

如果我们对此有误,并且许多人抱怨此功能的工作方式,我们可能会重新考虑此决定。

4 个赞