How can I customize the registration form?

I am relatively new to Discourse and am looking into the registration proces. I would like for new members to register also their first and last name, next to the default user name, e-mail address and password fields. The default registration form only asks for an optional name. Is it possible to change the label name to first name and make this a mandatory field?

Also I have added a new user field ‘last name’ to the registration form. The user field is displayed in the bottom of the form. Is is possible to change the order of the fields? I hope these screenshots give some insight to what I mean.

We are self hosting our Discourse application. It would be great if someone can get me on my way.

At least that part is easy: there is a site setting called full name required

You can probably do that in CSS but internally it would still be full name.

I don’t think that is possible without a plugin.

Thanks @tophee. I found the full name required setting.

Do you know if there is a plugin available?

We are looking into connecting Discourse to our CRM, that’s why I want this basic information. I am just wondering what would be the best way to customize the registration form?

Maybe use SSO and have the CRM pass the info to Discourse? That way you’d obviate the need to have users enter any information into Discourse.

1 Like

Looking forward to hearing how this develops,

I would like to add more unique user info in the sign up process and then display this new info on user profiles. Also thinking about adding modifications to profile design

What makes his case more complicated is that they want separate first and last name fields rather than the built-in name field.

For just adding custom fields it’s pretty flexible already, unless the order that the stock fields are presented is really, really important to you.


In which direction is the connection supposed to work? Do you intend to pull existing customer data from your CRM into discourse as @pfaffman seems to imply or do you want to populate your CSM with user data from discourse?

The latter is probably best achieved via webhooks, if your CRM supports that.

To solve the problem that you need First and Last Name as separate fields, a pragmatic work around might be that you leave discourse as it is and try to split up the full name at a different place.

Either your CSM provides some function in that direction (bulk converting a Full Name into First Name and Last Name) or you can use a service like integromat which allows very detailed processing of strings which it receives via webhook (or other means) and pass it on to tour CSM.

Of course, splitting up full names is somewhat error prone, but maybe you can live with manually fixing a couple of names?

Oh, and here’s another workaround, perhaps better than the above: you can turn require full name off, hide the full name field via CSS and create two compulsory custom user fields instead. The only remaining challenge would then be to display them higher up on the signup form.

From Discourse to our CRM. There is a possibility that a community member is not yet a contact within our CRM. Ofcourse this is important information for us, that’s why we would like to link the two systems. The last name is a mandatory field in our CRM and the first name is used for mailing purposes.

We briefly discussed creating our own registration form, instead of the default Discourse registration. And then link from CRM to Discourse Do you know someone who has done this before?

I also thought about this option, but the full name shows up above each message your write. So I figured this wouldn’t be a good solution?

@tophee, @pfaffman
Ohh, I also asked one of our programmers to have a look at all your answers. I’ll let you know his reply :slight_smile:

1 Like

Well, if the field is empty, it doesn’t show up. Users can still fill it in under their preferences if they want and then it will show up. But many communities work well without real names, so it should not be a problem. If you want consistency across all users you can turn off enable names in site settings and full names will be hidden for all users.