Node Types

Complete reference for all available workflow nodes.

Flow Control

▶️

Start

start

Entry point for the workflow. Defines input variables.

Outputs

  • input
  • variables

Configuration

  • Variable definitions
  • Input schema
📤

Output

output

Terminal node that returns the workflow result.

Inputs

  • data

Configuration

  • Output mapping
🔀

Condition

condition

Branch execution based on a condition.

Inputs

  • data

Outputs

  • true
  • false

Configuration

  • Condition expression (JavaScript)
🔄

Loop

loop

Iterate over an array, processing each item.

Inputs

  • array

Outputs

  • item
  • index
  • done

Configuration

  • Concurrency limit
  • Break condition

Parallel

parallel

Execute multiple branches simultaneously.

Inputs

  • trigger

Outputs

  • branch1
  • branch2
  • ...

Configuration

  • Number of branches
🔗

Merge

merge

Wait for multiple branches and combine results.

Inputs

  • input1
  • input2
  • ...

Outputs

  • merged

Configuration

  • Merge strategy (all/any)

AI Models

🤖

LLM

llm

Call a language model (GPT-4, Claude, etc.).

Inputs

  • prompt
  • context

Outputs

  • response
  • usage

Configuration

  • Model
  • Temperature
  • Max tokens
  • System prompt
🎨

Image Generation

image-gen

Generate images from text prompts.

Inputs

  • prompt

Outputs

  • image_url
  • revised_prompt

Configuration

  • Model (DALL-E 3, Flux, SD3)
  • Size
  • Quality
🔢

Embeddings

embeddings

Convert text to vector embeddings.

Inputs

  • text

Outputs

  • embedding

Configuration

  • Model
  • Dimensions
👁️

Vision

vision

Analyze images with vision models.

Inputs

  • image
  • prompt

Outputs

  • analysis

Configuration

  • Model
  • Detail level

Data

📝

Prompt Template

prompt-template

Build prompts with variable substitution.

Inputs

  • variables

Outputs

  • prompt

Configuration

  • Template string
  • Variable mapping
🔍

RAG Query

rag-query

Search your RAG knowledge base.

Inputs

  • query

Outputs

  • results
  • context

Configuration

  • RAG instance
  • Top K
  • Threshold
🔧

JSON Transform

json-transform

Transform data with JSONata or JMESPath.

Inputs

  • data

Outputs

  • transformed

Configuration

  • Expression
  • Language (JSONata/JMESPath)
📦

Variable

variable

Store and retrieve values during execution.

Inputs

  • value

Outputs

  • stored

Configuration

  • Variable name
  • Scope (local/global)

Integrations

🌐

HTTP Request

http-request

Make HTTP requests to external APIs.

Inputs

  • body
  • headers

Outputs

  • response
  • status

Configuration

  • URL
  • Method
  • Auth type
  • Timeout
🪝

Webhook

webhook-trigger

Trigger workflow from external webhook.

Outputs

  • payload
  • headers

Configuration

  • Path
  • Method
  • Auth
🗄️

Database Query

database

Query databases (PostgreSQL, MySQL, etc.).

Inputs

  • query
  • params

Outputs

  • rows

Configuration

  • Connection
  • Query template

Code

📜

JavaScript

javascript

Run JavaScript code in a sandboxed environment.

Inputs

  • data

Outputs

  • result

Configuration

  • Code
  • Timeout
🐍

Python

python

Run Python code in a sandboxed environment.

Inputs

  • data

Outputs

  • result

Configuration

  • Code
  • Packages
  • Timeout

LLM Node Configuration

The LLM node is the most commonly used node. Here's a detailed look at its configuration:

json
{
  "type": "llm",
  "config": {
    "model": "gpt-4o",
    "system_prompt": "You are a helpful assistant...",
    "temperature": 0.7,
    "max_tokens": 1000,
    "response_format": { "type": "json_object" },
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "search_database",
          "description": "Search the product database",
          "parameters": { ... }
        }
      }
    ]
  },
  "inputs": {
    "prompt": "{{input.message}}",
    "context": "{{rag_node.results}}"
  }
}

Condition Expressions

Condition nodes use JavaScript expressions that return a boolean:

JavaScript
// Simple comparison
data.sentiment === "positive"

// Numeric comparison
data.score > 0.8

// Multiple conditions
data.category === "support" && data.priority === "high"

// Array operations
data.tags.includes("urgent")

// Regex matching
/^error/i.test(data.message)

// Object checking
data.user?.isPremium === true

Variable References

Reference data from other nodes using Mustache-style syntax:

# Input from start node
{{input.user_message}}
# Output from a named node
{{llm_node.response}}
# Nested property
{{api_call.data.results[0].title}}
# Global variable
{{globals.api_key}}

Next Steps