Skip to content

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

  1. Navigate to Workflows in the sidebar
  2. Click New Workflow
  3. Drag nodes from the palette
  4. Connect nodes by dragging from output to input handles
  5. Configure each node's properties
  6. 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

NodeDescription
triggerStart point for workflow
webhookHTTP webhook trigger
scheduleTime-based trigger

Logic

NodeDescription
if-elseConditional branching
switchMulti-way branching
loopIterate over arrays
waitDelay execution
parallelRun branches concurrently

HTTP & API

NodeDescription
http-requestMake HTTP requests
webhook-responseRespond to webhooks
graphqlGraphQL queries

Communication

NodeDescription
emailSend emails
telegramTelegram messages
slackSlack messages
discordDiscord messages
whatsappWhatsApp messages
smsSMS messages

Browser Automation

NodeDescription
navigateGo to URL
clickClick element
typeEnter text
extractExtract content
screenshotCapture screenshot
scrollScroll page

AI & LLM

NodeDescription
chatAI conversation
promptSingle prompt completion
tool-callInvoke agent tools
embeddingsGenerate embeddings

Data Operations

NodeDescription
database-querySQL queries
transformData transformation
filterFilter arrays
aggregateAggregate data

Utilities

NodeDescription
codeExecute JavaScript
variableSet/get variables
logLog messages
errorThrow 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

ContextDescription
previousOutput from previous node
triggerTrigger node data
contextWorkflow context
secretsStored secrets
envEnvironment 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

StatusDescription
queuedWaiting to start
runningCurrently executing
completeFinished successfully
erroredFailed with error
terminatedManually 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.

Released under the MIT License.