Hi @Panupol_Sonnuam, does your spreadsheet have a column with a unique identifier? If so you, could simply add another column keeping track of already “processed” rows.
When you run your workflow in intervals you can then simply filter out all rows with a non-empty “processed” value using the IF node.
Edit: I’ve posted an example workflow showing this approach at https://n8n.io/workflows/1754/.
Or you could keep track of your processed items in a separate sheets. This workflow does something similar but is using Grist instead of Google Sheets: Monitoring RSS feeds with Grist and Telegram: lot of duplicates - #2 by MutedJam. The basic idea is be the same though.