Output Nodes Reference
Output nodes return results from your workflow, sending responses to users, chat interfaces, or external systems.
Text Response Node
Send text messages back to users with advanced templating support.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Text | Text | Yes | Response text template |
| Typing Indicator | Toggle | No | Show typing indicator before response |
| Delay | Number | No | Delay before sending (seconds) |
Template Features
Variable Insertion:
Hello {{contact.first_name}}, your order #{{order.id}} is confirmed.
Array Iteration:
Your items:
{{#each order.items}}
- {{item.name}}: ${{item.price}}
{{/each}}
Conditional Content:
{{#if success}}
Your request was successful!
{{else}}
Sorry, there was an error.
{{/if}}
Accessing Previous Node Output:
{{llmintegration_1.output}}
Output Variables
{{textresponse_1.response_text}} - Final formatted text
{{textresponse_1.output}} - For chaining to next node
Response Builder Node
Compose rich, multi-component responses with text, tables, charts, SQL, and more.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Components | Array | Yes | Array of component configurations |
| Output Destination | Select | No | Where to send output: chat, sse_output, api_response |
Component Types
| Type | Icon | Description |
|---|---|---|
text | 📝 | Rich text with markdown support |
sql | 🗄 | Syntax-highlighted SQL query |
table | 📊 | Interactive data table with sorting/pagination |
chart | :chart_increasing: | Plotly chart visualization |
recharts | 📊 | Recharts visualization (bar, line, pie, area) |
contacts | 👥 | Contact cards display |
activities | 📆 | Activity timeline |
json | {} | Collapsible JSON tree viewer |
alert | ⚠️ | Highlighted alert/notice message |
tableau | 📊 | Embedded Tableau visualization |
image | 🖼 | Image display with lightbox |
Component Examples
Text Component:
{
"type": "text",
"props": {
"content": "## Summary\n\nHere are the results...",
"maxLength": 500,
"showHeader": false
}
}
Table Component:
{
"type": "table",
"props": {
"data": "{{queryNode.results}}",
"pageSize": 10,
"showSizeChanger": true
}
}
Chart Component (Recharts):
{
"type": "recharts",
"props": {
"data": "{{analysisNode.chart_data}}",
"type": "bar",
"title": "Sales by Month",
"xKey": "month",
"yKey": "revenue"
}
}
Alert Component:
{
"type": "alert",
"props": {
"message": "Processing complete!",
"type": "success"
}
}
Output Variables
{{responsebuilder_1.output}} - Full response object
{{responsebuilder_1.components}} - Array of rendered components
{{responsebuilder_1.success}} - true/false
Voice Response Node
Convert text to speech and output audio responses.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Text | Text | Yes | Text to convert to speech |
| Synthesizer Source | Select | Yes | direct, voice_agent, or none |
| Synthesizer Integration | Select | Conditional | TTS integration (when source is direct) |
| Output Format | Select | No | mp3, wav, ogg, m4a |
| Output Destination | Select | No | file, stream, phone, webrtc |
Voice Settings
| Setting | Type | Description |
|---|---|---|
| Voice ID | Text | Voice to use for synthesis |
| Speed | Number | Speech speed (0.5-2.0, default 1.0) |
| Pitch | Number | Voice pitch (-20 to 20, default 0) |
| Volume | Number | Audio volume (0.0-1.0, default 0.8) |
Example Configuration
Text: "Hello {{contact.first_name}}, thank you for calling."
Synthesizer Source: direct
Output Format: mp3
Voice Settings:
Speed: 1.0
Volume: 0.8
Output Variables
{{voiceresponse_1.audio_url}} - URL to audio file
{{voiceresponse_1.audio_data}} - Audio binary data
{{voiceresponse_1.duration}} - Audio duration
{{voiceresponse_1.success}} - true/false
Workflow JSON Output Node
Validate and output workflow JSON configurations (used by AI Workflow Builder).
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Workflow JSON | Text | Yes | Workflow JSON from LLM |
| Auto Fix Handles | Toggle | No | Auto-fix missing sourceHandle/targetHandle |
| Auto Layout | Toggle | No | Auto-layout nodes using grid |
| Validation Level | Select | No | strict or lenient |
| Output Channel | Select | No | workflow_builder or api_response |
Use Case
This node is primarily used in AI-powered workflow generation:
[LLM Integration] → [Workflow JSON Output]
- Validates generated workflow
- Fixes handle issues
- Outputs to workflow builder
Output Variables
{{workflowjsonoutput_1.is_valid}} - Whether workflow is valid
{{workflowjsonoutput_1.workflow_json}} - Validated workflow JSON
{{workflowjsonoutput_1.total_nodes}} - Number of nodes
{{workflowjsonoutput_1.total_edges}} - Number of edges
{{workflowjsonoutput_1.fixes_applied}} - Number of auto-fixes
{{workflowjsonoutput_1.validation_errors}} - List of errors
Quick Reference
Node Selection Guide
| Need | Use |
|---|---|
| Simple text message | Text Response |
| Rich multi-component output | Response Builder |
| Voice/audio response | Voice Response |
| AI-generated workflow output | Workflow JSON Output |
Response Patterns
Simple Text:
[Process Data] → [Text Response: "Done! Found {{count}} records."]
Rich Dashboard Response:
[Query Data] → [Response Builder]
- Text: Summary
- Table: Results
- Chart: Visualization
Voice Reply:
[LLM Generate] → [Voice Response: "{{llm.output}}"]
Best Practices
- Use Text Response for simple messages - Fast and efficient
- Use Response Builder for rich data - Tables, charts, multiple sections
- Add typing indicator - Makes responses feel more natural
- Handle empty data - Check for results before displaying tables/charts
- Use appropriate delays - Prevent overwhelming users with rapid responses