Send Reply Node
The Send Reply node sends messages through communication channels configured in a Human Communicator. Use it within dispatcher workflows to respond to humans, ask questions, or send notifications.
When to Use
- Respond to messages - Reply to humans within a dispatcher conversation
- Ask follow-up questions - Request more information
- Confirm information - Verify collected data before proceeding
- Send notifications - Alert humans about workflow events
- Close conversations - Send final messages before ending
Send Reply is used within Ask a Person workflows. For standalone messages to external apps, use App Action.
Example: Conversation Flow
Use Send Reply to build a multi-step conversation:
├── Human Communicator
│ ├── [Action: Greeting]
│ │ └── Send Reply
│ │ "Hi {{customer_name}}! Thanks for reaching out.
│ │ How can I help you today?"
│ │
│ ├── [Event: Customer responds]
│ │ ├── LLM (understand request)
│ │ ├── Condition (can help automatically?)
│ │ │ ├── Met:
│ │ │ │ └── Send Reply
│ │ │ │ "I can help with that! {{llm_1.response}}"
│ │ │ └── Unmet:
│ │ │ └── Send Reply
│ │ │ "Let me connect you with our team.
│ │ │ Someone will reach out shortly."
Ask for specific information:
├── Send Reply
│ "To process your request, I'll need a few details:
│
│ 1. Your company name
│ 2. Project deadline
│ 3. Budget range
│
│ Let's start with your company name - what is it?"
│
├── [Wait for response]
├── Set Variable (company = response)
│
├── Send Reply
│ "Got it - {{company}}. When is your deadline?"
│
├── [Wait for response]
├── Set Variable (deadline = response)
│
├── Send Reply
│ "And finally, what's your budget range?"
Example: Confirmation Message
Verify collected information:
├── Send Reply
│ "Let me confirm what I have:
│
│ Company: {{collected.company}}
│ Deadline: {{collected.deadline}}
│ Budget: {{collected.budget}}
│
│ Is this correct? (Reply 'yes' to confirm or 'no' to make changes)"
│
├── [Wait for response]
├── Condition (response contains 'yes')
│ ├── Met: Send Reply ("Great! Processing your request...")
│ └── Unmet: Send Reply ("No problem. What would you like to change?")
For Slack and web widget, add interactive buttons:
Configuration:
{
"message": "Would you like to proceed?",
"buttons": [
{"text": "Yes, continue", "value": "yes", "style": "primary"},
{"text": "No, cancel", "value": "no", "style": "danger"},
{"text": "I have questions", "value": "questions"}
]
}
When the human clicks a button, the event handle receives the button value.
Plain Text
Hello!
Your request has been received.
We'll get back to you within 24 hours.
Reference: #{{reference_id}}
With Variables
Hi {{customer_name}},
Thanks for your order of {{order.items.length}} items.
Total: ${{order.total}}
Estimated delivery: {{order.estimatedDelivery}}
Email supports HTML:
<h2>Order Confirmation</h2>
<p>Your order <strong>#{{order.id}}</strong> has been confirmed.</p>
Slack supports markdown:
*Order Confirmation*
Your order `#{{order.id}}` has been confirmed.
Web Widget supports basic markdown:
## Order Confirmation
Your order **#{{order.id}}** has been confirmed.
Attachments
Include files in your message:
{
"message": "Here's the report you requested.",
"attachments": [
{
"filename": "report.pdf",
"content": "{{execute_code_1.files[0]}}",
"contentType": "application/pdf"
}
]
}
Channel Selection
Auto (Default)
Uses the same channel the human is currently using:
- If they emailed, reply via email
- If they’re on Slack, reply on Slack
Force Specific Channel
Sometimes you need to use a specific channel:
{
"message": "I've sent the detailed report to your email.",
"channel": "email"
}
Forcing a channel requires the human to have that channel configured. If they haven’t provided an email, forcing email delivery will fail.
Tips
Keep messages concise. Long messages overwhelm users. Break complex information into multiple messages.
End questions clearly. Instead of “What’s your budget?” use “What’s your budget range? (e.g., 10k−50k)”
Use buttons when you want specific responses. Free-text works for open questions; buttons work for choices.
Don’t send too many messages in quick succession. Batch information into single messages when possible.
Settings
name
string
default:"Send Reply"
Display name shown on the canvas.
key
string
default:"send_reply_1"
Unique identifier for referencing outputs.
The message content to send. Supports variable interpolation and basic formatting.
Which channel to use:
- auto - Use the same channel the human is using
- email - Force email delivery
- slack - Force Slack delivery
- web_widget - Force web widget delivery
Files to attach to the message.
Interactive buttons for quick responses (supported on Slack and web widget).
Outputs
Unique identifier for the sent message.
Status of delivery: sent, delivered, failed.
When the message was sent.