Workflow Structure

Workflows are stored as JSON with nodes and edges. See Node Types for available node types and Expression DSL for expression syntax in data fields.

Workflows are stored as JSON with nodes and edges. See Node Types for available node types and Expression DSL for expression syntax in data fields.

Workflow Object

{
  "id": "uuid",
  "name": "My Workflow",
  "description": "Optional description",
  "nodes": [],
  "edges": [],
  "auth_type": "anonymous",
  "allow_anonymous": true
}

Node Object

{
  "id": "node-uuid",
  "type": "llm",
  "position": { "x": 100, "y": 200 },
  "data": {
    "label": "llm",
    "model": "gpt-4",
    "userMessage": "$input.text"
  }
}

Agent node data (persistent memory)

Agent nodes support an optional knowledge graph per canvas node:

FieldTypeDescription
persistentMemoryEnabledbooleanWhen true, load stored graph into the system prompt and merge new facts after successful runs
memorySharesarray (optional)Grants other agents access to this node’s memory graph (peerWorkflowId, peerCanvasNodeId, permission: read | write). See Agent Persistent Memory.

Example:

{
  "id": "agent-main",
  "type": "agent",
  "position": { "x": 200, "y": 120 },
  "data": {
    "label": "assistant",
    "persistentMemoryEnabled": true,
    "credentialId": "uuid",
    "model": "gpt-4o",
    "userMessage": "$input.text",
    "memoryShares": []
  }
}

See Agent Persistent Memory for API paths, editor behavior, and extraction semantics.

Edge Object

{
  "id": "edge-uuid",
  "source": "input-node-id",
  "target": "llm-node-id",
  "sourceHandle": null,
  "targetHandle": null
}

Node Types

Common type values: Input (textInput), Cron, WebSocket Trigger (websocketTrigger), LLM, Agent, Condition, Switch, Output, JSON output mapper (jsonOutputMapper), Wait, HTTP, WebSocket Send (websocketSend), Merge, Set, Variable, Loop, and more. Full list: Node Types. Nodes in the same execution level run in parallel.

Position

Each node has position.x and position.y for canvas layout. The editor uses Vue Flow for rendering.