n8n is a workflow automation tool: you connect trigger, app and logic nodes on a canvas, and each workflow runs on a schedule, a webhook or an app event. Start with a 14-day n8n Cloud trial, which needs no card, or self-host the free Community Edition with Docker, since n8n 3.0, due in October 2026, drops npm installs. Build a first workflow with a Schedule Trigger, an HTTP Request node and an email node, test it with Execute workflow, then select Publish so it runs on its own.
Checked against n8n's documentation, its pricing page and the n8n 2.41.4 release on October 1, 2026. This update replaces the February 2026 version, which recommended npm with Node.js 16, used basic-auth settings and Function nodes that n8n has since removed or is removing, and called n8n open source.
What n8n is
n8n is a workflow automation tool. You build a workflow by connecting nodes on a canvas: a trigger node decides when the workflow runs, and the nodes after it fetch, change and send data. The n8n homepage cites over 500 integrations, and the HTTP Request node can call any REST API that has no dedicated node. When the built-in nodes aren't enough, the Code node runs JavaScript or Python, and the AI Agent node connects language models to your tools.
One thing older guides get wrong: n8n isn't open source. Its code is public under the Sustainable Use License, which n8n calls fair-code. You can use it free for your own business, personal or non-commercial work, but you can't, for example, host it as a service that lets your customers build their own workflows. n8n itself says it does not call itself open source.
Step 1: Choose n8n Cloud or self-hosting
| Option | Cost | Best for |
|---|---|---|
| n8n Cloud free trial | Free for 14 days, no credit card. Limits: 1,000 executions, 5 at a time, 180-second timeout | Learning n8n today with nothing to install |
| n8n Cloud Starter | 20 euros a month billed annually (24 euros month to month) for 2,500 executions | Running a few real workflows without managing a server |
| n8n Cloud Pro | 50 euros a month billed annually (60 euros month to month) for 10,000 executions | Higher limits, admin roles and workflow history |
| Self-hosted Community Edition | No license fee; you pay for the server and your time | Full control, custom nodes, or keeping data on your own machines |
Prices and limits are from n8n's pricing page on October 1, 2026. An execution is one full run of a workflow, however many steps it has, and only production runs count; manual test runs don't. Registering a free Community instance by email unlocks folders, debug in editor and custom execution data, per n8n's plan guide. Our n8n pricing guide compares the plans in more detail.
Run n8n on your own computer
n8n's one-line setup is now the quickest local install. Install Docker first (it includes Docker Compose), then run:
curl -fsSL https://get.n8n.io | sh
The script checks Docker, creates an n8n folder with a Compose file and generated secrets, and starts n8n at http://localhost:5678 with its built-in SQLite database. On Windows, run it from WSL with Docker Desktop's WSL2 integration turned on. To upgrade later, run the same command with sh -s -- --upgrade at the end.
Skip older tutorials that use npx n8n or npm install -g n8n. n8n's 3.0 breaking-changes page says n8n 3.0, scheduled for October 2026, no longer supports npm or npx installs; our n8n 3.0 guide covers the upgrade. For a server with your own domain, HTTPS, Postgres and backups, follow our n8n self-hosting guide.
Step 2: Learn the editor
- Canvas: where you place and connect nodes. The + connector on a node, or the N key, opens the nodes panel to search for the next node.
- Node details view: double-click a node to open it. Input data is on the left, the node's parameters in the middle and its output on the right. Execute step runs just that node and whatever it needs before it.
- Execute workflow: runs the whole workflow as a manual test, showing each node's data as it goes.
- Publish: n8n saves your edits automatically, but they only go live when you publish. Publishing turns on schedules, app triggers and production webhook URLs, per n8n's publishing docs.
- Executions tab: the history of each run, including failed ones you can open and debug.
- Credentials: saved logins and API keys for apps. You create one once and reuse it in any node for that app.
| Shortcut | What it does |
|---|---|
| Ctrl/Cmd + Enter | Execute the workflow |
| N | Open the nodes panel |
| = (in an empty field) | Switch the field to an expression |
| P (node selected) | Pin the node's output data for testing |
| Shift + S | Add a sticky note |
| Ctrl/Cmd + K | Open the command bar |
From n8n's keyboard shortcuts page.
Step 3: Build your first workflow, a morning weather email
This workflow checks the day's forecast every morning and emails you a one-line summary. It uses four nodes: Schedule Trigger → HTTP Request → Edit Fields (Set) → Gmail. The weather comes from Open-Meteo, whose free API needs no key; its terms allow it for non-commercial use under 10,000 calls a day.
1. Add a Schedule Trigger
- Create a new workflow, select Add first step, search for Schedule and choose Schedule Trigger.
- Set Trigger Interval to Days, Days Between Triggers to 1, Trigger at Hour to 7am and Trigger at Minute to 0.
- Check the timezone. The Schedule Trigger uses the workflow's timezone (three-dot menu, Settings) if set, otherwise the instance's, which defaults to America/New York on self-hosted n8n.
2. Fetch the forecast with an HTTP Request node
- Add an HTTP Request node after the trigger. Keep Method as GET and set URL to
https://api.open-meteo.com/v1/forecast. - Turn on Send Query Parameters, choose Using Fields Below and add these name/value pairs (use your own coordinates):
| Name | Value |
|---|---|
| latitude | 40.71 |
| longitude | -74.01 |
| daily | temperature_2m_max,temperature_2m_min,precipitation_probability_max |
| forecast_days | 1 |
| timezone | auto |
Select Execute step. The output looks like this (trimmed):
{
"timezone": "America/New_York",
"daily_units": {
"temperature_2m_max": "°C",
"temperature_2m_min": "°C",
"precipitation_probability_max": "%"
},
"daily": {
"time": ["2026-09-30"],
"temperature_2m_max": [23.3],
"temperature_2m_min": [16.0],
"precipitation_probability_max": [1]
}
}Open-Meteo returns Celsius by default. For Fahrenheit, add a temperature_unit parameter set to fahrenheit.
3. Write the message with Edit Fields (Set)
- Add an Edit Fields (Set) node and keep Mode on Manual Mapping.
- Add a field named
summaryof type String. In the value box, type=to switch to an expression, then enter:
High {{ $json.daily.temperature_2m_max[0] }}°C, low {{ $json.daily.temperature_2m_min[0] }}°C, {{ $json.daily.precipitation_probability_max[0] }}% chance of rain.Everything inside {{ }} is an expression. $json is the current item's data from the previous node, and [0] picks the first value because the API returns arrays. You can also drag a field from the INPUT panel into the box instead of typing the path. Execute the step and check that summary reads correctly.
4. Send it with Gmail
- Add a Gmail node and choose Resource Message, Operation Send.
- Create a credential. On n8n Cloud, select Sign in with Google. Self-hosted n8n doesn't offer that managed sign-in, so you create an OAuth app in Google Cloud first, following n8n's Google credential guide, or you swap Gmail for the Send Email, Slack or Telegram node.
- Set To to your address, Email Type to Text, Subject to
Weather for {{ $today.toFormat('cccc, d LLLL') }}and Message to{{ $json.summary }}. - Under Options, turn off Append n8n attribution if you don't want the "sent automatically with n8n" line the node adds by default.
5. Test, then publish
- Select Execute workflow. n8n runs each node in turn and shows its output, and the email arrives.
- Select Publish. From now on the Schedule Trigger runs the workflow every morning, and each run appears in the Executions tab.
How data and expressions work
Data moves between nodes as a list of items, and each item holds a JSON object. Most nodes process every item they receive, so if a node outputs 20 rows, the next Gmail node sends 20 emails. Keep that in mind before you connect a spreadsheet to a send step. n8n's data structure docs explain the format.
| Expression | Returns |
|---|---|
| {{ $json.email }} | The email field of the current item |
| {{ $json.customer.address.city }} | A nested field |
| {{ $('HTTP Request').item.json.timezone }} | A field from an earlier node, by node name |
| {{ $now.toISO() }} | The current date and time in ISO format |
| {{ $today.minus(7, 'days') }} | The date a week ago, as used in n8n's own tutorial |
| {{ $json.email.toLowerCase() }} | Any JavaScript string method works |
Syntax from n8n's previous-node reference and first-workflow tutorial. When an expression gets long, move the logic into a Code node. n8n 3.0 removes the old Function and Function Item nodes, so use the Code node's Run Once for All Items and Run Once for Each Item modes instead.
Four beginner workflows to build next
- Form to spreadsheet: n8n Form Trigger → Google Sheets (append a row) → Gmail or Slack notification. Start with the template library.
- New lead to CRM: Webhook → If (check the email) → HubSpot or Pipedrive. See our CRM automation guide.
- Weekly database report: Schedule Trigger → Postgres → HTML table → email. See our database automation guide.
- A simple AI assistant: Chat Trigger → AI Agent with a chat model and a tool or two. You need an API key from a model provider; our OpenAI API key guide covers that.
Test and debug like a pro
- Pin data while building. Select a node and press P to freeze its output, so later steps can be tested without calling the API again. Production runs ignore pinned data.
- Use the test URL for webhooks, then switch. A Webhook node has a test URL that works while you listen for a test event, and a production URL that works only after you publish, per the Webhook docs.
- Debug failed runs. Open a failed execution and choose Debug in editor to load its data into the canvas, fix the node and rerun it.
- Add an error workflow before anything important goes live, so a failure sends you an alert. Our n8n error handling guide walks through it.
Common beginner mistakes
- Forgetting to publish. A workflow that works when you click Execute workflow won't run on its own until it's published.
- Wrong timezone. Schedules fire in the workflow or instance timezone, not necessarily yours.
- Sending one email per item. If a node outputs many items, the next node runs once per item. Use Aggregate or Limit when you want one message.
- Pasting API keys into fields. Keep keys in credentials, where n8n stores them encrypted, not in node parameters or Code nodes.
- Following outdated tutorials. Basic-auth variables stopped working in n8n 1.0, and npm installs end with n8n 3.0.
Where to go from here
Rebuild one task you do by hand every week, then add error handling and publish it. After that, read our n8n vs Zapier comparison and browse the n8n workflow library for ideas. If you would rather build your own AI product than turn n8n skills into client work, AI SaaS Builder covers validating an idea, building it on Supabase, Next.js and the Claude API, and charging with Stripe.
Want the full AI SaaS Builder playbook?
A 10-module, 52-lesson curriculum: validate an idea, build on Supabase and Next.js, add AI features with the Claude API, speed up with Claude Code and MCP, deploy on Vercel, launch, and charge with Stripe.
n8n tutorial FAQ
What is n8n used for?
n8n connects apps, APIs and AI models in workflows that run on a schedule, when a webhook or form is called, or when something happens in a connected app. Typical uses are syncing data between tools, sending reports and alerts, routing leads, processing form entries and building AI agents. It has over 500 built-in integrations, and the HTTP Request node can call any REST API.
Is n8n free?
The self-hosted Community Edition is free to use under n8n's Sustainable Use License, but you pay for the server and do the maintenance. n8n Cloud has a 14-day free trial with no credit card, then paid plans. On October 1, 2026, the Starter plan cost 20 euros a month billed annually, or 24 euros month to month, for 2,500 workflow executions a month.
Is n8n open source?
Not by the Open Source Initiative's definition, and n8n does not call itself open source. Its source code is public under the Sustainable Use License, which n8n calls fair-code: free for internal business, personal and non-commercial use, with limits such as not hosting n8n as a service for others to build workflows.
Do I need to know how to code to use n8n?
No. Most workflows are built by connecting nodes and filling in fields, and you can drag data from one node into another. Expressions such as {{ $json.email }} use JavaScript syntax, so a little JavaScript helps, and the Code node runs JavaScript or Python when the built-in nodes are not enough.
How do I install n8n on my computer?
Install Docker, then run curl -fsSL https://get.n8n.io | sh in a terminal (on Windows, use WSL). n8n's one-line setup creates an n8n folder with a Docker Compose file and starts n8n at http://localhost:5678. Avoid npm and npx installs: n8n 3.0, scheduled for October 2026, no longer supports them.
Why does my n8n workflow not run automatically?
It probably is not published. Manual runs with Execute workflow only test the workflow; schedules, app triggers and production webhook URLs only work after you select Publish. Also check the workflow timezone, and that outside services call the production webhook URL, not the test URL.