The idea is:
Add an “Upsert” operation to the native Supabase node (Database resource).
The new option would behave like INSERT … ON CONFLICT DO UPDATE, exposing two extra fields:
- Conflict Column – the unique/PK column(s) (e.g.
domain,email) - Ignore duplicates –
true➜ skip;false➜ merge (PostgRESTresolution=merge-duplicates)
It would mirror the Insert → Additional Options → Upsert UX already available in the Postgres and MySQL nodes.
My use case:
I scrape ~25 k companies per day and write them to Supabase tables that have unique keys (companies.domain, contacts.email).
Plain “Insert” throws a 409 duplicate-key as soon as the same company shows up again, halting the entire workflow.
Upsert would let me:
- merge new data (e.g.
validated_attimestamp) into existing rows - avoid try/catch wrappers or custom HTTP nodes with
Prefer: resolution=merge-duplicates - keep the workflow entirely inside n8n’s low-code UI
I think it would be beneficial to add this because:
- Reliability – eliminates common 409 errors for anyone using unique constraints.
- Ease of use – non-technical users don’t need to know PostgREST headers.
- Parity – other DB nodes already expose Upsert; Supabase is the odd one out.
- Performance – fewer round-trips (no pre-SELECT to check existence).
Any resources to support this?
- Supabase / PostgREST docs – Upsert via
Prefer: resolution=merge-duplicates
API — PostgREST 14 documentation - n8n Postgres node implementation (Upsert option) – could be a blueprint for Supabase node.
Are you willing to work on this?
I’m happy to beta-test the node and provide sample workflows/logs, but I’m not familiar with the n8n core codebase to submit a PR myself.