Setting up the skills and environment before building an n8n workflow: a basic understanding of API, HTTP, webhooks, and event-driven automation, familiarity with JSON and YAML, as well as the concepts of credentials and authentication. Ends with verifying Node.js, Docker, and an n8n instance ready to use.

Welcome to the Learn n8n series! This series will take you to mastering n8n — an open-source platform for workflow automation with a visual editor and hundreds of ready-to-use integrations — from the conceptual foundations all the way to production-grade deployment across 23 episodes.
Before building your first workflow, there are several basic skills and tools you need to prepare. Why are prerequisites important? Because n8n works at the intersection of APIs, events, and structured data — you'll constantly be dealing with JSON, webhooks, credentials, and expressions. Without this foundation, n8n nodes will feel like black boxes.
Episode 0 lays your groundwork: sharpening your understanding of API and HTTP basics, getting familiar with JSON and YAML, understanding the concept of credentials, then making sure your local environment is ready with Node.js, Docker, and a running n8n instance.
n8n is a bridge between APIs. Almost everything you automate — Slack, GitHub, databases, or internal services — communicates over HTTP with requests and responses. Three things you must understand from the start:
| Concept | Explanation |
|---|---|
| HTTP method | GET reads, POST creates, PUT/PATCH updates, DELETE deletes |
| Status code | 200 success, 400 bad request, 401/403 unauthenticated, 500 server error |
| Webhook | An HTTP endpoint that other systems call when an event occurs |
Webhook is the concept used most often in this series. Here's an analogy: a webhook is like a phone number that other systems call to let you know something happened. An online store calls your n8n endpoint every time a new order comes in, and n8n immediately runs the workflow.
Most of the data flowing through n8n nodes is in JSON form. The ability to read and guess JSON structure — objects, arrays, keys, and values — will be used in almost every node:
{
"event": "order.created",
"order": {
"id": "ORD-1024",
"total": 250000,
"customer": {
"name": "Arief",
"email": "arief@example.com"
}
}
}The structure above is a nested object — the order object contains the customer object. You'll often access this kind of nested data through n8n expressions, so get used to reading the indentation. Meanwhile, YAML is widely used for configuration — including the docker-compose.yml file you'll use in the installation episode. YAML is more concise than JSON because it uses indentation instead of curly braces.
n8n integration nodes need permission to call third-party APIs. Three concepts you should be familiar with from the start:
A habit you should build from now on: store secrets only in safe places. n8n provides an encrypted credential store, and for self-hosting you'll use environment variables. We'll break down the practical details in the installation and security episodes.
n8n runs on Node.js. To run n8n directly from npm, you need at least Node.js version 20 or higher. First check the version in your terminal:
node -v
npm -vDocker is optional but highly recommended — Docker makes n8n installation clean, consistent, and easy to move around. Docker also prepares you for the deployment episodes at the end of the series. Verify with docker --version; if it's not installed yet, install it from the official Docker website according to your OS.
There are three common ways to run n8n that we'll cover thoroughly in episode 3:
For the early episodes, the fastest way is via npx:
npx n8n@latest startOnce the command above runs, n8n will serve at http://localhost:5678 — your browser will open and greet you with the initial setup page. Save this address, because it will be used throughout the series.
n8n is a web application, so a modern browser (Chrome, Firefox, or Edge) is a must for its visual editor. It's best to open it in a separate browser window so it doesn't get buried under other tabs.
In addition, prepare a text editor — for example VS Code, Neovim, or Zed — to work with configuration files, exported JSON workflows, and small scripts outside of n8n. Throughout the series you'll frequently copy JSON structures between files, so a comfortable editor goes a long way.
Let's make sure everything is ready. Run these three checks in order:
node -v
docker --version
npx n8n@latest --versionIf node -v shows version 20 or higher, docker --version shows a Docker version, and npx n8n@latest --version shows the n8n version number, then your environment is officially ready. Don't worry if Docker isn't installed yet — all the examples in the early episodes still work with npx or the desktop app alone.
Info
Always run n8n from the same working directory and note the http://localhost:5678 address with port 5678 — this is n8n's default port and will be used in all the examples in this series.
In episode 0 you've prepared the foundation for the entire series: a basic understanding of APIs, HTTP, webhooks, JSON, YAML, the concept of credentials, as well as a local environment with Node.js, Docker, and an n8n instance ready to run.
Key takeaways:
http://localhost:5678 via the npx n8n@latest start command.In the next episode, we'll discuss the history, background, and why to choose n8n — how n8n was born from a project called nodemation, its position in the automation ecosystem, a direct comparison with Zapier, Make, and Huginn, and the open-source and self-hosted control advantages that lead many teams to choose it. Make sure your environment is ready, because the Learn n8n journey is just getting started!