maestro
latest
false
Maestro user guide
- Introduction
- Getting started
- Building with Maestro BPMN
- Understanding Maestro BPMN modeling
- Opening the modeling canvas
- Modeling your process
- Aligning and connecting BPMN elements
- Autopilot for Maestro (Preview)
- Process Repository
- Implementing a simple BPMN process
- Implementing a complex BPMN process
- Debugging
- Simulating
- Common implementation scenarios
- Building with Maestro Case
- Introduction to Maestro Case
- Maestro BPMN vs. Maestro Case: when to use case management
- The Maestro Case lifecycle: from event trigger to app experience
- Build your first case with Maestro Case
- Build a Maestro Case with a coding agent (preview)
- Defining case keys (system vs. external)
- Establishing task I/O and write-back contracts
- Exit rules and early stage termination
- Modeling primary and secondary stages
- Triggering a case from Data Fabric
- Implementing stage-level personas and permissions
- Setting SLAs and automated escalation rules
- Configuring a rework loop (re-entry)
- Configuring and testing the Case Manager Agent (preview)
- Case Manager input and output contract
- Maestro Case component dictionary
- Building with Maestro Flow
- Integrations
- Operating
- Monitoring
- Optimizing
- Reference information
Send Message writes an arbitrary response message to the chat conversation.
What it does
Respond to the user with any message — useful for fixed replies, routing notifications, and emitting node outputs to the chat.
Note:
Send Message can only reply within an exchange that a user has initiated, which means the user must send a message first before the Flow can respond to the chat. Flow-initiated exchanges — sending a message without a prior user turn — are not yet supported.
Inputs
| Field | Description |
|---|---|
| Conversation ID | The ID of the conversation to write to. Bind to the conversation trigger's output, for example $vars.conversationTrigger1.output.conversationId. |
| Exchange ID | The exchange (back-and-forth turn) to append this message to. Bind to a Wait for Message node's latest exchange, for example $vars.waitForMessage1.output.conversationContext.latestExchangeId. |
| Content | The message content. Supports expressions to inject variable data. |
Usage examples
Fixed messages
Send a static acknowledgment before a long-running node:
Hold on a moment while we process your request...
Hold on a moment while we process your request...
Announce routing to a specialist conversational agent before the Wait for Message that starts the specialist agent's loop:
You have been routed to the specialist agent. How can we help you today?
You have been routed to the specialist agent. How can we help you today?
Expressions with variables
Use variables to emit the output of an upstream node using an expression:
`The result is ${$vars.previousNode.output.result}.`
`The result is ${$vars.previousNode.output.result}.`
Related pages
- Wait for Message — provides the
latestExchangeIdthis node consumes. - Conversational Agent — the LLM-driven alternative; produces streamed responses with tool-calls.
- Chat — full palette of chat conversational nodes.
- Build a chat agent workflow — end-to-end walkthrough that uses Send Message for hand-off acknowledgments and deterministic replies.
- Chat deployment — publish and expose the Flow through various channels.