User GuideNode Types

Node Types Reference

NetPad supports a wide variety of node types for building powerful workflows and diagrams. This reference covers all available node types, their capabilities, properties, and use cases.

Basic Shapes

Rectangle

Type: rect
Description: A basic rectangle shape for general diagramming purposes.

Properties:

  • label (string): Display label for the shape
  • width (number): Width of the rectangle
  • height (number): Height of the rectangle

Ellipse

Type: ellipse
Description: An ellipse shape for rounded visual elements.

Properties:

  • label (string): Display label for the shape
  • rx (number): Horizontal radius
  • ry (number): Vertical radius

Circle

Type: circle
Description: A perfect circle shape.

Properties:

  • label (string): Display label for the shape
  • r (number): Radius of the circle

Diamond

Type: diamond
Description: A diamond shape, typically used for decision points in flowcharts.

Properties:

  • label (string): Display label for the shape
  • width (number): Width of the diamond
  • height (number): Height of the diamond

Text

Type: text
Description: A simple text label shape for annotations.

Properties:

  • label (string): Display label for the shape
  • text (string): The actual text content
  • width (number): Width of the text area
  • height (number): Height of the text area

Workflow Node Types

Agent Node

Type: agent_node
Description: An autonomous reasoning or orchestration node that can make decisions, plan actions, and coordinate other workflow components.

Key Features:

  • Autonomous decision making with LLM integration
  • Planning mode for complex multi-step operations
  • Reflection hooks for self-evaluation
  • Tool selection and coordination
  • Memory integration for stateful operations

Properties:

  • label (string): Node identifier
  • description (string): Detailed description of the agent’s purpose
  • prompt (string): Primary instruction prompt for the agent
  • systemPrompt (string): System-level context and behavior guidelines
  • provider (select): LLM provider override (OpenAI, Anthropic, Ollama)
  • model (string): Specific model override
  • temperature (number): Response randomness control (0-2)
  • maxTokens (number): Maximum response length (1-4096)
  • agentType (select): Agent implementation type (LLM, Tool, Human)
  • planningMode (boolean): Enable multi-step planning capabilities
  • reflectionHook (boolean): Enable self-evaluation and improvement
  • allowGlobalToolSelection (boolean): Allow access to tools not directly connected

Ports:

  • Input: Context In, Trigger In, Feedback In
  • Output: Tool Out, Memory Out, Success, Failure

Chat Node

Type: chat_node
Description: A node for chat-based interactions with language models.

Properties:

  • label (string): Node identifier
  • description (string): Node description
  • system (string): System prompt for context setting
  • prompt (string): User prompt or query
  • temperature (number): Response randomness (0-2)
  • maxTokens (number): Maximum response length (1-4096)
  • provider (string): Optional provider override
  • model (string): Optional model override

Ports:

  • Input: Default
  • Output: Chat Out

Tool Node

Type: tool_node
Description: A node that executes tools, scripts, or functions within the workflow.

Properties:

  • label (string): Node identifier
  • description (string): Tool description
  • toolType (select): Built-in or Custom tool
  • code (string): Tool implementation code

Ports:

  • Input: Default
  • Output: Result, Error

Memory Node

Type: memory_node
Description: A node for storing and retrieving workflow state and context.

Key Features:

  • Multiple storage backends (in-memory, MongoDB)
  • Thread/session scoping
  • Persistence control
  • Checkpoint capabilities for workflow state snapshots

Properties:

  • label (string): Node identifier
  • description (string): Memory purpose description
  • memoryType (select): Storage type (In-Memory, MongoDB)
  • persistence (boolean): Enable persistent storage
  • db (string): Database name for MongoDB storage
  • collection (string): Collection name for MongoDB storage
  • threadId (string): Session/thread identifier
  • checkpoint (boolean): Create state snapshot
  • contents (string): Manual memory contents for debugging

Ports:

  • Input: Input 1
  • Output: Output 1

Code Node

Type: code_node
Description: A node for executing JavaScript code snippets within workflows.

Properties:

  • label (string): Node identifier
  • code (string): JavaScript code to execute
  • description (string): Code purpose description

Ports:

  • Input: Default
  • Output: Result, Error

API Node

Type: api_node
Description: A node for making HTTP API requests to external services.

Properties:

  • label (string): Node identifier
  • url (string): API endpoint URL
  • method (select): HTTP method (GET, POST, PUT, DELETE)
  • headers (string): Request headers in JSON format
  • body (string): Request body in JSON format

Ports:

  • Input: Default
  • Output: Response, Error

Data Processing Nodes

MongoDB Node

