---
title: IDM user details stage
description: This stage collects new user data and stores it in state. This is the only stage that sets up a user from nothing. The stage does not create a managed object directly—it simply gathers and stores the data. The Self-registration stage consumes the stored user data and creates the managed object from it.
component: pingidm
version: 7.5
page_id: pingidm:self-service-reference:stages/stage-idm-user-details
canonical_url: https://docs.pingidentity.com/pingidm/7.5/self-service-reference/stages/stage-idm-user-details.html
keywords: ["JSON", "Configuration", "Authentication", "Self-Service", "User Self-Service"]
---

# IDM user details stage

This stage collects new user data and stores it in `state`. This is the only stage that sets up a user from nothing. The stage does not *create* a managed object directly—it simply gathers and stores the data. The [Self-registration stage](stage-self-registration.html) consumes the stored user data and creates the managed object from it.

The IDM User Details stage executes multiple times, requesting additional requirements each time. There are different ways for the stage to advance, depending on how the user create request is initiated.

If the user completes a self-service registration form, the input contains a `user` object, collected from the form, and populates that user in `state`. If the user registers through social authentication, the stage reads the profile from the remote identity provider, normalizes it, then maps it to a user object. That user object is then put into `state`.

If the new user object in `state` is incomplete or does not meet policy requirements, the stage returns a new set of requirements, indicating the collected data and the missing data. The registering user is requested to submit the additional data, then the stage revalidates the object in `state`. When all of the required data to register a user is present, the process advances to the next stage.

|   |                                                                     |
| - | ------------------------------------------------------------------- |
|   | The user data remains in `state`—no managed user object is created. |

* Example configuration

  ```json
  {
      "name" : "idmUserDetails",
      "identityEmailField" : "mail",
      "socialRegistrationEnabled" : true,
      "identityServiceUrl" : "managed/user",
      "registrationProperties" : [
          "userName",
          "givenName",
          "sn",
          "mail"
      ],
      "registrationPreferences": ["marketing", "updates"]
  },
  ```

* Dependencies

  This stage *must* occur in any registration process. It has no dependencies on previous stages but must have the [Self-registration stage](stage-self-registration.html) somewhere downstream in the process, to create the managed user object.

* Required Parameters

  * `identityEmailField` - the attribute on the managed user object that contains the user email.

  * `identityServiceUrl` - the managed object type on which this stage acts.

  * `socialRegistrationEnabled` - optional, `false` if not specified. Indicates whether the stage must read the user profile from a remote identity provider and normalize it.

  * `registrationProperties` - an array of properties that must be provided by a registering user in order for the stage to progress.

  * `registrationPreferences` - optional, an array of properties that can be requested after the user has provided the required properties.
