---
title: Message node
description: The Message node presents a custom, localized message to the user with customizable, localized positive and negative answer buttons the user must click to proceed.
component: auth-node-ref
version: latest
page_id: auth-node-ref::message
canonical_url: https://docs.pingidentity.com/auth-node-ref/latest/message.html
keywords: ["Nodes &amp; Trees", "Journeys", "Authentication"]
page_aliases: ["auth-node-message.adoc"]
superseded_by: https://docs.pingidentity.com/auth-node-ref/latest/message.html
section_ids:
  example: Example
  availability: Availability
  inputs: Inputs
  dependencies: Dependencies
  configuration: Configuration
  outputs: Outputs
  outcomes: Outcomes
  errors: Errors
---

# Message node

The Message node presents a custom, localized message to the user with customizable, localized positive and negative answer buttons the user must click to proceed.

## Example

Use a Message node to:

* Communicate an important message for the user to acknowledge.

* Ask a question with a yes/no answer.

The following journey uses the `Join VIPs Message Node` to prompt the user to join the VIP program:

![Inner journey prompting to join the VIP program](_images/auth-node-message-journey.png)

* The [Login Count Decision node](login-count-decision.html) triggers the [Query Filter Decision node](query-filter-decision.html) after every tenth authentication.

* The [Query Filter Decision node](query-filter-decision.html) queries the user profile to determine whether they have signed up for the VIP program.

  If the user hasn't signed up yet, the True outcome triggers the `Join VIPs Message Node`, which prompts the user to join the program:

  ![Presenting a true/false question to the user](_images/trees-node-message-example.png)

  Node property settings:

  * Message

    `en-gb`; `Do you want to join our VIP program?`

  * Positive answer

    `en-gb`; `Yes, please!`

  * Negative answer

    `en-gb`; `No, thanks!`

* If the user clicks Yes, please! the [Page node](page.html) with an embedded [Attribute Collector node](attribute-collector.html) collects opt-in choices to store in user profile attributes.

* The [Patch Object node](patch-object.html) updates the user profile with the attributes collected.

Call the journey using an [Inner Tree Evaluator node](inner-tree-evaluator.html) from another authentication journey directly after an [Increment Login Count node](increment-login-count.html) note:

![Calling an inner journey for VIP signup](_images/call-auth-node-message-journey.png)

The `VIP Signup Journey` uses the login count from the [Increment Login Count node](increment-login-count.html) in the [Login Count Decision node](login-count-decision.html) to decide whether to prompt the user to join the VIP program.

## Availability

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

## Inputs

This node reads preferred locales from the incoming request context.

It doesn't read from the shared node state.

This node has no required predecessor nodes.

## Dependencies

This node has no dependencies.

## Configuration

| Property                   | Usage                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Message                    | Add a custom, localized message per locale:1) Click Add.

2) In the Key field, enter the locale.[(1)](#message-locale-footnote)

   The incoming HTTP request can include an `Accept-Language` header indicating the user's preferred locales. If the incoming HTTP request doesn't include the header or the preferred locales don't match any configured locales, the node uses default settings.

   Find the Default Authentication Locale setting under Native Consoles > Access Management > Realms > *Realm Name* > Authentication > Settings > General.

3) In the Value field, enter the message to display to the user.

   If you leave this blank, the message node displays a localized version of `Default message` to the user.To edit an entry, click the Pencil icon ([icon: pencil-alt, set=fa]).To remove an entry, click the Delete icon ([icon: trash, set=fa]). |
| Positive answer            | Add the text per locale for the positive answer button that triggers a True outcome:1) Click Add.

2) In the Key field, enter the locale.[(1)](#message-locale-footnote)

   If the incoming HTTP request doesn't include the header or the preferred locales don't match any configured locales, the node uses the first text in the list.

3) In the Value field, enter the text to display to the user.

   If you leave this blank, the button displays a localized version of `Yes`.To edit an entry, click the Pencil icon ([icon: pencil-alt, set=fa]).To remove an entry, click the Delete icon ([icon: trash, set=fa]).                                                                                                                                                                                                                                                      |
| Negative answer            | Add the text per locale for the negative answer button that triggers a False outcome:1) Click Add.

2) In the Key field, enter the locale.[(1)](#message-locale-footnote)

   If the incoming HTTP request doesn't include the header or the preferred locales don't match any configured locales, the node uses the first text in the list.

3) In the Value field, enter the text to display to the user.

   If you leave this blank, the button displays a localized version of `No`.To edit an entry, click the Pencil icon ([icon: pencil-alt, set=fa]).To remove an entry, click the Delete icon ([icon: trash, set=fa]).                                                                                                                                                                                                                                                      |
| Shared State Property Name | The name of the node state property.If set, the node adds the property to shared node state, setting its value to the numeric value of the outcome:- 0

  The user clicked the positive answer button.

- 1

  The user clicked the negative answer button.For example, if you set this to `messageNodeOutcome` and the user clicks the positive answer button, the node adds `"messageNodeOutcome": 0` as a shared node state property.                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Only Positive Answer       | When enabled, the node displays only the positive answer button.&#xA;&#xA;This property only displays when the node is placed within a Page node.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Show buttons as links      | When enabled, the node shows the buttons as links instead.&#xA;&#xA;This property only displays when the node is placed within a Page node.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

(1) Specify a [locale that Java supports](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html), such as `en-gb`. Otherwise, the node throws a configuration exception with an `Invalid locale provided` message.

## Outputs

When the Shared State Property Name setting has a value, the node adds the property to the shared node state. The property's value is the numeric value of the outcome:

* `0`

  The user clicked the positive answer button.

* `1`

  The user clicked the negative answer button.

## Outcomes

Returns a boolean outcome:

* True

  The user clicked the positive answer button.

* False

  The user clicked the negative answer button.

## Errors

This node doesn't cause authentication to fail unless you connect one of the outcomes to a [Failure node](failure.html).

If the message or answer button settings specify a locale Java doesn't support, the node throws a configuration exception with an `Invalid locale provided` message. If this happens, fix the locale setting.

If this node encounters an internal configuration issue, it logs a warning message `Error attempting to retrieve the realm/global default locale`. If the warning persists, contact Ping Identity Support.
