Onboarding process for new member

I’m considering migrating from Facebook Groups to a semi-private Discourse instance for an event series I help run. I have read the previous blog posts and Discourse posts about migrating from Facebook groups. However, I have some questions about the on-boarding process of new users, which might be mostly due to my unfamiliarity with the API.

Filtering incoming users

Probably the biggest advantage to Facebook is it’s ability to use a Facebook profile as a proxy of trust. Basically, you can gague how likely a person is to be a spammy jerk by:

  • How many friends they have
  • The other groups they’re a part of
  • Their geographical location
  • (hardcore mode) Getting them to fill out a form with basic questions

Is filling out a form as part of new user joining possible to implement in Discourse to accomplish the same thing? I think this might be possible by customizing the profile creation form?

Making users set up their email settings once accepted

Given I want people to get email notifications based off their geographical location, is it possible to make this part of their account creation process? For example, so that a person who lives in Waterloo isn’t subscribed to the event notifications from Tokyo and Taipei. I’m afraid of users being unable to figure out the category-specific email settings on their own. Also, I’d rather not have to make a how-to and make them read it.

1 Like

This does not really address all of your issues, but if you are concerned about filtering incoming users, then one of the many options is to disable local registration and only use Facebook / Twitter login.

This way you can still use Facebook as a proxy of trust.

Extreme? yes, but still possible, so I wanted to point it out.

With that being said, Discourse has some awesome anti-spam features built in, so you might end up being pleasantly surprised.


All valid points.

I guess I also want to filter for people who I don’t want at the events, but that hasn’t been a problem before, so maybe it’s an unfounded concern.


One thing you could do is make the candidate write a little bit about themselves and what they hope to get out of your community.


Discourse does a bunch of stuff to keep you from having to worry about spammy jerks. It does this by giving them limited access to start and requiring them to do stuff like read and interact with the site before gaining more privileges. Rather than guessing whether someone is a jerk based on some incomplete information, it bases the decision on their actual behavior.

You can manage people’s access to particular categories by having them join groups (which control access to categories). You can manage groups manually or by allowing people to request membership. You can assign anyone (not just admins and moderators) as a group owner to distribute the work of vetting people’s right to join a group.

There are some example plugins that will assign people to watch certain categories (and get event notifications) depending on their group, though these require modifying the plugin.


It looks like it hasn’t been mentioned yet: Discourse supports custom user fields, and they can be added to the registration page and required if wanted. Users can also require admin approval after registering before being given access, so that admins can review the form responses.

That said, I know very few sites that add mandatory fields to the registration page, and even fewer that use them to approve users joining. As Jay said Discourse does lots of stuff to protect you from spam. Registration flow changes should not be required.


Probably the easiest way to do this is to require a user field that has users select their geographic region. Then you can sort them into groups based on this response.

I’ve done this on our instance, but we are left with an irritating (albeit relatively minor) problem: the user fields in the /review page are not ordered nicely as per @eviltrout’s good work in Custom User Field Enhancements . This means that the relevant info to decide :+1: or :-1: is buried for our moderators/admins.

It could be that we could just hack this for our instance (main admin is @pacharanero), but I suspect that this is actually an issue for any Discourse instances that mandate data entry on joining in order to decide / control who should join.


Just to be clear - the issue here is the fields appear, but are not in the correct order when reviewing?


Yes - it is a somewhat random order, determined by when the field title was last edited.


Hey @markvanlan this might be a little one that would help you familiarise yourself with the front end of the review queue a bit. Can you add it to your list? Thanks.


@nathankershaw We have fixed this issue, and when you update to the newest build, the user fields will be ordered properly.


Looks great! It is a vast improvement on a small but important little feature.

@eviltrout - your team’s responsiveness is amazing. It is such a powerful thing for someone like me to be listened to; it communicates how highly you value little punters like me!!!