Type: mongodb_node
Description: A node for querying MongoDB databases.

Properties:

  • label (string): Node identifier
  • database (string): Target database name
  • collection (string): Target collection name
  • query (string): MongoDB query in JSON format
  • projection (string): Field projection in JSON format

Ports:

  • Input: Default
  • Output: Result, Error

MongoDB Vector Search Node

Type: mongodb_vectorsearch_node
Description: A node for performing vector similarity searches using MongoDB Atlas Vector Search.

Key Features:

  • Semantic search capabilities
  • Multiple embedding model support
  • Configurable result ranking
  • Field-specific result extraction

Properties:

  • label (string): Node identifier
  • db (string): Database name
  • collection (string): Collection name
  • index (string): Atlas Search index name
  • embeddingModel (string): Embedding model (e.g., openai-ada-002)
  • queryText (string): Text to search for (supports {{context}} variables)
  • topK (number): Number of results to return
  • returnField (string): Specific fields to return

Ports:

  • Input: Default
  • Output: Result, Error

Web Scraper Node

Type: webscraper_node
Description: A node for extracting data from web pages.

Key Features:

  • Intelligent selector detection
  • Multiple output formats
  • AI-powered content summarization
  • Retry logic and timeout handling
  • Header customization

Properties:

  • label (string): Node identifier
  • url (string): Target URL (supports {{variable}} substitution)
  • selector (string): CSS selector for content extraction
  • resultFormat (select): Output format (Text, Table, JSON, Auto-Detect)
  • autoSelector (boolean): AI-powered selector detection
  • summarize (boolean): LLM content summarization
  • maxRetries (number): Retry attempts (1-5)
  • timeoutMs (number): Request timeout in milliseconds
  • headers (string): Custom request headers
  • chainSelectors (string): Multi-step selector chain

Ports:

  • Input: Default
  • Output: Scraped Data, Error

Content and Communication Nodes

Text Node

Type: text_node
Description: A node for text processing and manipulation.

Properties:

  • label (string): Node identifier
  • description (string): Node description
  • text (string): Text content to process

Ports:

  • Input: Default
  • Output: Text Out

Markdown Node

Type: markdown_node
Description: A node for rendering and processing Markdown content.

Properties:

  • label (string): Node identifier
  • markdown (string): Markdown content

Ports:

  • Input: Default
  • Output: Markdown Out

Table Node

Type: table_node
Description: A node for displaying and formatting tabular data.

Properties:

  • data (string): Table data as JSON array
  • description (string): Table description
  • tableFormat (select): Output format (Markdown, HTML, CSV, Plain Text)

Ports:

  • Input: Default
  • Output: Table Out

Email Node

Type: email_node
Description: A node for sending emails within workflows.

Properties:

  • label (string): Node identifier
  • description (string): Email purpose
  • email (string): Recipient email address
  • subject (string): Email subject line
  • body (string): Email body content

Ports:

  • Input: Default
  • Output: Sent, Error

Control Flow Nodes

Terminator Node

Type: terminator_node
Description: Marks the start or end points of a workflow.

Properties:

  • label (string): Node identifier
  • subtype (select): Start or End
  • width (number): Visual width
  • height (number): Visual height

Ports:

  • Input: Input 1 (hidden)
  • Output: Output 1 (hidden)

If Condition

Type: if_condition
Description: A node for conditional branching logic.

Properties:

  • label (string): Node identifier
  • condition (string): Boolean condition to evaluate

Ports:

  • Input: Default
  • Output: True, False

Switch Node

Type: switch_node
Description: A node for conditional branching with multiple paths.

Properties:

  • label (string): Node identifier
  • condition (string): Switch condition

Ports:

  • Input: Default
  • Output: True, False

Loop Node

Type: loop_node
Description: A node for iterative processing.

Properties:

  • label (string): Node identifier
  • iterations (number): Number of loop iterations

Ports:

  • Input: Default
  • Output: Loop Out

Delay Node

Type: delay_node
Description: Introduces timing delays in workflow execution.

Properties:

  • label (string): Node identifier
  • description (string): Delay purpose
  • delay (number): Delay duration in milliseconds (0-10000)

Ports:

  • Input: Default
  • Output: Delayed

Advanced Analysis Nodes

Code Analysis Node

Type: code_analysis_node
Description: A node for analyzing code quality, security, and performance.

Key Features:

  • Multiple analysis types (lint, typecheck, security, performance, complexity)
  • Language-specific analysis
  • Custom analysis prompts
  • Documentation generation

