Hi everyone,
I wanted to share a little discovery that cost me 3 days of headaches
— hopefully it can save others some time.
The problem:
When using Split In Batches to process items one by one, I noticed something strange:
My Notion records (or other actions) were always taking the data from the first item only, even if multiple distinct events/items were coming from my trigger.
Why this happens:
Nodes further down the workflow were still pointing directly to the Trigger node (e.g. Google Calendar). Since n8n “reuses” item 0 from the trigger, it looked like every batch iteration was sending the same data.
The solution (super simple!):
Right after Split In Batches, inside the loop, add a tiny Code node with:
return items;
This node “re-emits” the currently active batch item as the local reference.
From there, just use this Code node as your data source (instead of the Trigger).
Result: each item finally carries its own data correctly ![]()
Quick recipe:
-
Trigger (e.g. Google Calendar)
-
Split In Batches
-
Code node →
return items; -
Your requests (HTTP, Notion, etc.) → everything works perfectly
Hope this helps anyone stuck with the same issue.
For me, this tiny trick completely unblocked my workflow ![]()
