Visual Workflows
Build complex automation flows with a drag-and-drop workflow editor.
Overview
The workflow editor provides:
- 30+ node types for various operations
- Drag-and-drop interface
- Real-time preview of workflow structure
- Execution tracking and history
- Error handling and retries
Creating Workflows
Via Dashboard
- Navigate to Workflows in the sidebar
- Click New Workflow
- Drag nodes from the palette
- Connect nodes by dragging from output to input handles
- Configure each node's properties
- Save and activate the workflow
Workflow Canvas
The canvas provides:
- Zoom and pan controls
- Mini-map for navigation
- Grid snapping
- Undo/redo
- Copy/paste nodes
Node Categories
Triggers
| Node | Description |
|---|---|
trigger | Start point for workflow |
webhook | HTTP webhook trigger |
schedule | Time-based trigger |
Logic
| Node | Description |
|---|---|
if-else | Conditional branching |
switch | Multi-way branching |
loop | Iterate over arrays |
wait | Delay execution |
parallel | Run branches concurrently |
HTTP & API
| Node | Description |
|---|---|
http-request | Make HTTP requests |
webhook-response | Respond to webhooks |
graphql | GraphQL queries |
Communication
| Node | Description |
|---|---|
email | Send emails |
telegram | Telegram messages |
slack | Slack messages |
discord | Discord messages |
whatsapp | WhatsApp messages |
sms | SMS messages |
Browser Automation
| Node | Description |
|---|---|
navigate | Go to URL |
click | Click element |
type | Enter text |
extract | Extract content |
screenshot | Capture screenshot |
scroll | Scroll page |
AI & LLM
| Node | Description |
|---|---|
chat | AI conversation |
prompt | Single prompt completion |
tool-call | Invoke agent tools |
embeddings | Generate embeddings |
Data Operations
| Node | Description |
|---|---|
database-query | SQL queries |
transform | Data transformation |
filter | Filter arrays |
aggregate | Aggregate data |
Utilities
| Node | Description |
|---|---|
code | Execute JavaScript |
variable | Set/get variables |
log | Log messages |
error | Throw errors |
Node Configuration
Each node has configurable properties accessed in the side panel.
Example: HTTP Request
json
{
"type": "http-request",
"data": {
"method": "POST",
"url": "https://api.example.com/data",
"headers": {
"Authorization": "Bearer {{secrets.api_key}}"
},
"body": {
"message": "{{previous.output}}"
}
}
}Variables & Expressions
Syntax
Use double curly braces for dynamic values:
{{variable.path}}
{{previous.output}}
{{context.user.email}}
{{secrets.api_key}}Available Contexts
| Context | Description |
|---|---|
previous | Output from previous node |
trigger | Trigger node data |
context | Workflow context |
secrets | Stored secrets |
env | Environment variables |
Execution
Manual Trigger
Click the Run button to execute immediately.
Scheduled Trigger
Link to a schedule for automatic execution.
Webhook Trigger
Create a webhook URL for external triggers.
Execution Status
| Status | Description |
|---|---|
queued | Waiting to start |
running | Currently executing |
complete | Finished successfully |
errored | Failed with error |
terminated | Manually stopped |
Error Handling
Retry Configuration
json
{
"retry": {
"attempts": 3,
"delay": 60,
"backoff": "exponential"
}
}Error Handlers
Add error handler nodes to catch and handle failures.
Best Practices
1. Start Simple
Begin with 2-3 nodes and add complexity gradually.
2. Use Descriptive Names
Name nodes clearly: fetch-user-data not node-1.
3. Handle Errors
Always include error handling nodes.
4. Test Thoroughly
Test each execution path before going live.
5. Monitor Executions
Review execution history regularly.
API Reference
See Workflows API for complete endpoint documentation.