---
title: Conditional User Stage
description: Defines a condition, that results in a boolean (true or false). The outcome of the condition determines which stage should be executed next.
component: pingidm
version: 7.5
page_id: pingidm:self-service-reference:stages/stage-conditional-user
canonical_url: https://docs.pingidentity.com/pingidm/7.5/self-service-reference/stages/stage-conditional-user.html
keywords: ["JSON", "Configuration", "Authentication", "Self-Service", "User Self-Service"]
---

# Conditional User Stage

Defines a condition, that results in a boolean (`true` or `false`). The outcome of the condition determines which stage should be executed next.

* Example configuration

  ```json
  {
      "name": "conditionaluser",
      "identityServiceUrl": "managed/user",
      "condition": {
          "type": "kbaQuestions"
      },
      "evaluateConditionOnField": "user",
      "onConditionFalse": {
          "name": "kbaUpdateStage",
          "kbaConfig": null,
          "identityServiceUrl" : "managed/user",
          "uiConfig" : {
              "displayName" : "Update your security questions",
              "purpose" : "Please review and update your security questions",
              "buttonText" : "Update"
          }
      }
  }
  ```

* Dependencies

  No dependencies on previous or following stages. This stage can occur anywhere in a process. If the condition evaluates to `true`, the process moves on to the next stage.

* Required Parameters

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

  * `condition` - the condition type, which can be one of the following:

    * `kbaQuestions` - a boolean (`true` or `false`) that indicates whether configured security questions have been answered.

    * `queryFilter` - a common filter expression such as `"filter" : "/co eq \"US\""`.

    * `script` - lets you configure a custom scripted condition.

    * `loginCount` - a condition based on the number of password or social authentication-based login requests.

    * `terms` - a boolean (`true` or `false`) that indicates whether configured Terms and Conditions have been accepted.

    * `timesincelogin` - sets a condition based on the period of time since the last login, in years, months, weeks, days, hours, and minutes.

  * `evaluateConditionOnField` - the property on which the condition should be evaluated.

  * `onConditionFalse` - the details of the stage to be called if the condition evaluates to false.
