
by Benjamin Wagnern8n for Beginners: Build Your First Automation Workflow
n8n is the open-source automation platform that replaces Zapier and Make at a fraction of the cost. This guide walks you through installation, editor navigation, your first workflow, error handling, and CRM integration.
What Is n8n?
n8n (pronounced "n-eight-n") is a workflow automation platform that connects different applications and services. You build workflows visually by dragging nodes onto a canvas and connecting them -- no coding required for most use cases.
What makes n8n different from other automation tools is its deployment model. You can run n8n in the cloud (hosted by n8n) or self-host it on your own server. Self-hosting means your data never leaves your infrastructure, which matters for GDPR compliance and data-sensitive industries.
n8n offers over 400 built-in integrations (called nodes), supports custom code in JavaScript and Python, and lets you connect to any API via HTTP Request nodes. It also has native support for AI and LLM nodes, making it a natural fit for teams that want to build AI-powered automations.
Key Facts About n8n
- Open source under the Sustainable Use License (source code on GitHub)
- 400+ integrations including Google Workspace, Slack, databases, CRMs, and AI models
- Visual workflow editor with a drag-and-drop canvas
- Self-hostable via Docker, npm, or Kubernetes
- Cloud option for teams that prefer managed hosting
- AI-native with built-in nodes for OpenAI, Anthropic, and local LLMs
n8n Cloud vs. Self-Hosted: Pricing and Trade-Offs
One of the first decisions you will make is whether to use n8n Cloud or self-host. Both options have clear advantages depending on your situation.
n8n Cloud Pricing (as of 2026)
| Plan | Monthly Cost | Workflow Executions | Active Workflows | Key Features |
|---|---|---|---|---|
| Starter | EUR 20 | 2,500 | 5 | Basic support, 1 user |
| Pro | EUR 50 | 10,000 | 15 | Priority support, 5 users, version history |
| Enterprise | Custom | Unlimited | Unlimited | SSO, audit logs, dedicated support |
n8n Cloud is the fastest way to start. No server setup, no maintenance, automatic updates. You are building workflows within minutes of signing up.
Self-Hosted Pricing
| Component | Monthly Cost |
|---|---|
| n8n software | Free (open source) |
| VPS (e.g., Hetzner, DigitalOcean) | EUR 5-20 |
| Domain + SSL (via Let's Encrypt) | Free |
| Maintenance time | 1-2 hours/month |
| Total | EUR 5-20 |
Self-hosting is free in software cost but requires a server and basic DevOps knowledge. The trade-off: unlimited workflow executions, full data control, and the ability to connect to internal systems -- but you handle updates, backups, and monitoring yourself.
When to Choose Which
Choose n8n Cloud if:
- You want to start building immediately without server setup
- Your team does not have DevOps experience
- You need fewer than 10,000 executions per month
- You prefer managed hosting with automatic updates
Choose self-hosting if:
- Data must stay on your infrastructure (GDPR, healthcare, finance)
- You need unlimited workflow executions
- You want to connect to internal systems behind a firewall
- You have basic Docker/server knowledge or a technical team member
Most beginners start with n8n Cloud and migrate to self-hosting as their usage grows and confidence increases.
n8n vs. Zapier vs. Make: An Honest Comparison
All three platforms solve the same core problem: connecting applications without writing code. But they differ significantly in pricing, flexibility, and data control.
| Feature | n8n | Zapier | Make |
|---|---|---|---|
| Pricing model | Self-host free; Cloud from EUR 20/month | From USD 20/month (limited tasks) | From USD 9/month (limited operations) |
| Task/operation limits | Unlimited on self-hosted | Strict per-plan limits | Strict per-plan limits |
| Self-hosting | Yes (Docker, npm) | No | No |
| Custom code | JavaScript + Python | Limited (Code by Zapier) | Limited |
| AI/LLM nodes | Native (OpenAI, Anthropic, Ollama) | Via plugins | Via modules |
| Data residency | Full control (self-host) | US-hosted | EU option available |
| Open source | Yes | No | No |
| Number of integrations | 400+ | 6,000+ | 1,500+ |
Choose Zapier if you need the widest range of pre-built integrations and do not want to think about infrastructure. Be prepared for costs to scale steeply as volume grows.
Choose Make if you want a visual builder with more granular control than Zapier and moderate pricing. Make's scenario editor is powerful but has a steeper learning curve.
Choose n8n if you want full data control, unlimited executions on self-hosted, AI/LLM integration, or you simply prefer open source. n8n is the strongest choice for technical teams and for anyone who wants to connect CRM automation with native AI integration.
Installing n8n: Three Options
Option 1: n8n Cloud (Fastest Start)
Go to n8n.io, create an account, and you are ready to build workflows. No installation, no server management. The Starter plan costs EUR 20/month and includes 2,500 workflow executions.
This is the recommended option for beginners and for teams that want to evaluate n8n before committing to self-hosting.
Option 2: Self-Host with Docker (Recommended for Production)
If you have a server (a EUR 5/month VPS is sufficient), you can run n8n with a single Docker command:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8nThen open http://localhost:5678 in your browser. For production, add a reverse proxy (Nginx or Caddy), enable HTTPS, and set up persistent storage. The n8n self-hosting guide covers this in detail.
Self-hosting gives you unlimited workflow executions at zero marginal cost, full data control, and the ability to connect to internal systems that are not exposed to the internet.
Option 3: Install via npm
For developers who want to run n8n locally without Docker:
npm install n8n -g
n8n startThis installs n8n globally and starts the server on port 5678. Useful for local development and testing but not recommended for production without additional configuration.
Navigating the n8n Editor UI
Before building your first workflow, take five minutes to understand the editor interface. Knowing where things are saves time and prevents confusion.
The Canvas
The canvas is the main workspace where you build workflows. It is an infinite space where you drag, place, and connect nodes. You can zoom in and out with your scroll wheel and pan by clicking and dragging on empty space.
Key canvas interactions:
- Click a node to open its settings panel on the right
- Drag from a node's output (the dot on the right side) to create a connection to the next node
- Double-click empty space to open the node search panel
- Ctrl/Cmd + click to select multiple nodes
- Ctrl/Cmd + C / V to copy and paste nodes between workflows
The Node Panel
Click the + button or double-click the canvas to open the node search. You can browse by category (Trigger, Action, Flow, etc.) or search by name. Categories you will use most often:
- Trigger nodes: Start a workflow (Webhook, Schedule, App trigger, Manual)
- Action nodes: Do something (Send email, Create CRM contact, Call API)
- Flow nodes: Control logic (If, Switch, Merge, Split, Wait, Loop)
- Code nodes: Run JavaScript or Python for custom transformations
- AI nodes: Connect to OpenAI, Anthropic, or local LLMs
The Execution Panel
After running a workflow (via test or production trigger), the execution panel shows the data flowing through each node. Click any node to see its input and output data. This is the primary debugging tool -- if a node receives unexpected data, you will see it here immediately.
Top Bar Controls
- Test workflow: Runs the workflow once with the current trigger (or with pinned test data)
- Active toggle: Turns the workflow on (production mode) or off
- Execution history: Shows past runs with full input/output data and error logs
- Settings (gear icon): Configure workflow-level settings like error handling, timezone, and execution timeout
Building Your First Workflow: A Mini-Workflow
Here is the simplest possible workflow to learn the core concepts. It takes under 5 minutes.
Goal: Webhook Receives Data, Sends Notification
This mini-workflow has two nodes: a Webhook trigger and a Slack notification. When data hits the webhook URL, a Slack message is sent.
Step 1: Create a new workflow (click "Add workflow" in the top left).
Step 2: The canvas shows a Manual Trigger by default. Delete it and add a Webhook node. n8n generates a unique URL. Copy it -- you will need it for testing.
Step 3: Add a Slack node (or Gmail, Microsoft Teams, or any notification service). Connect it to the Webhook node by dragging from the Webhook's output dot to the Slack node's input dot.
Step 4: Configure the Slack node. Select your Slack workspace (one-time OAuth connection), choose a channel, and write the message. Use n8n expressions to include dynamic data: {{ $json.name }} inserts the "name" field from the webhook payload.
Step 5: Click "Test workflow." n8n enters listening mode. Send a test request to the webhook URL using curl:
curl -X POST https://your-n8n-instance/webhook/xxx \
-H "Content-Type: application/json" \
-d '{"name": "Lisa", "company": "Mueller GmbH"}'If both nodes light up green, it works. Check Slack for the message.
Step 6: Toggle the Active switch. The workflow is now live.
You now understand triggers, nodes, connections, expressions, testing, and activation. Every n8n workflow, no matter how complex, is built from these same building blocks.
Building a Real-World Workflow: Form to Spreadsheet to CRM
Now let us build something practical. This workflow captures a web form submission, logs it to Google Sheets, creates a contact in your CRM, and sends a notification.
Step 1: Webhook Trigger
Add a Webhook node as before. This is the entry point for your web form. Configure your form to POST data to the webhook URL when submitted.
Step 2: Log to Google Sheets
Click + and add a Google Sheets node. Configure:
- Connect your Google account (one-time authorization)
- Select "Append Row" as the action
- Choose your target spreadsheet and sheet
- Map the incoming webhook data to spreadsheet columns
The visual mapping interface shows exactly which data fields flow from the trigger to the Google Sheets node.
Step 3: Create CRM Contact
Add a Customermates node (or HubSpot, Pipedrive, or your CRM of choice). Configure:
- Connect your CRM account
- Select "Create Contact" as the action
- Map name, email, company, and other fields from the webhook data
With Customermates (EUR 9/user/month), the n8n integration is native -- dedicated nodes instead of raw API calls.
Step 4: Send Notification
Add a Slack node to notify the team that a new lead arrived. Include the contact name, company, and a link to the CRM record.
Step 5: Test and Activate
Test the full chain with sample data. Verify that the row appears in Google Sheets, the contact exists in the CRM, and the Slack message arrived. Then activate.
Designing Workflows: Best Practices
Before building complex automations, learn principles that prevent headaches later.
Keep Workflows Focused
Each workflow should do one thing well. A workflow that captures leads, scores them, creates CRM records, sends emails, and updates a dashboard is hard to debug when something breaks. Instead, split it into focused sub-workflows:
- Lead capture workflow: Webhook to CRM
- Lead scoring workflow: CRM trigger to ChatGPT to CRM update
- Notification workflow: CRM trigger to Slack
Use Naming Conventions
Name your workflows and nodes descriptively. "Workflow 1" tells you nothing. "Lead Capture: Website Form to Customermates" tells you everything. Name nodes by what they do: "Create Contact in CRM" instead of "HTTP Request 3."
Pin Test Data
When developing, use the "Pin data" feature to save sample input for a node. This lets you test downstream nodes without re-triggering the entire workflow every time.
Use the Workflow Library
The n8n workflow library contains over 1,000 ready-made templates. Browse by category (CRM, marketing, sales, DevOps) and copy a template into your workspace. Modifying an existing workflow is faster than building from scratch.
Credentials Management
Every external service you connect to n8n requires credentials. Managing them properly is important for security and team collaboration.
How Credentials Work in n8n
Credentials are stored separately from workflows. When you connect to Google Sheets for the first time, n8n stores the OAuth token as a credential. You can then reuse that credential across multiple workflows without re-authenticating.
Credentials Best Practices
- Name credentials clearly. Use "Google Sheets - Sales Team" instead of "Google Sheets 1." When a team member takes over a workflow, they need to know which account is connected.
- Use service accounts where possible. For Google Workspace and other enterprise tools, use a dedicated service account rather than a personal account. This prevents workflows from breaking when someone leaves the team.
- Rotate API keys periodically. Set a calendar reminder to rotate keys every 90 days for security-sensitive integrations.
- Restrict access on self-hosted. In self-hosted n8n, use environment variables for sensitive credentials instead of entering them in the UI. This keeps secrets out of workflow exports.
- Test after credential changes. After updating a credential (new API key, re-authenticated OAuth), test every workflow that uses it.
Common Credential Issues
| Problem | Cause | Solution |
|---|---|---|
| "Invalid credentials" error | Token expired or revoked | Re-authenticate in credential settings |
| Workflow worked yesterday, fails today | OAuth token refresh failed | Delete and recreate the credential |
| Cannot connect to self-hosted service | Firewall or network issue | Ensure n8n can reach the service URL |
| Credential not available in node | Wrong credential type selected | Check that the credential matches the node |
Error Handling: Building Resilient Workflows
Workflows fail. APIs time out, credentials expire, data formats change, rate limits hit. Building error handling into your workflows from the start saves hours of debugging later.
The Error Trigger Workflow
Create a dedicated error-handling workflow that catches failures across all your workflows:
- Add an Error Trigger node (under Trigger nodes). This fires whenever any workflow fails.
- Connect it to a Slack or Email node that sends the error details (workflow name, node name, error message, timestamp).
- Optionally, add a Google Sheets node to log errors for later analysis.
This single workflow gives you monitoring across your entire n8n instance.
Node-Level Error Handling
For critical nodes, configure error behavior:
- Retry on failure: Set a node to retry 2-3 times with a delay if it fails. This handles transient API timeouts.
- Continue on error: If a non-critical node fails (e.g., logging to a spreadsheet), the workflow continues. The error is logged but does not block the main process.
- Error output: Some nodes have an error output branch. Connect it to an alternative path (e.g., send to a dead-letter queue or notify an admin).
Data Validation with If Nodes
Use If nodes to handle edge cases before they cause errors:
- Check if a required field exists before passing it to the next node
- Validate email format before sending to a CRM
- Check if a list is empty before processing items
- Verify that an API response contains the expected fields
Timeout Configuration
For workflows that call slow external APIs, increase the node timeout (default is 300 seconds). For workflows triggered by webhooks that must respond quickly, set a short timeout and handle the main processing asynchronously.
Community Nodes: Extending n8n Beyond 400 Integrations
n8n's built-in 400+ nodes cover most popular services. For everything else, there are community nodes.
What Are Community Nodes?
Community nodes are integrations built by the n8n community and published on npm. They follow the same node structure as built-in nodes and appear in the node panel after installation.
How to Install Community Nodes
On n8n Cloud: Go to Settings > Community Nodes, search for the node, and install with one click.
On self-hosted: Add the node package to your n8n environment:
# In your n8n Docker container or npm installation:
npm install n8n-nodes-your-community-nodeThen restart n8n. The new node appears in the node panel.
Popular Community Nodes
- n8n-nodes-text-manipulation: Advanced string operations beyond built-in expressions
- n8n-nodes-document-generator: Create PDFs and Word documents from templates
- n8n-nodes-puppeteer: Web scraping and browser automation
- Various CRM-specific nodes: Integrations for niche CRMs not covered by built-in nodes
Caution with Community Nodes
Community nodes are maintained by their authors, not by n8n. Before using one in production:
- Check the last update date (avoid nodes not updated in 6+ months)
- Read the GitHub issues for known bugs
- Test thoroughly in a development environment first
- Have a fallback plan (e.g., HTTP Request node as alternative)
CRM Integration Examples with n8n
Connecting n8n to a CRM unlocks powerful automations. Here are four practical examples using Customermates as the CRM (the same patterns work with HubSpot, Pipedrive, and others).
Example 1: Auto-Import Leads from Web Forms
Web form submission -> Webhook -> Customermates (Create Contact)Every form submission on your website automatically creates a new contact in your CRM with the submitted fields mapped to contact properties. No manual data entry.
Example 2: AI-Powered Lead Qualification
New Contact in CRM -> OpenAI Node (Score lead) -> Customermates (Update Contact with Score) -> Slack (Notify if Hot)When a new lead enters the CRM, n8n sends the lead data to ChatGPT for BANT scoring, writes the score back to a custom field, and notifies the sales team on Slack if the lead is classified as hot. See our guide on lead qualification with ChatGPT for the full setup.
Example 3: Automated Follow-Up Emails
Schedule Trigger (daily) -> Customermates (Get Deals without activity in 7 days) -> Gmail (Send follow-up)Every morning, n8n checks for deals that have had no activity in 7 days and automatically sends a follow-up email to the contact. The email content can be personalized using deal data from the CRM.
Example 4: Meeting Notes to CRM
Meeting tool webhook -> OpenAI Node (Summarize) -> Customermates (Add Note to Contact)After every customer call, the meeting transcript is automatically summarized by ChatGPT and logged as a note on the relevant contact in the CRM. See our guide on summarizing meeting notes with ChatGPT for the full setup.
Why Customermates Works Well with n8n
Customermates (EUR 9/user/month, all features included) has a native n8n integration. This means you can use dedicated Customermates nodes in n8n rather than configuring raw API calls. The integration supports creating, reading, updating, and deleting contacts, deals, organizations, and notes.
For teams that use n8n as their automation backbone, a CRM with native n8n support eliminates the friction of manual API configuration and reduces setup time from hours to minutes.
Building a Multi-Part Workflow: Data Warehouse to CRM
Once you are comfortable with basic workflows, it is time for a more complex example. This workflow mirrors a real-world use case: pulling data from a data source, filtering and transforming it, running calculations, and updating your CRM -- with notifications and scheduling.
The Scenario
Every Monday morning, your workflow should:
- Pull last week's sales data from an Airtable base (or database)
- Filter for deals above a threshold
- Calculate a performance metric for each sales rep
- Update the relevant contacts in the CRM
- Send a summary notification to the team
Step-by-Step Build
1. Schedule Trigger: Set to "Every Monday at 8:00 AM." This replaces the webhook -- the workflow runs on a schedule instead of on demand.
2. Airtable Node (or Database Node): Connect to your Airtable base and pull records from the "Deals" table for the last 7 days. If you use PostgreSQL or MySQL, use the corresponding database node with a date-filtered query.
3. If Node (Filter): Filter the results to only include deals above EUR 1,000. This keeps the downstream processing focused on significant deals.
4. Code Node (Calculations): Use a JavaScript Code node to calculate metrics:
// Group deals by sales rep and calculate totals
const grouped = {};
for (const item of $input.all()) {
const rep = item.json.salesRep;
if (!grouped[rep]) {
grouped[rep] = { rep, totalValue: 0, dealCount: 0 };
}
grouped[rep].totalValue += item.json.dealValue;
grouped[rep].dealCount += 1;
}
return Object.values(grouped).map(g => ({ json: g }));5. CRM Node (Update): For each sales rep, update their contact record in Customermates with the latest performance metrics.
6. Slack Node (Notification): Send a formatted summary to a Slack channel:
Weekly Sales Summary:
{{ $json.rep }}: {{ $json.dealCount }} deals, EUR {{ $json.totalValue }}7. Activate. The workflow runs every Monday automatically. If you want to test it immediately, use the "Test workflow" button -- it executes the full chain regardless of the schedule.
Exporting and Importing Workflows
n8n workflows are stored as JSON. You can export and import them freely:
Export: Click the three-dot menu on a workflow and select "Download." The JSON file contains every node, connection, and configuration (but not credentials).
Import: Click "Import from file" when creating a new workflow. Select the JSON file. Update credentials to match your environment, and the workflow is ready.
This makes it easy to:
- Share workflows with team members
- Back up workflows before making changes
- Move workflows between n8n instances (e.g., development to production)
- Use community templates from the n8n workflow library
From Beginner to Advanced: What Comes Next
Once you are comfortable with basic workflows, n8n offers advanced capabilities:
- Sub-workflows: Call one workflow from another to create modular, reusable automation components.
- Code Nodes: Write JavaScript or Python for logic that cannot be expressed with standard nodes.
- AI Agent Nodes: Build multi-step native AI integration that use tools, make decisions, and interact with your CRM autonomously.
- Database Nodes: Connect directly to PostgreSQL, MySQL, MongoDB, and other databases.
- Self-hosted LLMs: Connect Ollama or other local model runners for private AI processing.
The n8n YouTube channel and community forum are excellent resources for leveling up. The official n8n Level One Course covers editor navigation, mini-workflows, real-world use cases, workflow design principles, multi-part workflows with data sources and filtering, export/import, and an assessment -- a solid structured path for new users.
Frequently Asked Questions
Is n8n really free?
Self-hosted n8n is free to use with unlimited workflow executions. The source code is open and available on GitHub. n8n Cloud is a paid managed service starting at EUR 20/month. Most beginners start with the cloud plan for convenience and move to self-hosting as their usage grows.
Do I need coding skills to use n8n?
No. The visual workflow editor covers most automation use cases without any code. For advanced transformations, n8n offers Code nodes where you can write JavaScript or Python, but these are optional. If you can describe your automation as "when X happens, do Y," you can build it in n8n.
How does n8n compare to Zapier for CRM automation?
n8n is more flexible and significantly cheaper at scale. Zapier excels in the breadth of pre-built integrations (6,000+ vs. 400+), but n8n offers unlimited executions on self-hosted, native AI/LLM support, custom code, and full data control. For CRM automation specifically, n8n's deeper integration capabilities and AI nodes make it the stronger platform.
Can n8n connect to any CRM?
n8n has dedicated nodes for popular CRMs including Customermates, HubSpot, Pipedrive, Salesforce, and Zoho. For CRMs without a dedicated node, the HTTP Request node lets you connect to any CRM with a REST API. Community nodes extend this further. In practice, this covers virtually every modern CRM system.
Is n8n suitable for production use?
Yes. Thousands of companies run n8n in production. For reliability, self-host on a VPS with Docker, configure persistent storage and automated backups, and set up monitoring. The n8n Cloud option handles all of this for you. For mission-critical workflows, add error handling and notifications so you know immediately if something fails.
How does n8n handle GDPR and data privacy?
Self-hosted n8n gives you complete control -- data never leaves your servers. For n8n Cloud, data is processed in the EU. In both cases, n8n itself does not access or store your workflow data beyond execution. Combined with a GDPR-compliant CRM like Customermates (EU-hosted, EUR 9/user/month), you can build fully compliant automation pipelines.
What is the easiest first workflow to build?
Start with a webhook-to-notification workflow: receive data via webhook, send a Slack or email notification. This teaches the core concepts (trigger, node, data flow, testing, activation) in under 10 minutes. Once that works, add a CRM node to save the data, and you have a practical lead capture automation.
How do I handle errors in n8n workflows?
Create a global Error Trigger workflow that notifies you when any workflow fails. At the node level, use retry-on-failure for API calls, continue-on-error for non-critical steps, and If nodes for data validation. The execution history in n8n logs every run with full input/output data, making debugging straightforward.
Can I use community nodes on n8n Cloud?
Yes. n8n Cloud supports community node installation through the Settings menu. On self-hosted instances, install them via npm. Always test community nodes in a development environment before using them in production workflows.
What does the n8n Level One Course cover?
The official n8n Level One Course covers seven chapters: editor UI navigation, building a mini-workflow, real-world automation use cases, workflow design principles, building a multi-part workflow with data sources, filtering, calculations, notifications, and scheduling, exporting and importing workflows, and a final assessment quiz. It is free and available in the n8n documentation.


