# Items and Expressions — AI Automation with n8n

Source: https://www.geekswithgeeks.com/en/n8n-ai-automation/basics-items-expressions

> Understand that data moves as a list of items and read values with expressions.

## A list of JSON items

Data between nodes is a **list of items**, and each item is an object with a `json` field. A node usually runs once **per item**. In any field you can write an **expression** in double curly braces: `{{ $json.email }}` reads a field from the current item, and `{{ $("Webhook").item.json.name }}` reads from an earlier node.

## Items and expressions

Three items mean the next node runs three times. Expressions are JavaScript, so you can transform values inline.

```text
Items flowing out of a node:
  [ { json: { name: "Asha", total: 1200 } },
    { json: { name: "Ravi", total: 8000 } },
    { json: { name: "Meera", total: 450 } } ]

Expressions in the next node:
  {{ $json.name }}                       -> Asha, Ravi, Meera (one run each)
  {{ $json.total * 1.18 }}               -> total with 18% tax
  {{ $json.name.toUpperCase() }}         -> ASHA, RAVI, MEERA
```

## Check the Input panel

When an expression fails, open the node and look at the INPUT panel: field names are often different from what you assumed (`Name` versus `name`), and you can drag a field into an expression to get the exact path.

**Quiz:** A node receives 3 items. How many times does it normally run?

- [ ] Once for all items together
- [x] Three times, once per item
- [ ] Never
- [ ] Exactly ten times

*Answer:* Three times, once per item. Most nodes run once for each incoming item, though some can process all items together.
