Series 01 Episode 04 πŸš€ n8n Knowledge for Beginners πŸš€

The trigger has started the workflow. What's next? Data begins to flow between nodes. The first surprise for most beginners: a node doesn't receive a single record, it receives a list.

Every node in n8n takes in and returns items, meaning an array of elements. One item is one "portion" of data, for example one email, one spreadsheet row or one order.

Why a list instead of a single record?

Because automations rarely work on just one element. You pull 50 rows from Google Sheets and want to pass each one along. Without the items model, you'd have to build loops by hand. In n8n, most nodes do this for you: if a node receives 50 items, it runs its operation 50 times, once for each. That's why you usually don't need a separate loop node.

What does an item look like?

JSON: the main part of every item. It's an object with fields, e.g. name, email, amount. These are the fields you reference in expressions, e.g. {{ $json.email }}.

Binary: a separate part of the item reserved for files (PDF, image, email attachment). A file doesn't fit in JSON, so n8n keeps it alongside, under its own field name (by default "data"). Only the metadata stays in JSON, while the actual file content lives in binary. One item can hold both, for example invoice details in JSON and a PDF file in binary.

Watch out for:

  • A node returned 0 items? The following nodes won't run. The workflow stops "silently".
  • A node returned 10 items when you expected one? The following nodes will run 10 times (e.g. send 10 emails). To combine everything into a single item, use Aggregate, and the opposite action is Split Out.
  • The $json expression refers to the current item. To get data from other nodes, use $('Node name').

Upcoming meetups and workshops are listed in the Events section.

← Back to the knowledge baseShare on LinkedIn (opens in a new tab)