The discussion is about fetching rows one at a time from a Google Sheet at regular intervals using n8n automation

Hi everyone,

I have a Google Sheet with 50,000 rows. I want to get the rows one at a time and send the values to the next node.

My goal is to fetch one row from the Google Sheet every hour if the trigger is set for 1 hour. So, each hour, it should move to the next row.

It looks like your topic is missing some important information. Could you provide the following if applicable.

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

What I do is add a column to my sheet called ‘Status’. Using a ‘Get rows(s)’ operation, look for the next row that has the status ‘new’ - by default it will return only one row (unless you tell it otherwise in the options). After processing, set the status for the current row to ‘done’.

Now, your workflow will always pick one row to process every time you run it.

image

PS: Having 50k rows in a Google Sheet is a good indication you should actually be using a real database :wink:

But how does this guarantee that it will not get all the rows with “new” status? I also want to know how to have it read one row at a time as opposed to calling all the rows at once

By default, this node will return one row. If you need more, you can enable the ‘When Filter Has Multiple Matches’ option. See the documentation here.