---
title: Page node
description: Configure the Page node to combine multiple input-collecting nodes onto a single page displayed to users during an authentication journey.
component: auth-node-ref
version: 8.1
page_id: auth-node-ref::page
canonical_url: https://docs.pingidentity.com/auth-node-ref/latest/page.html
llms_txt: https://docs.pingidentity.com/auth-node-ref/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: 2026-09-01T13:00:59Z
keywords: ["Nodes &amp; Trees", "Journeys", "Authentication"]
section_ids:
  example: Example
  example_1_simple_login_journey: "Example 1: Simple login journey"
  example_2_login_journey_with_multiple_standalone_nodes: "Example 2: Login journey with multiple standalone nodes"
  availability: Availability
  inputs: Inputs
  dependencies: Dependencies
  configuration: Configuration
  outputs: Outputs
  callbacks: Callbacks
  outcomes: Outcomes
  errors: Errors
  changelog: Changelog
---

# Page node

The Page node lets you combine multiple nodes that request input onto a single page for display to the user. For example, you can use it to create a single login page that requests a username and password.

|   |                                                                           |
| - | ------------------------------------------------------------------------- |
|   | The Page node can only include nodes that use callbacks to request input. |

To use it, drag and drop compatible nodes onto the Page node in the journey editor.

When designing a journey that includes a Page node, consider the following points:

* A Page node must contain at least one node.

* Page nodes can't be nested inside each other. Similarly, you can't include an [Inner Tree Evaluator node](inner-tree-evaluator.html) in a Page node.

* Page nodes are designed to group nodes together that require user input. Non-interactive nodes, such as the [Data Store Decision node](data-store-decision.html) or [Push Sender node](push-sender.html), should be placed outside of Page nodes.

* Scripted Decision nodes can be included in Page nodes but only if they handle callbacks.

  Scripts that use the `Action` class to set messages (using fields such as `lockoutMessage` or `errorMessage`) aren't supported within a Page node.

* Only the final node can have multiple outcomes. All preceding nodes must have a single outcome path.

* **v2.0 Page nodes:** A Page node can contain one or more *standalone* nodes *after* the final multiple outcome node. Standalone nodes are self-contained and are processed separately to the other nodes in the Page node.

  > **Collapse: Which nodes are standalone nodes?**
  >
  > The following nodes are standalone nodes:
  >
  > * [Select Identity Provider node](select-identity-provider.html)
  >
  > * [WebAuthn Authentication node](webauthn-authentication.html)

## Example

### Example 1: Simple login journey

The following example uses a Page node containing a [Platform Username node](platform-username.html), [Platform Password node](platform-password.html), and [Choice Collector node](choice-collector.html):

![Example journey showing Page node use](_images/trees-node-page-example-platform.png)

The flow prompts the user for all input on a single page:

