Resources · n8n integration

Supabase n8n integrationAutomate Supabase with n8n.

A Supabase table makes a solid memory for a workflow. The Supabase n8n integration exposes one resource, Row, and 5 operations to create, read, update and delete records. There is no Supabase trigger, the node type that starts a run by itself, so the workflow opens elsewhere and writes here.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the Supabase n8n integration cover?

The Supabase node ships with n8n and deals with one thing: the rows of your tables. It adds, reads, updates and deletes records through the Supabase Data API, using a credential, that is an access you save once in n8n and reuse everywhere. One resource, Row, 5 operations, and a table picker that loads the list straight from the project.

A contact list that fills itself. A form arrives through the Webhook node, an n8n URL that an outside service calls, Get many rows checks whether the address is already stored, and Create a row writes the record. The shared spreadsheet that three people edit at the same time drops out of the process.

A Monday export ready before the coffee. A Schedule Trigger fires at a fixed hour, Get many rows pulls the table with Return All switched on, and the records land in Google Sheets for the people who live in spreadsheets.

A status that follows the customer. Payment settled, ticket closed, plan cancelled: Update a row rewrites the matching record and Slack carries the notice. Delete a row handles the other end of the cycle, the staging rows and the accounts that asked to disappear.

The node stops at rows. For the rest of the Supabase API, the interface a program uses to talk to the service, the HTTP Request node takes over: it calls any endpoint while reusing the same credential through predefined authentication, so there is no second key to look after.

Two traps come back often. A table created in the public schema with the Table Editor has Row Level Security on by default, and until a policy exists the API returns nothing to the public anon key, so records that answer fine through the Postgres node stay invisible here. Filtering on metadata needs Select Type set to String and the condition written in Filters (String), like metadata->>age=gte.21.

Still weighing the platform itself? The n8n review goes through the tool, and the n8n training is the other door for building these workflows hands on.

Connect

How do you connect Supabase to n8n?

  1. 01

    Enable the Data API and copy the project URL

    Open the Supabase dashboard, select the project to automate, then go to Integrations, Data API. The credential talks to the project through that Data API, so it has to be enabled first. Copy the Project URL and paste it into the n8n Host field without the /rest/v1 path at the end: https://your_project.supabase.co works, the version ending in the path does not.

  2. 02

    Create a secret key

    Still in the dashboard, head to Project Settings, API Keys. Create a key or reveal an existing one, then paste it into Secret Key in n8n. The Supabase credential authenticates with an API key, so those two fields are all it asks for. A credential still carrying a legacy service_role secret keeps working, but Supabase is retiring legacy keys and switches them off at the end of 2026.

  3. 03

    Save the credential and pick a table

    Save the credential once in the n8n Credentials menu and every Supabase node in every workflow finds it in its dropdown. Drop the node on the canvas, select the credential, choose the operation, and Table Name or ID loads the list of tables from the project. When the table name comes from an earlier step instead, switch the field to an expression, a value from another node, such as {{ $json.table }}.

Actions

What can the Supabase node do?

The Supabase node exposes 5 operations across 1 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreateGetGet ManyUpdateDelete
Row✓✓✓✓✓

Row

5 operations
01

Create a row

row.create

What you see in n8n

Notes & use cases

Create a row adds a record to the chosen table, filled with the incoming item's values. It closes a branch that produced something worth keeping.

Key parameters

  • Table Name or ID: the destination table, picked from the list n8n loads from the project, or an expression when the name travels in the data.
  • Data to Send: Auto-Map Input Data to Columns reuses properties whose names match the columns; Define Below for Each Column sets each value in Fields to Send.
  • Inputs to Ignore: properties to keep out, comma separated, empty sends the lot.
Use cases
a demo request lands in the leads table with its source, ready for follow-up.
02

Delete a row

row.delete

What you see in n8n

Notes & use cases

Delete a row removes the records that match the conditions you set. Nothing is selected by position or by name, only by the filter you build.

Key parameters

  • Select Type: Build Manually opens Select Conditions, where each condition names a column and a value; String expects a raw condition in Filters (String), written like name=eq.jhon.
  • Must Match: All Select Conditions deletes only the records that satisfy every condition, Any Select Condition is enough with a single match.
