What n8n Is and How Data Flows
n8n (pronounced "n-eight-n") is a workflow automation tool. You connect apps and services together so that something happening in one place automatically triggers actions somewhere else: a new form submission becomes a row in a spreadsheet, an incoming email gets summarized and posted to a chat channel, a daily schedule pulls fresh data and emails you a report. You build all of this by wiring together visual building blocks called nodes, with no traditional programming required to get started.
What sets n8n apart from most automation tools is its model: the Community Edition is free and self-hostable. It is distributed under a fair-code license (the Sustainable Use License), which means the source is published openly and you can run it on your own machine or server at no software cost, with unlimited workflows and executions. Many competing automation platforms are cloud-only and charge per task or per "operation." With n8n you can choose the hosted cloud option if you want zero setup, but you always have the option to run it yourself, keep your data on your own infrastructure, and avoid per-task pricing. It also lets you drop into real code when you need to, so it scales with you as your needs grow.
This course is text-first by design. Because every n8n workflow is just JSON, you can copy a complete working workflow from a lesson, paste it straight into your own n8n, run it, and then change it. The lessons are your guide; your own n8n instance is your lab.
What You'll Learn
- The core building blocks of n8n: triggers, nodes, and connections
- How data moves between nodes as a list of JSON items
- Why the "items" mental model is the key to everything else in n8n
- How this course teaches a visual tool entirely through copy-paste JSON
The three core concepts
Every n8n workflow is built from the same handful of ideas. Learn these three and the rest of the tool falls into place.
1. Triggers. A trigger is the node that starts a workflow. Nothing runs until a trigger fires. Common triggers include a manual "test" trigger (you click a button), a schedule (every morning at 8am), or a webhook (an external service calls a URL). A workflow has exactly one trigger as its starting point.
2. Nodes. A node is a single step that does one job. An HTTP Request node fetches data from a web address. A Set node adds or edits fields. An IF node splits the flow into two paths. A Gmail or Slack node sends a message. You chain nodes together to form the steps of your automation.
3. Connections. A connection is the line linking one node's output to the next node's input. Connections define the order things run in and, crucially, they carry the data from one node to the next.
Here is the shape of a typical workflow:
- TriggerSchedule or webhook
- HTTP RequestFetch data
- FilterKeep only matches
- SendEmail or Slack
Read it left to right: the trigger fires, the HTTP Request node fetches some data, the Filter node throws away rows you do not care about, and the Send node delivers the result. Each arrow is a connection carrying data forward.
The most important idea: data is a list of items
This is the concept that trips up every beginner, so it is worth slowing down on. Between every pair of connected nodes, n8n passes data as a list of items. Each item is a small bundle of JSON, and almost every item has a json property holding its actual fields.
A single item looks like this:
{
"json": {
"name": "Ada Lovelace",
"email": "ada@example.com",
"signups": 3
}
}
And because nodes pass a list, a node that fetched three contacts would output three items:
[
{ "json": { "name": "Ada Lovelace", "email": "ada@example.com" } },
{ "json": { "name": "Alan Turing", "email": "alan@example.com" } },
{ "json": { "name": "Grace Hopper", "email": "grace@example.com" } }
]
Why does this matter so much? Because n8n runs most nodes once per item, automatically. If the list above flows into a "Send Email" node, n8n sends three emails without you writing any loop. If it flows into a Filter node, the filter is checked against each item separately. Understanding that "data = a list of items, each with a json object" is the single biggest unlock in n8n. When you later write {{ $json.email }} in a node, you are saying "the email field of the current item." We cover that syntax in the Expressions lesson.
How nodes change the list
Different nodes do different things to the list of items flowing through them:
- A fetch node (like HTTP Request) often creates items from an external source.
- A transform node (like Set or Code) edits each item, adding or reshaping fields.
- A filter node removes items that do not match a condition, so fewer items come out than went in.
- A branch node (like IF) routes items down different paths.
- An action node (like Send Email) consumes items, doing something once per item.
So a workflow is really a small assembly line: items enter, each node reshapes or routes the list, and the final node acts on whatever items survived the journey.
Why JSON workflows make this a great text course
A visual canvas tool might sound impossible to teach in writing, but n8n has a feature that makes it perfect for text: every workflow can be exported as a block of JSON, and you can import a workflow by simply pasting that JSON. That means each build lesson in this course can hand you a complete, working automation. You copy it, paste it into your n8n canvas, and it appears fully wired up. You run it, see real data flow, then change one piece as a challenge. You get hands-on practice without a single screenshot to squint at.
Key Takeaways
- n8n is a workflow automation tool you build by connecting visual nodes; no coding is required to start.
- The Community Edition is free and self-hostable under a fair-code license, so you can run it yourself with unlimited workflows and full control of your data.
- Three concepts run everything: triggers start a workflow, nodes each do one job, and connections carry data between them.
- Data flows as a list of items, where each item is JSON with a
jsonproperty; n8n runs most nodes once per item automatically. - Because workflows are JSON, you will learn by copying complete workflows from each lesson and importing them into your own n8n.

