n8n for Beginners: Your First Automations · Module 3 of 10

n8n: Items, JSON and Expressions, Explained by Doing

n8nBeginner~9 min practice28 steps

Why this matters

Every n8n tutorial moves fast past the same part: how n8n holds data. It is the place most beginners get stuck, because until you can read items and write an expression, every workflow is a black box that either works or doesn't.

In this module you help Clearview Bookkeeping write reminders for five overdue invoices. You load the invoices as test data without connecting any app, read them as Schema, Table and JSON, then build one reminder line and one late fee that work for every invoice, using expressions you make by dragging.

What you’ll build

A manual trigger with five pinned invoices, and an Edit Fields node that outputs, for each invoice, a reminder ("Northpoint Realty is 34 days late"), the email and a late fee rounded to cents.

You also know why a typed formula breaks in a Number field, and how .round(2) fixes 15.200000000000001.

What you need

  • Nothing to start the practiceThe editor is a practice copy. Clearview Bookkeeping and its invoices are made up, with .example email addresses.
  • An n8n account, to do it for realSign up with this link (affiliate link: I may earn a commission, at no cost to you).
  • No apps or keysThe invoices are pinned test data you paste in, so nothing is connected.

Concepts

3 ideas you’ll use in the practice.

Items: one per record

n8n passes a list of items from node to node. Each item is one record, such as one invoice, with named fields. A node with five items in usually runs five times and puts five items out.

The same items can be read three ways: Schema (the fields of one item), Table (rows and columns) and JSON (the raw data).

Pinned data

"set mock data" on a node's OUTPUT lets you paste test data. n8n saves it as pinned data: test runs reuse it instead of calling the real app, which makes building fast and free.

Expressions and types

An expression sits in {{ }}. {{ $json.client }} means "this item's client". Drag a field from INPUT onto a value and n8n writes it; drag it onto "Drag input fields here" and n8n makes a whole new field.

Anything inside {{ }} is JavaScript, so you can calculate: {{ ($json.amount * 0.02).round(2) }}. A Number field only accepts digits, so switch it to Expression before you type a formula.

Practice

Do every step yourself in a practice copy of the real tool. It checks your work, and “Do it for me” finishes any step you get stuck on.

n8nn8n: Items, JSON and Expressions, Explained by Doing28 steps · ~9 min · nothing touches your real accounts

Do it for real

Now repeat it in your own account. Tick each step as you go.

Downloads

Quick check

3 questions to check you’ve got it.

1. Edit Fields receives 5 items. How many times does it run?

  • Once
  • Five times, once per item
  • It depends on the trigger
Show the answer

Five times, once per item. Most nodes run once per item, which is why one expression gives a different answer for every record.

2. What does {{ $json.client }} mean?

  • The word client
  • The current item's client field
  • The first client in the list
Show the answer

The current item's client field. $json is the current item. .client is its field.

3. You type {{ $json.amount * 0.02 }} into a Number field and it turns into ". 002". What went wrong?

  • Number fields only take digits until you switch the value to Expression
  • The amount is text
  • You need a Code node
Show the answer

Number fields only take digits until you switch the value to Expression. Point at the value and click Expression first, then type or paste the formula.

Up next · Module 4

n8n: Execute step, Execute workflow and Publish

You can read and shape data. Next, the three buttons that run it: Execute step, Execute and Publish.

Start module 4 →