Lesson 3 of 12 Phase 1 · Getting Started

Your First N8N
Workflow

It is time to build something real. In this lesson you will create a complete 4-node workflow from scratch: a Manual Trigger fires it, an HTTP Request fetches live JSON data, a Set node transforms it, and Gmail sends an email summary — all automatically.

4 Nodes
Complete workflow
🌐
Live API
Real data fetch
📧
Email Send
Gmail action
🔍
Debug
Execution logs
Section 1

The Workflow You'll Build

This workflow fetches the latest post from a public JSON API, extracts the title and body, then emails you a summary. It is simple enough to understand in one sitting, but uses all the essential N8N patterns you will use in every workflow you build.

1
👆
Trigger
Manual Trigger
Click to start
2
🌐
HTTP Request
Fetch JSON
jsonplaceholder API
3
✏️
Set Node
Transform Data
Extract title + body
4
📧
Action
Send Email
Gmail node
💡
Why this workflow? It demonstrates the three pillars of every automation: getting data (HTTP Request), transforming data (Set node), and acting on data (Gmail send). Once you understand this pattern, you can build any workflow.
Section 2

Adding Nodes & Connecting Them

Follow these steps to build the workflow on your N8N canvas. Each step builds on the last:

1
Create a New Workflow
Click "New Workflow" in the sidebar. Give it a name like "My First Workflow". You will see a blank canvas with a "+" prompt in the center.
2
Add Manual Trigger Node
Click the "+" button or press Tab. Search for "Manual Trigger" and select it. This node starts the workflow when you click "Execute Workflow" — perfect for testing.
3
Add HTTP Request Node
Hover over the Manual Trigger node and click the "+" that appears on its right edge. Search for "HTTP Request". Set Method to GET and URL to: https://jsonplaceholder.typicode.com/posts/1
4
Add Set Node
From the HTTP Request node, add a "Set" node. Use it to create two new fields: "subject" mapped to the API's "title" field, and "message" mapped to "body".
5
Add Gmail Node
Add a "Gmail" node from the Set node. Configure To, Subject (use expression: {{ $json.subject }}), and Message (use: {{ $json.message }}). Connect your Gmail credentials.
Section 3

Node Configuration Reference

Here is the exact configuration for each of the 4 nodes. Open each node by double-clicking it on the canvas and match these settings:

👆
Manual Trigger
Trigger
Node Type
n8n-nodes-base.manualTrigger
Config
No configuration needed
Purpose
Click "Execute Workflow" to fire
🌐
HTTP Request
Core Node
Method
GET
URL
https://jsonplaceholder.typicode.com/posts/1
Authentication
None (public API)
✏️
Set Node
Core Node
Field 1 Name
subject
Field 1 Value
{{ $json.title }}
Field 2 Name
message
Field 2 Value
{{ $json.body }}
📧
Gmail Node
App Node
Operation
Send
To
your@email.com
Subject
{{ $json.subject }}
Message
{{ $json.message }}
Section 4

Testing, Executing & Reading Output

Once all 4 nodes are configured and connected, you are ready to execute. Here is what to expect at each stage:

▶️
How to execute: Click the orange "Execute Workflow" button at the bottom of the canvas, or press Ctrl+Enter. You will see green checkmarks appear on each node as they run successfully.

After execution, click any node to see the data that flowed through it. The HTTP Request node will show the raw JSON from the API:

HTTP Request Output (Node 2)
{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident",
  "body": "quia et suscipit\nsuscipit recusandae..."
}

The Set node transforms it, and the Gmail node sends the email. Check your execution history in the left sidebar — you will see the full run with status, timing, and data at every step.

Green = Success
A green badge on a node means it ran without errors. Click the node to inspect its output data.
🔴
Red = Error
A red badge means something went wrong. Click the node to read the error message and fix the configuration.
📊
Data Panel
The bottom panel shows Input and Output tabs for the selected node — JSON data structured as "items" array.

🧠 Workflow Building Check

1. In our 4-node workflow, what is the purpose of the Set node (Node 3)?
2. What does the expression {{ $json.title }} do inside a node parameter?
3. What does a red badge on a node after execution indicate?
Finished Lesson 3?

You have built and run your first real N8N workflow. Mark it complete!