Disable defaulting expression to $json instead of $("Specific selector')

Describe the problem/error/question

The most annoying feature in n8n is the way it defaults new expression values to a generic $json.item selector instead of the specific selectors.

Then you add another node with similar data, and have to go back and manually fix all the previously defined $json ones.

I have no idea why this is a thing in the first place as it makes the whole workflow-creating process a complete pain.

Is there a way to make n8n automatically add specific selectors for each item from the schema?

What is the error message (if any)?

None

Please share your workflow

Share the output returned by the last node

Information on your n8n setup

  • n8n version: 1.81.4
  • Database (default: SQLite): SQLite
  • n8n EXECUTIONS_PROCESS setting (default: own, main): own, main
  • Running n8n via (Docker, npm, n8n cloud, desktop app): N8N Cloud
  • Operating system: Idk, its cloud

You’re calling $json.item useless. I feel as though you don’t have much n8n experience. If you did, you’d realize that it’s setup like that for a reason. It allows for more intricate data control and a lot more customization. This is why people pick n8n over make and zapier.

What’s the benefit of using such selector instead of $(“My Node”).item.json???

Bumping, still annoyed by this and it keeps breaking all my automations after I make changes

A clear example of what I mean. I added a node between this and the previous Node, and completelely broke my whole automation due to this dumb defauling to a generic $json selector.

Now I have to manually fix everything. Thanks n8n!

I share in your frustration here. I’d love the option to turn relative node references off, and force all node references to be absolute.