Getting Started with n8n
This guide will walk you through installing n8n, understanding the interface, and creating your first workflow. By the end, you'll have a working n8n instance and a functional automation.
Table of Contents
- Installation Options
- First Launch
- Understanding the Interface
- Your First Workflow
- Working with Data
- Testing and Debugging
- Next Steps
Installation Options
Option 1: Docker (Recommended for Quick Start)
Prerequisites:
- Docker installed on your machine
- 2GB RAM minimum
Basic Installation:
With Data Persistence:
With Docker Compose (Production):
Option 2: npm (For Development)
Prerequisites:
- Node.js 16.x or higher
- npm or pnpm
Option 3: Desktop App
Download from n8n.io/download for:
- Windows
- macOS
- Linux
Option 4: n8n Cloud
Sign up at n8n.io/cloud for:
- Managed hosting
- Automatic updates
- Scaling
- Team features
First Launch
-
Access n8n:
- Open browser to
http://localhost:5678 - You'll see the n8n welcome screen
- Open browser to
-
Set Up Your Account:
- Create owner account credentials
- Set up basic settings
- Choose data collection preferences
-
Initial Configuration:
Understanding the Interface
Main Components
1. Workflow Canvas
The central area where you build workflows by adding and connecting nodes.
2. Node Panel (Left Sidebar)
- Trigger Nodes: Start workflows (schedule, webhook, manual)
- Action Nodes: Perform operations (HTTP, database, apps)
- All Nodes: Search all available nodes
3. Workflow Controls (Top Bar)
- Execute Workflow: Run manually
- Save: Save workflow
- Settings: Workflow configuration
- Active: Toggle workflow on/off
4. Node Properties (Right Sidebar)
Configure selected node:
- Parameters
- Credentials
- Settings
- Notes
5. Execution Panel (Bottom)
View execution results:
- Input data
- Output data
- Execution time
- Error messages
Navigation Shortcuts
| Action | Shortcut |
|---|---|
| Execute workflow | Ctrl/Cmd + Enter |
| Save workflow | Ctrl/Cmd + S |
| Delete node | Delete/Backspace |
| Duplicate node | Ctrl/Cmd + D |
| Search nodes | Ctrl/Cmd + K |
| Zoom in | Ctrl/Cmd + |
| Zoom out | Ctrl/Cmd - |
Your First Workflow
Let's build a simple workflow that fetches data from an API and processes it.
Example: Daily Weather Report
Goal: Get weather data every morning and send to Slack/email.
Step 1: Add a Trigger Node
- Click on canvas
- Select "Schedule Trigger"
- Configure:
- Trigger Interval: Days
- Days Between Triggers: 1
- Trigger Time: 08:00
Step 2: Add HTTP Request Node
- Click "+" after Schedule node
- Search for "HTTP Request"
- Configure:
Step 3: Add Code Node for Formatting
- Add "Code" node
- Use JavaScript to format the data:
Step 4: Test the Workflow
- Click "Execute Workflow" button
- Check each node's output in the execution panel
- Verify data flows correctly
Step 5: Save and Activate
- Click "Save" and name your workflow
- Toggle "Active" to enable scheduled execution
Working with Data
Understanding Data Flow
n8n passes data between nodes as items (array of JSON objects).
Example data structure:
Accessing Data with Expressions
Current node input:
Specific node output:
Current item index:
All items:
Environment variables:
Date/time functions:
Common Data Operations
Filter Items (IF Node)
Transform Data (Set Node)
Map fields to new structure:
newField:{{ $json.oldField }}fullName:{{ $json.firstName }} {{ $json.lastName }}isActive:{{ $json.status === 'active' }}
Aggregate Data (Aggregate Node)
- Count items
- Sum values
- Group by field
Testing and Debugging
Manual Testing
- Execute Workflow: Click "Execute Workflow" button
- Execute Node: Click "Execute Node" on individual nodes
- Use Test Data: Create sample input in Code nodes
Inspect Data
- Click on any node after execution
- View Input and Output tabs
- Inspect JSON structure
- Copy data for testing
Common Issues
Issue: "No input data"
Solution: Ensure previous node executed successfully
Issue: "Expression error"
Solution:
- Check syntax:
{{ $json.field }} - Verify field exists in data
- Use JSON view to see available fields
Issue: Credentials not working
Solution:
- Re-create credential
- Check API key permissions
- Test in standalone HTTP client first
Issue: Workflow not triggering
Solution:
- Ensure workflow is "Active"
- Check trigger configuration
- Review execution logs
Execution History
- Go to Executions (left sidebar)
- View all workflow runs
- Click to see detailed execution
- Debug failed runs
Working with Credentials
Adding Credentials
- Go to Credentials (left sidebar)
- Click "Create New"
- Select credential type
- Fill in required fields:
- API keys
- OAuth2 (automatic flow)
- Username/password
- Custom auth headers
Using Credentials in Nodes
- Select node requiring authentication
- Click "Credential to connect with"
- Choose existing or create new
- Test connection
Best Practices
- Never hardcode secrets in workflows
- Use environment variables for sensitive data
- Separate credentials for dev/staging/prod
- Regular rotation of API keys
Environment Variables
Setting Variables
Docker:
Docker Compose:
Local:
Using in Workflows
Workflow Settings
Access via Workflow > Settings:
- Error Workflow: Workflow to run on errors
- Timezone: Workflow execution timezone
- Save Data: Success/error execution data retention
- Timeout: Maximum execution time
- Tags: Organize workflows
Next Steps
Recommended Learning Path
- ✅ Complete this getting started guide
- 📖 Read Best Practices
- 🎯 Explore Use Cases for your industry
- 🎓 Complete Tutorial 1: First n8n Workflow
- 🚀 Build your own automation project
- 🎓 Complete Tutorial 2: Data Pipeline Automation
Key Concepts to Master
- Node connections and data flow
- Expressions for dynamic data
- Error handling strategies
- Credentials management
- Webhook triggers
- Database operations
- Code nodes for custom logic
Common Next Projects
- Slack notification workflows
- Database sync automations
- API integration pipelines
- Scheduled reporting workflows
- Event-driven webhooks
Quick Reference
Essential Nodes
| Node | Purpose | Common Use |
|---|---|---|
| Schedule Trigger | Cron scheduling | Daily/weekly tasks |
| Webhook | HTTP endpoint | Receive external events |
| HTTP Request | API calls | Fetch/send data |
| Set | Transform data | Map fields |
| IF | Conditional logic | Branch workflows |
| Code | Custom JS/Python | Complex transformations |
| PostgreSQL | Database ops | Query/insert data |
| Send emails | Notifications | |
| Slack | Slack integration | Team notifications |
Helpful Resources
Troubleshooting
Can't Access UI
Performance Issues
- Reduce execution data retention
- Use Split In Batches for large datasets
- Optimize database queries
- Increase Docker memory limit
Getting Help
- Check documentation
- Search community forum
- Review GitHub issues
- Ask in community Slack/Discord
Ready to build real workflows? Head to Tutorial 1 for a hands-on project!
Need help with production deployment? Check out Best Practices for scaling and security recommendations.