Custom Registration Flow


I would like to know what are the differents steps to customize Keycloak Registration Flow and if some of you have some example of implementation of it.



Hello @daloulou, what are your needs ?

You can use or override each of the execution below by creation a new Flow :

If you want to create new execution,


Thanks that was exactly what i was looking for, I’m currently trying to call some microservice API during the registration.

1 Like

Hi @M3lkior, I’m trying to remove the confirm password field from registration page, i changed ftl which is working fine, I have also created a jar file with FormActionFactory and FormAction implementation (changed metada/services etc) and deployed but that doesn’t have any impact. Is there anything missing ?

hi @sagar-jani Did you Edit the Regtration Flow in Authentication Tab ?

Yes I did that, I followed the keycloak documentation. I performed a workaround by using the same java class RegisterPassword and removing the validation, I deployed my custom jar and it works fine but its not a proper solution, and it works because of Java classloader considering my new class.

Hi @sagar-jani,

Could you attach Keycloak flow configuration screenshots ?

Sure @M3lkior

I have created a new password validation step by implementing FormAction & FormActionFactory

However I don’t want to replace the default authentication flow and create a new flow but that doesn’t work.

@sagar-jani You can create a copy of registration flow, then add your password validation by “Adding execution”.
After that you have to go to Binding tab and replace registration flow by your copy of this flow :wink:

Yes @daloulou That’s what I did but it’s not taking my custom class, and hence I used the same class RegisterPassword of keycloak, and it changed the default authentication flow which is a bit hecky.

An ideal solution is to have a custom flow and just add an execution.

@M3lkior any ideas ?

I have deployed a new class which is an exact replica of RegistrationPassword but with a different proivderId, but I can’t see the new action in Add Execution dropdown, any ideas ?