Skip to main content
The Send Message node sends a message through an active conversation. It finds the conversation from the current workflow execution and delivers your message through the same channel the person is using (email, Slack, web widget, SMS, etc.). Use it to send replies, follow-ups, confirmations, or closing messages within a conversational workflow.

When to use

  • Reply to a user — send a response within an active conversation
  • Ask a follow-up question — request more information mid-workflow
  • Confirm collected data — verify information before proceeding
  • Send notifications — alert the person about workflow events
  • Close a conversation — send a goodbye message when the workflow finishes
Send Message works within conversations opened by a Channel Dispatcher or Ask a Person. For standalone messages to external apps (not part of a conversation), use App Action instead.

How it works

When executed, the Send Message node:
  1. Finds the dispatcher node referenced in its configuration
  2. Locates the active conversation from the workflow execution events
  3. Resolves variables in the message content (e.g., {{lead.name}})
  4. Sends the message through the channel the person is currently using

Example: conversation flow with follow-up

Send contextual messages at different points in a workflow:

Example: confirmation before action

Ask for confirmation before performing an irreversible action:

Example: timeout follow-up

Send a reminder when someone hasn’t responded:

Formatting messages

Plain text with variables

Hi {{customer_name}},

Your order #{{order.id}} has been confirmed.
Estimated delivery: {{order.estimatedDelivery}}

Thanks for your purchase!

Channel-specific formatting

Email supports HTML:
<h2>Order confirmed</h2>
<p>Your order <strong>#{{order.id}}</strong> is on its way.</p>
Slack supports markdown:
*Order confirmed*
Your order `#{{order.id}}` is on its way.
Web Widget supports basic markdown:
## Order confirmed
Your order **#{{order.id}}** is on its way.

Settings

dispatcherId
string
required
The ID of the dispatcher or channel dispatcher node that owns the conversation. Selected from a dropdown in the UI.
content
string
required
The message content to send. Supports variable interpolation with {{variable_name}} syntax and channel-appropriate formatting.

Outputs

success
boolean
Whether the message was sent successfully.
conversationId
string
The conversation the message was sent to.
messageContent
string
The resolved message content that was sent (after variable substitution).
timestamp
string
When the message was sent (ISO format).

Tips

Keep messages concise. Long messages overwhelm users. Break complex information into multiple send steps if needed.
Use variables to personalize messages. Hi {{customer_name}}! feels better than Hi!.
Send Message requires an active conversation. If the conversation has ended or no dispatcher is running, the node will fail. Make sure the dispatcher is still active when this node executes.

Channel Dispatcher

Opens the channel that Send Message delivers through.

Ask a Person

All-in-one alternative that also supports Send Message.

Clear Conversation

Reset conversation data after sending a closing message.

App Action

Send standalone messages outside of a conversation (e.g., one-off emails).