Use Docker to install, update, and run n8n quickly. Adjust volumes, environment variables, and ports as needed.
Use Docker to install, update, and run n8n quickly. Adjust volumes, environment variables, and ports as needed.
A selection of default shortcuts you can use while editing workflows in n8n:
Category | Detail | Shortcut / Gesture |
---|---|---|
Workflow Control | Create New Workflow | Ctrl + Alt + N |
Open Workflow | Ctrl + O | |
Save Current Workflow | Ctrl + S | |
Undo | Ctrl + Z | |
Redo | Ctrl + Shift + Z | |
Run Workflow | Ctrl + Enter | |
Stop Workflow | Alt + S | |
Canvas Zoom | Zoom In | + |
Zoom Out | - | |
Reset Zoom | 0 | |
Fit Workflow to View | 1 | |
Zoom In/Out | Ctrl + Mouse Wheel | |
Canvas Navigation | Move Node (View) | Ctrl + Left Mouse + Drag |
Move Node (View) | Middle Mouse + Drag | |
Move Node (View) | Space + Drag | |
Move Node (View) | Two Fingers (Touch) | |
Canvas Nodes | Select All Nodes | Ctrl + A |
Copy Node(s) | Ctrl + C | |
Paste Node(s) | Ctrl + V | |
Delete Node(s) | Delete | |
Disable / Enable Node | Ctrl + K / Ctrl + E |
A Trigger node is the entry point to a workflow, defining when and how a workflow should start.
Common flow: Trigger Node → transform/validate data → next Node(s) → final action
Type | Description |
---|---|
Manual Trigger | Click “Execute Workflow” in n8n UI to run workflow immediately |
Schedule Trigger | Define CRON expression or time intervals for auto runs |
Webhook Trigger | Waits for an HTTP request, runs with the request’s data |
**Expressions** let you dynamically set or transform values within n8n. Some sample expressions:
Type | Expression | Description |
---|---|---|
Basic | {{ $json.field }} |
Access field from the incoming JSON data |
Specific Node | {{ $node["NodeName"].json["value"] }} |
Access data from a different node’s output |
Ternary | {{ $json["count"] > 10 ? "High" : "Low" }} |
Conditional logic in-line |
Date | {{ new Date().toISOString() }} |
Generate an ISO timestamp |
Built-ins | $json , $binary , $itemIndex , etc. |
Special references in n8n (environment, node meta, etc.) |
Common nodes that ship with n8n:
Category | Node Name | Description |
---|---|---|
Trigger Node | Manual, Schedule, Webhook... | Start or schedule workflow execution |
Core Node | Function | Run custom JS code to manipulate data |
Core Node | HTTP Request | Make REST or API calls |
Data Transform | Edit Fields | Add/modify fields in incoming data |
Data Transform | Filter | Remove items that don’t meet certain conditions |
Data Transform | Merge | Combine data from two different sources |
Data Transform | Split In Batches | Chunk incoming items into smaller batches |
File Operations | Read Binary File | Load file data as binary |
File Operations | Write Binary File | Write binary data to disk |
Utility | Stop And Error | Intentionally stop the workflow or throw an error |
The AI Agent node (or custom node) integrates Large Language Models or other AI services into your workflow. Possible uses:
Flow example: Webhook → AI Agent → Memory Node → Output
OpenAI, Cohere, or custom endpoints are feasible.
HTTP Request Node: Used to call external REST APIs. You can also import a cURL command to auto‐populate the fields.
After pasting the cURL, click “Parse to HTTP Request” in n8n to automatically fill in method, URL, headers, and body.
Common settings and error handling options in many nodes:
Setting | Description |
---|---|
Always Output Data | Outputs an empty item if no data is found. Helpful, but can break loops or filters. |
Execute Once | Node only processes the first incoming item, ignoring others. |
Retry on Fail | Node automatically retries on error (API timeouts, etc.). |
Error Handling: Stop Workflow | Entire workflow stops immediately if this node errors. |
Error Handling: Continue | Ignores errors and continues the workflow with the last valid data. |
Error Handling: Pass Error Data | Sends error details on a separate error output, letting the workflow proceed. |
Node Notes | Adds a note or comment visible in the workflow for documentation. |
This is a sample Mermaid diagram showing a simple n8n workflow flowchart.
n8n has a built‐in credentials manager that lets you securely store and re‐use your authentication details. Supported credential types include:
Once configured, you can select these credentials in your nodes. Example:
For more details, see n8n Docs: Credentials.
For complex workflows, n8n provides robust debugging features:
Example debugging flow might send error details to Slack or email you logs. Combine this with the “Stop on Error” or “Continue on Error” settings, depending on your needs.
The Execute Workflow node can call another workflow (a “sub‐workflow”) for reusability and modular design.
Tip: Keep your sub‐workflows small and dedicated to one function, so they’re easy to maintain.
When self‐hosting, ensure your instance is secure:
N8N_BASIC_AUTH_ACTIVE=true
plus username/password variables
N8N_ENCRYPTION_KEY
for your environment
The n8n community is active and growing. Check out:
Community contributed nodes and examples can often be found on GitHub or in the forum. Keep an eye on the n8n blog for release notes and new features.
Here are three example workflows using key n8n core nodes. These diagrams are generated via Mermaid.js. Make sure to avoid HTML tags in your labels to prevent syntax errors.
Runs on a time‐based trigger, modifies data in a Function node, and sends it via HTTP Request.
A webhook receives incoming data, then a Filter node checks conditions. If it passes, data merges and eventually is sent via Email.
Splits data into batches, processes each with different HTTP calls, merges them, and applies a Function node for final transformation.
Below are some useful hints and tips to help you master n8n:
$json
, $node
, $env
, and others.Execute Workflow
node.SplitInBatches
node for processing large data sets.This section explains how data is transformed within an n8n workflow using core nodes. In many workflows, raw data is received from an external source, transformed, filtered, and merged before being delivered to the final destination.
The following Mermaid diagram illustrates a workflow that demonstrates a data transformation process:
In this workflow:
A receives the data. B preps the data structure.
C applies custom transformations; for example, converting date formats or computing new fields.
D then filters the data based on your conditions. If the data passes, it is merged and sent to F;
otherwise, the flow is stopped at G.
This workflow demonstrates a common pattern in n8n where data is first retrieved from a database, then processed with a replace function, and finally looped for further processing.
The following Mermaid diagram illustrates this workflow:
Workflow Explanation:
A initiates the workflow (e.g., via a webhook or schedule). Then, B performs a lookup in your database
for related data. The retrieved data is passed to a Function Node (C) where a replace operation occurs (e.g., using regular expressions or simple string replacements). The result is split into individual records by the SplitInBatches Node (D),
allowing you to process each record in a loop. Finally, each record is further transformed or enriched at E, and the output is sent to the final destination at F.
This section explains how n8n triggers work and how workflows respond to HTTP requests using webhooks. n8n supports several trigger types including manual, scheduled, and webhook triggers.
The following Mermaid diagram illustrates a typical webhook workflow where a webhook triggers the workflow, a Function node validates the incoming payload, and an HTTP Response is returned based on the validation result.
In this example, when the Webhook Trigger receives data, the Function Node checks the payload. Depending on whether the data is valid or not, the workflow returns a 200 OK or 400 Bad Request response.
The following software components can help build a robust environment around n8n. They manage server processes, provide reverse proxy services, secure connections, and enhance development, multimedia, and security capabilities.
Icon | Software | Description |
---|---|---|
Node.js | JavaScript runtime environment for running server-side code—essential for n8n and other backend processes. | |
Python 3 | A versatile programming language for scripting, data science, and automation, complementing n8n for custom scripts or AI/ML workflows. | |
Nginx | High-performance web server and reverse proxy to efficiently manage HTTP traffic and provide load-balancing. | |
Caddy | A modern web server with automatic HTTPS using Let's Encrypt, offering simpler configuration compared to traditional servers. | |
Certbot | A tool for obtaining and renewing SSL/TLS certificates from Let's Encrypt, ensuring secure connections. | |
PM2 | Production process manager for Node.js applications, ensuring reliable service and automatic restarts on failure. | |
Docker | Containerisation platform that simplifies deployment and scaling by packaging your services into portable containers. | |
OLLAMA | An open-source local LLM runner enabling offline use of AI models, ideal for privacy-focused or air-gapped environments. | |
Git | A distributed version control system to efficiently manage code changes and collaborate on workflow developments. | |
PostgreSQL | A robust open-source relational database for managing persistent data, with alternatives like MySQL or MongoDB available. | |
Redis | An in-memory data store used as a cache or message broker, enhancing performance with fast data retrieval. | |
FFmpeg | A powerful multimedia framework to decode, encode, transcode, and stream audio/video files—useful for processing media in workflows. | |
ImageMagick | An extensive image processing tool for creating, editing, and composing bitmap images, ideal for dynamic image transformations. | |
Vue.js | A progressive JavaScript framework for building interactive user interfaces, perfect for developing custom dashboards or control panels. | |
n8n Community Nodes | Custom nodes contributed by the community that extend n8n's native functionality, providing integrations and features not available out of the box. | |
Cockpit | A web-based interface to manage GNU/Linux servers, monitor performance, and handle storage/networking tasks easily via a graphical dashboard. | |
Whazu Security | A security monitoring solution designed to provide threat detection, integrity monitoring, and incident response, ensuring your infrastructure remains secure. |
Use this guide to plan and gauge your deployment environments. The table below outlines recommended server specifications for different stages: Prototype, Test, and Production.
Environment | CPU | RAM | Storage | Additional Features |
---|---|---|---|---|
Prototype | 1-2 Cores | 2-4 GB | 20-50 GB SSD | Basic logging, minimal load |
Test | 2-4 Cores | 4-8 GB | 50-100 GB SSD |
|
Production | 4+ Cores | 8-16+ GB | 100+ GB SSD / NVMe |
|