Use cases
clearing the rows a staging workflow left behind, or removing a contact once the retention period your team set has run out.
03

Get a row

row.get

What you see in n8n

Notes & use cases

Get a row reads one record and hands it to the rest of the workflow. It is the lookup before a decision: fetch first, branch after.

Key parameters

  • Select Conditions: the conditions that single out the record, added one by one in the interface, since this operation offers no String mode.
  • Use Custom Schema and Schema: untouched for a table in the default public schema; switched on to reach another schema, which Supabase has to expose in its API beforehand.
Use cases
reading the plan of an account before choosing which email goes out, or pulling an order to check its state.
04

Get many rows

row.getAll

What you see in n8n

Notes & use cases

Get many rows returns a set of records rather than one. Exports, recaps and loops over a table all start here.

Key parameters

  • Return All: on, n8n walks the pages of the API and brings back every matching record; off, Limit caps how many come back.
  • Order By: the column that sorts the result, created_at.desc for instance. Recommended with Return All or a Limit of 1000 and above, where records otherwise arrive twice or go missing.
  • Filter: None reads the whole table, Build Manually opens Filters, String expects Filters (String), and Must Match picks between All Filters and Any Filter.
Use cases
the weekend recap sent out on Monday morning.
05

Update a row

row.update

What you see in n8n

Notes & use cases

Update a row rewrites the columns you list on the records that match. The record keeps its identity, only the values move.

Key parameters

  • Data to Send: Define Below for Each Column sets the new values in Fields to Send, Auto-Map Input Data to Columns takes the incoming properties whose names match the columns.
  • Select Conditions: which records get rewritten, built condition by condition, or expressed as a string in Filters (String) once Select Type is set to String.
Use cases
flipping a subscription status after a payment, or writing back the score an enrichment step produced.
Need help

Need help automating Supabase with n8n?

A person reads every message.

FAQ

Supabase and n8n, the questions that come next

01Is the Supabase n8n integration free?
The node costs nothing. It ships with n8n, so there is no installation and no extra fee on the n8n side, whether the workflow runs on n8n Cloud or on a self-hosted instance under the Community Edition and its Sustainable Use license. A workflow behaves the same way in both places. The credential is free to create too: one Host, one Secret Key, saved once and reused by every workflow that touches the table. What the Supabase project itself costs belongs to Supabase and is a separate conversation.
02Which credentials does the Supabase node need?
One credential, authenticated with an API key. Two fields to fill in. Host is the Project URL found under Integrations, Data API in the Supabase dashboard, pasted without the /rest/v1 path at the end. Secret Key is created or revealed under Project Settings, API Keys. The Data API has to be enabled on the project, otherwise nothing answers. A credential that still holds a legacy service_role secret keeps working for now, but Supabase is retiring legacy keys and disables them at the end of 2026, so planning the swap early saves a broken workflow later.
03What are the limits of the Supabase node in n8n?
It handles rows, and only rows: one resource and 5 operations, create, get, get many, update, delete. Anything else the Supabase API offers sits outside the node, and the HTTP Request node covers it by calling the endpoint directly while reusing the same credential through predefined authentication. On reads, Get many rows stops at Limit unless Return All is switched on, and with Return All or a Limit of 1000 and above the Order By field keeps records from arriving twice or vanishing. Row Level Security also decides what the API returns, so an empty result is not always an empty table.
04How do you trigger an n8n workflow from Supabase?
Not from the database itself: n8n has no Supabase trigger node, so the run always starts somewhere else. Three routes cover the ground. A Schedule Trigger runs at a fixed interval and Get many rows reads what is new, filtered on the column that marks fresh records. A Webhook gives n8n a URL that an outside service calls, and the workflow writes the row as the call lands. Or another tool triggers the run, a form, a payment, a message, and Supabase becomes the destination instead of the starting point.
05n8n or Make for Supabase?
Four criteria settle it. Hosting: n8n runs on your own server or on n8n Cloud, Make is hosted only. Data control follows from that, since a self-hosted instance keeps the records and the keys on your side. Cost model: Make bills per operation, which changes how you design a workflow that loops over a table. Visual logic: both draw the flow on a canvas, and the fit depends on how much you expect to write expressions yourself. For a project whose data already lives in Supabase, the hosting question usually weighs the most.