Pipedream Supabase steps in n8n
Updated 2026-10-21 · 3 min read · n8n: Supabase (Native n8n node)
Supabase steps in Pipedream are usually small: insert a row, select a row, call an RPC. n8n has a native Supabase node for row operations, and the REST API behind it is the same one Pipedream used, so the move is mostly about keys and permissions.
The n8n Supabase node
n8n-nodes-base.supabase, resource Row: Create, Delete, Get, Get All, Update. It works on the public schema by default; turn on Use Custom Schema for others. There is no Supabase trigger node.
What maps where
Pipedream (app supabase) |
In n8n | Status |
|---|---|---|
| Insert Row | HTTP Request POST {SUPABASE_URL}/rest/v1/{table} with Prefer: return=representation |
automatic |
| Select Row | HTTP Request GET /rest/v1/{table}?{column}=eq.{value}&order=…&limit=… |
automatic |
| Batch Insert Rows, Delete Row, Count Rows | Supabase node (Row → Create / Delete / Get All) or HTTP Request | manual |
| Remote Procedure Call | HTTP Request POST /rest/v1/rpc/{function} |
manual |
| New Row Added (source) | Postgres Trigger on the Supabase database, or a Database Webhook → n8n Webhook | manual |
| New Webhook Event (Instant) | n8n Webhook node; point the Supabase webhook at its URL | manual, change URL |
The converted HTTP Request nodes use the Supabase predefined credential (it adds the key headers) and read the project URL from the variable SUPABASE_URL. Filters, ordering and limits from the Pipedream step are carried into the query string, so the result is the same array of rows.
Credentials
- In n8n: Credentials → New → Supabase API.
- Host: the Project URL, without
/rest/v1. - Secret Key: a secret key (
sb_secret_…). It acts asservice_roleand bypasses RLS, like a server-side key should. - Alternative: OAuth2. n8n then creates a key named
n8n_managed_data_apiin your project; do not delete it.
Supabase is retiring the legacy anon and service_role JWT keys by the end of 2026. Pipedream workflows built on them will need new keys anyway, so put the new secret key into n8n from the start.
Typical migration: signup to CRM
Pipedream: HTTP trigger → Supabase Insert Row → Slack message.
n8n: Webhook → Code (trigger) → HTTP Request (Supabase insert) → HTTP Request (Slack). Set SUPABASE_URL, create the Supabase and Slack credentials, change the webhook URL in the signup form.
Pitfalls
- RLS. Empty results with no error almost always mean the key is a publishable/anon key and RLS filters the rows.
- Self-hosted Supabase in Docker. If n8n and Supabase run as separate containers on one Docker network, point n8n at the Kong container (for example
http://supabase-kong:8000), not atlocalhost. - JSON columns. To filter on a JSON field, use the
->>operator syntax in the filter. - No instant trigger. Pipedream's New Row Added watched the table for you. In n8n the most reliable replacement is a Database Webhook in Supabase calling an n8n Webhook node.
- Pagination. Select returns at most the API's row limit; for big tables page with
limitandoffsetor a range header.
How to move your Supabase workflows
- Export the workflows from Pipedream.
- Upload on /convert for the free report (status per step, credentials, variables such as
SUPABASE_URL). - Download the n8n JSON: 1 workflow is free; full export: $3 per workflow, $19 minimum — coming soon.
More: Pipedream to n8n migration guide, code step checker for steps that use @supabase/supabase-js. Related: PostgreSQL, Airtable, OpenAI.
FAQ
- Which Pipedream Supabase actions convert automatically?
- Insert Row and Select Row. They become HTTP Request nodes against the Supabase REST API (PostgREST) with the n8n Supabase credential; the project URL is a variable.
- Is there a Supabase trigger in n8n?
- No. Use a Supabase Database Webhook that posts to an n8n Webhook node, or the Postgres Trigger node against the Supabase database.
- Why does my n8n Supabase node return empty results?
- Usually Row Level Security. With a publishable (anon) key RLS applies; a secret key bypasses it. n8n's common-issues page lists this first.
- Do I need to change keys?
- Supabase deprecates the legacy anon and service_role keys by the end of 2026. Use the new secret key in the n8n credential now so you do not migrate twice.
Related
Sources
- https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.supabase/
- https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.supabase/common-issues/
- https://docs.n8n.io/integrations/builtin/credentials/supabase/
- https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.postgrestrigger/
- https://pipedream.com/apps/supabase
- https://supabase.com/docs/guides/api/api-keys