---
title: Multiple user self-registration flows
description: You can set up multiple self-registration flows, with features limited only by the capabilities listed in Self-registration.
component: pingidm
version: 7.5
page_id: pingidm:self-service-reference:uss-multiple-register
canonical_url: https://docs.pingidentity.com/pingidm/7.5/self-service-reference/uss-multiple-register.html
keywords: ["JSON", "Configuration", "Self-Service", "User Self-Service", "Email"]
---

# Multiple user self-registration flows

You can set up multiple self-registration flows, with features limited only by the capabilities listed in [Self-registration](self-registration.html).

|   |                                                                                                                                                                                                                                                                                                                                                                                            |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|   | Multiple self-registration flows, and customization of the End User UI beyond what is described in this document (and the noted public Git repository), are *not* supported.For additional information on customizing the End User UI, refer to the following ForgeRock Git repository: [ForgeRock/end-user-ui: Identity Management (End User)](https://github.com/ForgeRock/end-user-ui). |

For example, you may want to set up different portals for regular employees and contractors. You'd configure each portal with different self-registration flows, managed by the same IDM backend. Each portal would use the appropriate registration API.

To prepare for this section, you'll need a `selfservice-registration.json` file. You can find a copy in the following directory: `/path/to/openidm/samples/example-configurations/self-service`.

To avoid errors when using this file, you should either:

* Copy the following files from the same directory:

  `selfservice.terms.json`\
  `selfservice-termsAndConditions.json`

* Delete the `termsAndConditions` code block from the respective `selfservice-registration*.json` files.

User self-registration is normally coded in the `selfservice-registration.json` file. In preparation, copy this file to the `selfservice-registration*.json` to the names shown in the following list:

* Employee Portal

  * Configuration file: `selfservice-registrationEmployee.json`

  * URL: `https://localhost:8443/openidm/selfservice/registrationEmployee`

  * `verificationLink`: `https://localhost:8443/#/registrationEmployee`

* Contractor Portal

  * Configuration file: `selfservice-registrationContractor.json`

  * URL: `https://localhost:8443/openidm/selfservice/registrationContractor`

  * `verificationLink`: `https://localhost:8443/#/registrationContractor`

Edit the configuration file for each portal.

1. Modify the `verificationLink` URL associated with each portal as described.

2. Edit your access configuration (`conf/access.json` ), by adding an endpoint for each new self-service registration file, after the `selfservice/registration` section. For example, the following code excerpt would apply to the `registrationEmployee` and `registrationContractor` endpoints:

   ```json
   {
       "pattern"    : "selfservice/registrationEmployee",
       "roles"      : "*",
       "methods"    : "read,action",
       "actions"    : "submitRequirements"
   },
   {
       "pattern"    : "selfservice/registrationContractor",
       "roles"      : "*",
       "methods"    : "read,action",
       "actions"    : "submitRequirements"
   },
   ```

3. Modify the functionality of each selfservice-registration\*.json file as desired. For guidance, refer to the sections noted in the following table:

   **Configuring selfservice-registration\*.jsonFiles for Different Portals**

   | Feature                                       | Code Block                                                                                                                                                                                                                   | Link                                                            |
   | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
   | Social Registration                           | ```json
   "socialRegistrationEnabled" : true,
   ```                                                                                                                                                                              | [Social registration](social-id.html)                           |
   | Properties requested during self-registration | ```json
   "registrationProperties" : [
       "userName",
       "givenName",
       "sn",
       "mail"
   ],
   ```                                                                                                                            | [User self-registration form](uss-registration-form.html)       |
   | Terms & Conditions                            | ```json
   {
       "name" : "termsAndConditions"
   }
   ```                                                                                                                                                                            | [Terms & Conditions](terms-conditions.html)                     |
   | Privacy & Consent                             | ```json
   {
       "name" : "consent",
       "consentTranslations" : {
           "en" : "substitute appropriate Privacy & Consent wording",
           "fr" : "substitute appropriate Privacy & Consent wording, in French"
       }
   },
   ``` | [Privacy and consent](privacy-consent.html)                     |
   | reCAPTCHA                                     | ```json
   {
       "name" : "captcha",
       "recaptchaSiteKey" : "<siteKey>",
       "recaptchaSecretKey" : "<secretKey>",
       "recaptchaUri" : "https://www.google.com/recaptcha/api/siteverify"
   }
   ```                               | [Google reCAPTCHA](recaptcha.html)                              |
   | Email Validation                              |                                                                                                                                                                                                                              | [Self-Service registration emails](uss-email-registration.html) |
   | Security Questions                            | ```json
   {
       "name" : "kbaSecurityAnswerDefinitionStage",
       "kbaConfig" : null
   },
   ```                                                                                                                                     | [Security questions](selfservice-questions.html)                |

   If you leave out the code blocks associated with the feature, you won't refer to that feature in the self-service registration flow. In that way, you can set up different self-service registration flows for the Employee and Contractor portals.

Once you've configured both portals, you can make REST calls to both URLs: `https://localhost:8443/openidm/selfservice/registrationEmployee`\
`https://localhost:8443/openidm/selfservice/registrationContractor`

For more advice on how you can create custom registration flows, refer to the following public ForgeRock Git repository: [Identity Management (End User) - UI](https://github.com/ForgeRock/end-user-ui).

|   |                                                                                                                                                                                                                                 |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | The changes described in this section require changes to the End User UI source code as described in the noted public Git repository. Pay particular attention to the instructions associated with the `Registration.vue` file. |
