> ## Documentation Index
> Fetch the complete documentation index at: https://docs.opencompany.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Node Overview

> Understanding OpenCompany nodes and how they connect

# Node Overview

OpenCompany uses a visual node-based system for building workflows. Each node performs a specific function and passes data to connected nodes.

## Node Categories

The node palette groups plugins by category. The exact node count grows as new plugins ship, so use the palette in the app for the live list.

| Category | Description |
| - | - |
| [AI Chat Models](/nodes/ai-models) | OpenAI, Anthropic, Gemini, OpenRouter, xAI, Groq, Cerebras, DeepSeek, Kimi, Mistral, Ollama, LM Studio |
| [AI Agents and Memory](/nodes/ai-agent) | AI Agent, Chat Agent (Zeenie), Simple Memory |
| Specialized Agents | Android, Coding, Web, Task, Social, Travel, Tool, Productivity, Payments, Consumer, Autonomous, Orchestrator, AI Employee, RLM, Claude Code, Codex |
| [AI Skills](/nodes/skills) | Master Skill aggregator (built-in skill library) |
| [AI Tools](/nodes/tools) | Calculator, Time, DuckDuckGo, Task Manager, Write Todos |
| [Search](/nodes/search) | Brave, DuckDuckGo, Serper, Perplexity (dual-purpose) |
| [Google Workspace](/nodes/google-workspace) | Gmail, Gmail Receive, Calendar, Drive, Sheets, Tasks, Contacts |
| [WhatsApp](/nodes/whatsapp) | Send, Receive, DB query (dual-purpose) |
| [Twitter/X](/nodes/messaging) | Send, Search, User, Receive (dual-purpose) |
| [Telegram](/nodes/messaging) | Send, Receive |
| [Social (unified)](/nodes/messaging) | Social Send, Social Receive |
| [Email](/nodes/email) | Send, Read, Receive (IMAP/SMTP, dual-purpose) |
| [Stripe](/nodes/stripe) | Stripe action (CLI pass-through), Stripe receive (webhook trigger) |
| [Android](/nodes/android) | Device control and monitoring (16 service nodes) |
| Location | Google Maps (create, geocode, nearby) |
| [Code Executors](/nodes/code) | Python, Monty (sandboxed Python), JavaScript, TypeScript (dual-purpose) |
| [Filesystem and Shell](/nodes/filesystem) | File read, file modify, shell, fs search, process manager |
| [Browser](/nodes/browser) | Browser and Browser Harness automation (dual-purpose) |
| [Webhooks and Utilities](/nodes/webhooks) | HTTP, webhook trigger/response, chat trigger, console, team monitor |
| [Proxy](/nodes/scraping) | Residential proxy request, config, status |
| [Documents](/nodes/documents) | RAG pipeline: scrape, parse, embed, store |
| [Web Scraping](/nodes/scraping) | Apify actor, Crawlee scraper |
| Chat | Chat send, chat history |
| [Schedulers](/nodes/schedulers) | Timer, cron scheduler |
| Workflow triggers | Start, task trigger |

## Node Shapes

Different shapes indicate different node types:

| Shape | Type | Description |
| - | - | - |
| Diamond | Trigger | Starts a workflow (no input handle) |
| Square | Action | Performs operations |
| Circle | Config | Provides configuration to other nodes |

## Handles

Handles are connection points on nodes:

### Input Handles (Left Side)

* **Main Input** - Receives data from upstream nodes
* **Config Inputs** - Diamond shapes for memory, model, etc.

### Output Handles (Right Side)

* **Main Output** - Sends data to downstream nodes

## Data Flow

Data flows from left to right through connections:

```
[Trigger] --> [Process] --> [Action] --> [Response]
```

### Template Variables

Access upstream data using template syntax:

```
{{nodeName.fieldName}}
```

**Examples:**

```
{{webhookTrigger.body}}           // Webhook request body
{{aiAgent.response}}              // AI Agent's answer
{{batteryMonitor.level}}          // Battery percentage
{{whatsappReceive.text}}          // Message content
```

### Nested Fields

Access nested objects with dot notation:

```
{{whatsappReceive.group_info.sender_name}}
{{webhookTrigger.body.user.email}}
```

## Node Configuration

Click a node to open its parameter panel — the full editing how-to (adding, connecting, renaming, copying, deleting, shortcuts, palette modes) lives on [The canvas](/canvas).

### Parameter Types

| Type | Description |
| - | - |
| Text | String input |
| Number | Numeric input |
| Boolean | Toggle on/off |
| Options | Dropdown selection |
| Slider | Range selection |
| Code | Multi-line code editor |
| JSON | JSON object input |

### Dynamic Options

Some parameters load options from the backend:

* Device lists (Android)
* AI models (based on API key)
* Groups and contacts (WhatsApp)

## Node States

During execution, nodes show their state:

| State | Indicator | Description |
| - | - | - |
| Idle | Default | Not running |
| Waiting | Cyan | Trigger waiting for event |
| Running | Purple glow | Currently executing |
| Completed | Green | Finished successfully |
| Error | Red | Failed with error |

## Special Node Types

### Trigger Nodes

* No input handle
* Start workflow execution
* Wait for external events

**Examples:** Webhook Trigger, WhatsApp Receive, Cron Scheduler

### Config Nodes

* Connect to special config handles (diamonds)
* Provide settings to parent nodes
* Don't execute independently

**Examples:** Simple Memory, AI Models

## Best Practices

<Tip>
  Name your nodes descriptively. "Process Order" is better than "AI Agent 1".
</Tip>

<Tip>
  Test individual nodes with the **Run** button before deploying full workflows.
</Tip>

<Warning>
  Config nodes (Memory, Models) connect to diamond handles, not main inputs.
</Warning>

## Node Reference

<CardGroup cols={2}>
  <Card title="AI Models" icon="brain" href="/nodes/ai-models">
    12 providers: OpenAI, Claude, Gemini, OpenRouter, xAI, Groq, Cerebras, DeepSeek, Kimi, Mistral, Ollama, LM Studio
  </Card>

  <Card title="AI Agents" icon="robot" href="/nodes/ai-agent">
    AI Agent, Chat Agent (Zeenie), and 16 specialized agents
  </Card>

  <Card title="AI Skills" icon="wand-magic-sparkles" href="/nodes/skills">
    Master Skill aggregator with a built-in skill library
  </Card>

  <Card title="AI Tools" icon="screwdriver-wrench" href="/nodes/tools">
    Calculator, time, search, Android toolkit
  </Card>

  <Card title="WhatsApp" icon="message" href="/nodes/whatsapp">
    Send, receive, and query messages
  </Card>

  <Card title="Android" icon="mobile" href="/nodes/android">
    16 device control nodes
  </Card>

  <Card title="Documents" icon="file-lines" href="/nodes/documents">
    RAG pipeline: scrape, parse, embed, store
  </Card>

  <Card title="Webhooks" icon="webhook" href="/nodes/webhooks">
    HTTP, webhooks, and utilities
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.