Properties:

  • label (string): Node identifier
  • code (string): Code to analyze
  • description (string): Analysis description
  • analysisType (select): Analysis type (Lint, Type Check, Security, Performance, Complexity, Documentation, Refactoring)
  • language (string): Programming language
  • customPrompt (string): Custom analysis instructions

Ports:

  • Input: Default
  • Output: Result, Error

Scan Node

Type: scan_node
Description: A node for scanning directories and file systems.

Properties:

  • label (string): Node identifier
  • path (string): Directory or file path to scan
  • fileTypeFilters (string): File extension filters (comma-separated)
  • config (string): Scan configuration

Ports:

  • Output: Scan Results

Recommendation Node

Type: recommendation_node
Description: A node for generating AI-powered recommendations.

Properties:

  • label (string): Node identifier
  • userGoals (string): User goals and optimization parameters

Ports:

  • Input: Default
  • Output: Recommendations

Patch Node

Type: patch_node
Description: A node for applying code patches and modifications.

Properties:

  • label (string): Node identifier
  • sourceFiles (string): Source files to patch

Ports:

  • Input: Default
  • Output: Patches

Integration Nodes

Webhook Node

Type: webhook_node
Description: A node for handling incoming webhook requests.

Key Features:

  • Auto-generated endpoints
  • Secret-based authentication
  • Multiple HTTP methods
  • Request payload debugging

Properties:

  • label (string): Node identifier
  • method (select): HTTP method (POST, GET, PUT, DELETE, PATCH)
  • path (string): Auto-generated endpoint path (read-only)
  • secret (string): Authentication secret (read-only)
  • enabled (boolean): Enable/disable webhook
  • description (string): Webhook description
  • lastPayload (json): Last received payload for debugging (read-only)

Ports:

  • Input: Default
  • Output: Webhook Out

Task Node

Type: task_node
Description: A node for representing discrete tasks that can be delegated to agents.

Properties:

  • label (string): Task identifier
  • description (string): Task description
  • expected_output (string): Expected task output
  • tools (multiselect): Available tools for the task
  • agent_id (select): Assigned agent node
  • async (boolean): Asynchronous execution
  • variables (object): Task-specific variables

Ports:

  • Input: Default
  • Output: Task Out

Prompt Node

Type: prompt_node
Description: A node that pauses workflow execution to collect user input.

Properties:

  • label (string): Node identifier
  • description (string): Prompt description
  • prompt (string): User prompt message

Ports:

  • Input: Default
  • Output: User Input

Specialized Shapes

Parallelogram

Type: parallelogram
Description: A parallelogram shape, commonly used for input/output operations in flowcharts.

Properties:

  • label (string): Display label
  • width (number): Shape width
  • height (number): Shape height
  • skew (number): Skew angle for the parallelogram

Cylinder

Type: cylinder
Description: A cylinder shape, typically used to represent databases or storage.

Properties:

  • label (string): Display label
  • width (number): Cylinder width
  • height (number): Cylinder height

Border Rectangle

Type: border_rect
Description: A rectangle with enhanced border styling.

Properties:

  • label (string): Display label
  • width (number): Rectangle width
  • height (number): Rectangle height

Icon

Type: icon
Description: A shape for displaying icons in diagrams.

Properties:

  • label (string): Display label
  • iconName (string): Icon identifier
  • size (number): Icon size
  • color (string): Icon color

Pencil

Type: pencil
Description: A minimal freeform drawing shape for sketching and annotations.

Properties:

  • label (string): Display label

Embed

Type: embed
Description: A shape for embedding external content like videos or widgets.

Properties:

  • label (string): Display label
  • url (string): Embed URL

Line

Type: line
Description: A simple line shape for connecting elements and creating flow indicators.

Properties:

  • No configurable properties

Best Practices

Node Connection Patterns

  • Sequential Processing: Connect nodes in linear chains for step-by-step workflows
  • Parallel Processing: Use multiple output connections for concurrent operations
  • Conditional Logic: Use If Condition and Switch nodes for branching workflows
  • Error Handling: Always connect error outputs to appropriate handling nodes

Memory and State Management

  • Use Memory nodes for maintaining state across workflow steps
  • Implement checkpoints at critical workflow points
  • Consider thread/session scoping for multi-user scenarios

LLM Integration

  • Configure appropriate temperature settings for your use case
  • Use system prompts to establish consistent behavior
  • Implement reflection hooks for complex reasoning tasks

Performance Optimization

  • Use appropriate timeout settings for external API calls
  • Implement retry logic for unreliable operations
  • Consider async execution for long-running tasks

This comprehensive reference should help you understand and effectively utilize all available node types in NetPad workflows.