---
title: Attribute Present Decision node
description: Checks whether a specified attribute, including private attributes such as password, is present on a user object in PingAM.
component: platform
version: 7.5
page_id: platform:auth-node-ref:attribute-present-decision
canonical_url: https://docs.pingidentity.com/platform/7.5/auth-node-ref/attribute-present-decision.html
llms_txt: https://docs.pingidentity.com/platform/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["Nodes &amp; Trees", "Journeys", "Authentication", "Account", "Custom Attributes", "Update Passwords"]
page_aliases: ["auth-node-attribute-present-decision.adoc"]
section_ids:
  availability: Availability
  inputs: Inputs
  dependencies: Dependencies
  configuration: Configuration
  outputs: Outputs
  outcomes: Outcomes
  errors: Errors
  example: Example
---

# Attribute Present Decision node

The Attribute Present Decision node checks whether an attribute is present on an object, including private attributes. There is no need to specify the value of the attribute.

Use this node during an update password flow to check whether the local account has a password, for example.

This node is similar to the [Attribute Value Decision node](attribute-value-decision.html) when that node is set to use the `PRESENT` operator, except it can't return the value of the attribute, but can work with private attributes.

## Availability

| Product                                                                                                                                 | Available? |
| --------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| PingOne Advanced Identity Cloud                                                                                                         | Yes        |
| PingAM (self-managed)&#xA;&#xA;This functionality requires that you configure AM as part of a sample Ping Identity Platform deployment. | Yes        |
| Ping Identity Platform (self-managed)                                                                                                   | Yes        |

## Inputs

This node reads the Identity Attribute from the shared node state. If it can't read the Identity Attribute, it reads the `userName` from the shared node state.

It uses the value to look up the identity object.

## Dependencies

This node depends on IDM to look up the user object.

## Configuration

| Property           | Usage                                                                                                                                                                                                                                                                       |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Present Attribute  | The attribute whose presence you want to verify in the IDM object. This can be an otherwise private attribute, such as `password`.&#xA;&#xA;This field is case-sensitive and must match the IDM object attribute. For example, givenName, not givenname.Default: `password` |
| Identity Attribute | The attribute used to identify the managed object in IDM.Default: `userName`                                                                                                                                                                                                |

## Outputs

None.

## Outcomes

* `True`

  The node found the attribute in the managed identity object.

* `False`

  Any other case.

## Errors

This node does not log error or warning messages of its own.

## Example

This journey to update a password uses the Attribute Present Decision node to check whether the account has a password:

![Checking whether an account has a password](_images/update-password-journey.png)

The user has already authenticated before beginning this journey:

* The [Get Session Data node](get-session-data.html) stores the `userName` from the session.

* The Attribute Present Decision node checks whether the user object has a password attribute.

* If so, the first [Page node](page.html) with the [Platform Password node](platform-password.html) prompts the user for the current password.

* Otherwise, the [Email Suspend node](email-suspend.html) sends an email to the user and suspends the flow until the user follows the link in the message.

* The [Data Store Decision node](data-store-decision.html) confirms the username-password credentials.

* The second [Page node](page.html) with the [Platform Password node](platform-password.html) prompts the user for the new password.

* The [Patch Object node](patch-object.html) updates the user object with the new password.
