Update Rows

supabase.update
ActionDatabases & warehousesconnection required

Calls the Supabase API with the connection's credentials.

Update every row a filter matches and return the updated rows. At least one filter is required, because PostgREST accepts an unfiltered PATCH and would rewrite the whole table.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Supabase
Secret shape
the project API key, or {"api_key": "…"} / {"service_role_key": "…"}
Config it needs
base_url, schema
Resolved by
config.connection_id, else node.connection_id

Configuration

4 fields, 3 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
table
The table or view to act on, in the connection's schema.
stringYes——orders
values
Columns to set, as an object of column name to new value. Columns not named here are left alone; at least one column is required, because an empty PATCH body changes nothing.
objectYes—≥ 1 characters{"status":"shipped"}
filters
Rows to update — at least one filter is required. PostgREST filters as a list of objects, e.g. [{"column": "status", "operator": "eq", "value": "active"}, {"column": "id", "operator": "in", "value": [1, 2, 3]}]. Supported operators: eq, neq, gt, gte, lt, lte, like, ilike, match, imatch, in, is, isdistinct, fts, plfts, phfts, wfts, cs, cd, ov. Add "negate": true to invert one filter (not.eq). Values for 'in' take a list; 'is' takes null, not_null, true, false or unknown. An expression may also supply a plain {"column": value} object, which is shorthand for equality on each key.
arrayYes—≥ 1 characters; array of object[{"column":"id","operator":"eq","value":1}]
schema
Postgres schema for this call (sent as Accept-Profile / Content-Profile). Overrides the connection's schema; leave blank for the connection default.
stringNo———

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "filters": [
    {
      "column": "id",
      "operator": "eq",
      "value": 1
    }
  ],
  "table": "orders",
  "values": {
    "status": "shipped"
  }
}

Output

One shape.

result

FieldTypeExample
table
The table the call was made against.
string—
items
The rows PostgREST returned (Prefer: return=representation).
array—
count
How many rows were returned.
number—
{
  "count": 0,
  "items": [],
  "table": ""
}

Notes

  • A service_role (or sb_secret_…) key has BYPASSRLS and skips every Row Level Security policy on the project; an anon/publishable key is filtered by them.
  • An update with no filter is refused rather than sent: PostgREST would happily rewrite every row in the table.

See Update Rows run in a workflow.

In a technical demo we add the Supabase connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.