# Wait for Message

> Wait for Message suspends until the user sends a message, then outputs the latest conversation context for downstream conversational nodes to consume.

## What it does

Waits until the user sends the next message on the conversation, then resumes with the latest **conversation context** — the chat history and user profile information — as its output.

**Always place a Wait for Message node immediately after the [conversation trigger](./node-conversation-trigger.md)** to ensure the Flow is ready for the user's first message. You can loop back to it for follow-up turns, or add more Wait for Message nodes elsewhere in the Flow.

![Conversation Trigger connected to a Wait for Message node, with the Wait for Message properties panel showing Conversation ID bound to $vars.conversationTrigger1.output.conversationId.](https://dev-assets.cms.uipath.com/assets/images/maestro/chat-wait-for-message-b50852d8.png)

## Inputs

| Field | Description |
|---|---|
| **Conversation ID** | The ID of the conversation to wait on. Bind to the conversation trigger's output, for example `$vars.conversationTrigger1.output.conversationId`. |
| **Exchange limit** | Maximum number of past exchanges (back-and-forth turns) to include in the returned conversation history. Determines how many past messages in the conversation history are returned. |

## Output

| Field | Description |
|---|---|
| `conversationContext` | The latest conversation context, including the message history. |

The `conversationContext` contains the following fields:

| Field | Description |
|---|---|
| `latestExchangeId` | Identifier of the most recent exchange (back-and-forth turn). Use as the Exchange ID input to [Send Message](./node-send-message.md) when replying to the conversation. |
| `messages` | The recent conversation history, including both the user's and Flow's messages. **Exchange limit** determines how many past exchanges to include. |
| `userSettings` | User-level profile fields, configurable by the end-user on the channels. |

## Usage examples

Reference the full conversation context in a downstream [**Conversational Agent**](./node-conversational-agent.md) node:

```javascript
$vars.waitForMessage1.output.conversationContext
```

Reference the outputted `latestExchangeId` in a downstream [**Send Message**](./node-send-message.md) node:

```javascript
$vars.waitForMessage1.output.conversationContext.latestExchangeId
```

### Handling multiple Wait for Message nodes
**When you have multiple Wait for Message nodes**, you might accidentally configure a downstream node to reference a stale conversation context from a Wait for Message node that executed earlier.

For easier tracking, create a Flow-level variable (for example, `$vars.globalConversationContext`), and update it from each Wait for Message node's **Update Variable** section. Downstream nodes can then reference that single source of truth instead of needing to pick the last-executed Wait for Message node's output.

![Wait for Message node with the Update variable section open, showing how a Flow-level variable $vars.globalConversationContext can be set to the node's $self.output.conversationContext.](https://dev-assets.cms.uipath.com/assets/images/maestro/chat-wait-for-message-update-conversation-context-3eaacbaf.png)

## Related pages

- [Conversation Trigger](./node-conversation-trigger.md) — provides the Conversation ID this node consumes.
- [Conversational Agent](./node-conversational-agent.md) — the typical consumer of this node's `conversationContext` output.
- [Send Message](./node-send-message.md) — write into the conversation, using `latestExchangeId` from this node to continue the same exchange.
- [Chat](./conversational-chat.md) — full palette of chat conversational nodes.
- [Build a chat agent workflow](./build-a-chat-agent-workflow.md) — end-to-end walkthrough.
- [Chat deployment](https://docs.uipath.com/agents/automation-cloud/latest/user-guide/conversational-agents-deployment) — publish and expose the Flow through various channels.
