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