![User's view of an example journey containing a Page node](_images/trees-node-page-example-output-platform.png)

### Example 2: Login journey with multiple standalone nodes

The following example journey uses a Page node containing a [Platform Username node](platform-username.html), [Platform Password node](platform-password.html), [Select Identity Provider node](select-identity-provider.html), and a [WebAuthn Authentication node](webauthn-authentication.html):

![Journey with WebAuthn conditional UI and social authentication](_images/webauthn-conditional-ui-example-journey.png)

The v2.0 [Page node](page.html) provides the user with different authentication options on the same page.

The Page node contains the following nodes:

* [Platform Username node](platform-username.html). This node uses the following configuration to provide users with relevant autofill suggestions, including passkeys if they're available:

  * Autocomplete Values

    `username`\
    `webauthn`

  The autocomplete values must be in this order.

* [Platform Password node](platform-password.html)

* [Select Identity Provider node](select-identity-provider.html). This node is configured to include local authentication.

* [WebAuthn Authentication node](webauthn-authentication.html). This node is v2.0 and uses the following configuration to provide the WebAuthn conditional UI and Sign in with passkey button:

  * Username from device

    `Enabled`

  * Mediation

    `CONDITIONAL`

  * Authentication Button

    `Enabled`

The standalone nodes must be added after the non-standalone nodes.

This Page node configuration presents a Sign in page to the user similar to the following:

![Example Sign in page with passkey and social authentication options](_images/webauthn-conditional-ui-signin-page.png)

* If the user chooses Google in this example, the [Social Provider Handler node](social-provider-handler.html) routes the user to Google to authenticate. If authentication is successful, the user follows the `Account exists` path. Otherwise, they can try a different authentication method.

* If the user clicks in the User Name field, they are shown any relevant username and passkey autofill suggestions.

  * If they select a passkey and authenticate successfully, they follow the `Success` path.

  * If they enter their username and password (local authentication), they follow the `Outcome` path to the [Data Store Decision node](data-store-decision.html). This node validates their credentials and authenticates the user if they're valid.

* If they click the Sign in with passkey button, they can select a saved passkey to authenticate with. If authentication is successful, they follow the `Success` path.

## Availability

| Product                               | Available? |
| ------------------------------------- | ---------- |
| PingOne Advanced Identity Cloud       | Yes        |
| PingAM (self-managed)                 | Yes        |
| Ping Identity Platform (self-managed) | Yes        |

## Inputs

The inputs are determined by the collective inputs of the contained nodes.

## Dependencies

This node has no dependencies.

## Configuration

| Property           | Usage                                                                                                                                                                                                                                                                                                                                                        | Availability      |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- |
| Page Header        | Optional. A localized title for the Page node and the nodes contained within it. Use this when components of an authentication journey need a title. For example, dividing a registration flow into labeled sections.                                                                                                                                        | All node versions |
| Page Description   | Optional. A localized description for the Page node and the nodes contained within it. Use this when you need additional descriptive text in an authentication journey.Ping Identity Platform deployments only: You can use HTML code to format the description.                                                                                             | All node versions |
| Stage              | Optional. A stage name to pass to the client to aid in rendering.	You can't configure a Stage for this node if you configure a Page Footer, Theme or Submit Button Text. These properties overwrite the value of the Stage property.                                                                                                                         | All node versions |
| Submit Button Text | Optional. Use the Key and Value fields to set the text of the Submit button.	This property isn't visible in the AM admin UI. It requires a Ping Identity Platform deployment.                                                                                                                                                                                | All node versions |
| Page Footer        | Optional. A localized footer for the page node and the nodes contained within it. Use this when you need additional descriptive text in an authentication journey.Ping Identity Platform deployments only: You can use HTML code to format the description.	This property isn't visible in the AM admin UI. It requires a Ping Identity Platform deployment. | All node versions |
| Theme              | Optional. If using hosted pages, specify a theme to override this journey's UI theme.	This property isn't visible in the AM admin UI. It requires a Ping Identity Platform deployment.                                                                                                                                                                       | All node versions |

|   |                                                                                                                                                                |
| - | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | This node's optional properties are passed in the response, but a self-hosted or custom UI must support these properties to make them visible to the end user. |

## Outputs

The outputs are determined by the collective outputs of the contained nodes.

## Callbacks

This node doesn't send any callbacks.

## Outcomes

The outcomes depend on whether the Page node contains standalone nodes. Standalone nodes can only be included from v2.0 onwards.

* Without standalone nodes

  The outcomes are determined by the final node in the Page node.

* With standalone nodes

  The available outcomes include the following:

  * All outcomes from the standalone nodes.

  * The outcomes determined by the last node prior to the standalone nodes:

    * If this node has a single outcome path, a single outcome is available. This outcome is typically called `Outcome`.

    * If this node has multiple outcome paths, they're all available.

## Errors

The node can log the following errors:

* `Failed to collect inputs of contained node: node name`

  The *node name* couldn't retrieve required properties from the shared node state.

* `Failed to collect outputs of contained node: node name`

  The *node name* couldn't retrieve required properties to include in the shared node state.

* `Could not find the identity based on the information available on context`

  Failed to find the account profile with this `username` in this `realm`.

* `An error occurred when trying to lock out the user account`

  Failed to update the account status; applies when locking and unlocking the account.

The node can throw exceptions with the following messages during operation:

* `This page has no nodes in it, so cannot proceed`

  A Page node must contain at least one other node.

* `No outcome and only metadata callbacks found`

  Failed to get to an outcome while processing the contained nodes.

* `Node properties cannot be fetched`

  Failed to access the properties of a contained node.

The node can throw exceptions with the following messages when saving the journey:

* `Illegal child node type: node type`

  A Page node can't contain a *node type*.

* `Node does not have any outcomes: node type`

  The contained nodes must have at least a single outcome path.

* `Only the last node in a page can have more than one outcome`

  Consider rearranging the contained nodes.

* `Node does not exist: node id`

  Use the journey editor to fix the problem.

* `Could not load child node: node`

  Use the journey editor to fix the problem.

* `Could not obtain outcomes for node: node`

  Use the journey editor to fix the problem.

## Changelog

| Version | Changes                                                                                                                                                 |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| []()2.0 | Added support for standalone nodes within a Page node. Standalone nodes are self-contained and can be included *after* the final multiple outcome node. |
