Get n8n Running and Import Your First Workflow
In the last lesson you learned the theory: triggers, nodes, connections, and a list of items flowing between them. Now you turn it on. By the end of this lesson you will have n8n open in your browser, you will have imported a real workflow by pasting JSON, and you will have run it and seen live data come back. This is the moment n8n stops being abstract.
What You'll Learn
- Two ways to get n8n running: the free self-hosted route and the hosted cloud route
- How to import any workflow into n8n by pasting its JSON
- How to run a workflow and read its output
- A complete starter workflow you can copy, run, and modify
Step 1: Get n8n open in your browser
You have two simple options. Pick whichever suits you.
Option A: Run it yourself for free (recommended for this course). If you have Node.js installed, you can launch n8n with a single command in your terminal. This downloads what it needs and starts a local instance, no account required:
npx n8n
When it finishes starting, it prints a local address (typically http://localhost:5678). Open that in your browser and you are in the n8n editor. This is the free Community Edition running entirely on your own machine. Prefer containers? n8n also publishes an official Docker image, which is the common choice for leaving an instance running on a server.
Option B: Use n8n Cloud. If you would rather not install anything, n8n offers a hosted cloud version you can sign up for. It typically includes a free trial so you can follow this course without any setup. The editor looks and works the same either way, so every workflow in this course runs in both.
Either way, the goal is the same: an n8n editor open in your browser with an empty canvas in front of you.
Step 2: Learn the one move that powers this course
n8n lets you import a workflow from JSON. This is how you will load every build in this course. There are two reliable ways to do it:
- Paste onto the canvas. Copy a workflow's JSON to your clipboard, click anywhere on the empty canvas, and paste with Ctrl+V (or Cmd+V on a Mac). n8n recognizes the JSON and draws the whole workflow, fully wired.
- Use the workflow menu. Open the workflow options menu (the three-dot menu in the editor) and choose the import option, then provide the workflow file or JSON.
For this course, the paste method is fastest: copy the JSON block, click the canvas, paste. Done.
One thing to know up front: exported workflows never include passwords or API keys. Any node that talks to a private account (Gmail, Slack, a database) will show that it needs credentials. You add those once in n8n and reuse them. The early workflows in this course deliberately use public, no-credential nodes so you can run them immediately.
Step 3: Import and run your first workflow
Copy the JSON below, open n8n, click the empty canvas, and paste. You should see three connected nodes appear: a manual trigger, an HTTP Request, and a Set node.
{
"name": "My First n8n Workflow",
"nodes": [
{
"parameters": {},
"id": "trigger-1",
"name": "When clicking Test",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [240, 300]
},
{
"parameters": {
"url": "https://api.github.com/repos/n8n-io/n8n",
"options": {}
},
"id": "http-1",
"name": "Get Repo Info",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [480, 300]
},
{
"parameters": {
"mode": "manual",
"assignments": {
"assignments": [
{
"id": "a1",
"name": "project",
"value": "={{ $json.full_name }}",
"type": "string"
},
{
"id": "a2",
"name": "stars",
"value": "={{ $json.stargazers_count }}",
"type": "number"
}
]
},
"options": {}
},
"id": "set-1",
"name": "Pick Fields",
"type": "n8n-nodes-base.set",
"typeVersion": 3,
"position": [720, 300]
}
],
"connections": {
"When clicking Test": {
"main": [[{ "node": "Get Repo Info", "type": "main", "index": 0 }]]
},
"Get Repo Info": {
"main": [[{ "node": "Pick Fields", "type": "main", "index": 0 }]]
}
}
}
Here is what each node does, taught the way you will read every node from now on, as a small config table rather than a screenshot.
Node: Get Repo Info (HTTP Request)
| Setting | Value |
|---|---|
| Method | GET (the default) |
| URL | https://api.github.com/repos/n8n-io/n8n |
Node: Pick Fields (Set / Edit Fields)
| Field name | Value |
|---|---|
| project | ={{ $json.full_name }} |
| stars | ={{ $json.stargazers_count }} |
Now run it: click the Test workflow button (sometimes shown as "Execute workflow"). The manual trigger fires, the HTTP Request node calls the public GitHub API for n8n's own repository, and the Set node keeps just two fields.
Click the Pick Fields node to inspect its output. You should see a single item that looks roughly like this:
{
"json": {
"project": "n8n-io/n8n",
"stars": 92000
}
}
The exact star count will differ when you run it, because it is live data. That is the point: you just made n8n fetch real information from the internet and reshape it into a clean item. Notice the flow matches the mental model from lesson one exactly:
- Manual TriggerYou click Test
- HTTP RequestFetch repo data
- SetKeep 2 fields
Step 4: Make it yours (challenge)
The best way to learn is to change one thing and re-run. Try this:
- Click the Get Repo Info node and change the URL to a different public repository, for example
https://api.github.com/repos/microsoft/vscode. Run it again and watch the output update. - In the Pick Fields node, add a third field called
languagewith the value={{ $json.language }}. Re-run and confirm the new field appears. - Change a field name from
starstostar_count. Re-run. Notice that renaming a field in the Set node renames it in the output too.
Each change is small, but together they teach you the core loop of working in n8n: open a node, edit a setting, run the workflow, read the output, repeat.
Why those ={{ ... }} values worked
You may have noticed the Set node used values like ={{ $json.full_name }} instead of plain text. That leading = tells n8n "this is an expression, not a literal string," and {{ $json.full_name }} means "the full_name field of the current item." That tiny syntax is how data moves between nodes, and it is exactly what the next lesson is about.
Key Takeaways
- Run n8n for free with
npx n8n(or Docker) for a fully local instance, or use the hosted cloud version for zero setup; the editor is the same either way. - Import any workflow by copying its JSON and pasting it onto the canvas with Ctrl+V or Cmd+V.
- Exported workflows never contain credentials, so account-based nodes must be reconnected; early lessons avoid that on purpose.
- You ran a real workflow: a manual trigger started it, an HTTP Request fetched live data, and a Set node kept just the fields you wanted.
- Reading a node's output and changing one setting at a time is the core loop you will repeat throughout the course.

