Upsert Supabase from RSS feed data

Dear community, is there an easier way to check for updates from an RSS feed by upserting Supabase?

The feed items come in as an array which is why I am iterating these, but then I need to loop over these to go over each item and check for it in Supabase one by one. If I would skip the loop node, let’s say my array has 100 items, then after the Supabase node, I would only have 99 (assuming one is new). And right now I am processing them one by one and if an error happens (record not found due to a new item) then I am creating the record in Supabase and pingin in Slack.

Is there an easier way to use this upserting mechanism? I am still quite new to n8n and would appreciate any help!

Thanks in advance!

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:

Not relevant — Is nobody able to help out?

Please provide some sample input data in JSON.

Put it in a code block like this

I’ll try to improve the workflow and explain to you how it works.

But you don’t need the Loop node in that case.
When you split an array you get a list of items:

The workflow will process all those items one by one, without the need for a Loop node.

If my reply answers your question, please remember to mark it as a solution.

Hi, thanks for getting back to me, this is my total flow

This should work just as well as when using the loop node. Except it will be faster.

Or even this, if you’re not gonna use the FALSE branch for anything:

Appreciate your effort, unfortunately this doesn’t really solve my initial problem. please see this loom: Google Chrome - 4 March 2025 | Loom

Thank you!

Oh, I see. It’s clear now.

  1. Go to your Supabase “Get row” node and click the Settings tab.

  2. Enable “Always output data”

What this will do is return an empty array when the item is NOT FOUND.

Then you can use the Filter node to only advance the empty items.

When upserting, retrieve the value from the RSS feed node, because the value from Supabase is empty.

Let me know how it goes!

Sorry I am still quite new to n8n and don’t really get it to be honest.

I had the output data even if empty setting turned on before. How exactly do I process the empty ones? Since in my example from 10 items there is only 1 left

When you turn on the option “Always output data”, if 10 items get in, 10 items will also get out.

Can you confirm that behavior from your Supabase node, please?

Unfortunately that is not the behavior but inestead it returns an empty array in the case of not finding one and if some are found the others are being ignored and only the found ones are being returned. That’s my main point why i did it the way i did it, to take each item one by one and loop through them.

Oh, I see. Yeah you are right. That’s the expected behavior.

After taking a closer look, here’s a better approach.
I’ve replaced the FIlter node for a Merge node that keeps the Non-matching items.
See how it keeps only the items that were not found in Supabase:

.
Let me know if this approach works for you!

:point_right: If this solves your issue, please remember to mark it as the solution.

1 Like

You are amazing! Thank you so so much for solving this annoying issue once and for all! I really appreciate it!

1 Like

No problem! I’m glad it worked

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.