- Integrations
- /
- Supabase
- /
- Actions
- /
- Upsert Row
ActionSupabaseUpdated May 2026
How do I upsert a row in Supabase?
Short answer: Drop the "Supabase → Upsert Row" action anywhere in your workflow, map the inputs from upstream nodes, and publish.
Inputs
The fields this action accepts.
Every field can be mapped from an upstream trigger, AI step, table row, or hard-coded literal.
| Field | Type | Required | Description |
|---|---|---|---|
Table Name table | string | Required | Table Name. Example: users |
Row Data (JSON) data | string | Required | Must include the primary key or unique column for conflict resolution |
On Conflict Column on_conflict | string | Optional | Column to match for upsert (typically the primary key) |
Sample request
{"table": "e.g. users","data": "{\"id\": 1, \"name\": \"John\", \"email\": \"john@example.com\"}","on_conflict": "e.g. id"}
Returns
[{"id": 1,"name": "John","email": "john@example.com"}]
Use these fields in downstream nodes for routing, logging, or error handling.
Triggered by
Apps that pair well as the trigger for Upsert Row.
Any of these apps can fire this action as part of a workflow.
FAQ
Questions about Upsert Row.
What does the Upsert Row action do in Supabase?
Inserts a row, or updates it if a conflict occurs on the primary key or a unique constraint. The right tool for idempotent sync flows from another source-of-truth system.
What inputs does Upsert Row require?
Required: Table Name, Row Data (JSON). Every input accepts a static value or a variable from any upstream node in your workflow.
Can I use dynamic inputs from earlier workflow nodes?
Yes. Any field on this action can pull values from upstream nodes, whether that's a form response, a trigger payload, an AI output, or a lookup result.
What happens if Supabase returns an error?
The workflow pauses on the failed node, the error message is captured in the run log, and you can retry the run with one click. Auto-retry policies are configurable per workflow with exponential backoff up to 5 attempts.
Does Upsert Row support batch operations?
Yes. Run Upsert Row inside a Loop node to process arrays. Tiny Command handles Supabase's rate limits automatically so you don't have to throttle manually.
More actions
Other Supabase actions.
Action
Call Function (RPC)
Calls a Postgres function (RPC) defined in your Supabase database with the supplied JSON arguments. The escape hatch when typed table operations don't express the business logic you need.
ActionDelete Rows
Deletes rows from a Supabase table that match a filter (eq, neq, gt, in, like, etc.). PostgREST requires at least one filter, so empty filters are rejected as a safety guard.
ActionInsert Row
Inserts a new row into a Supabase table with the supplied field values. Respects table RLS policies based on the API key in use.
ActionSelect Rows
Selects rows from a Supabase table with optional filters, order, and limit. Supports joined selects via the PostgREST embed syntax (e.g. *, author(name)).
ActionList Tables
Lists all tables in a Supabase database (from the public schema) with their column metadata. Used to dynamically populate table pickers and column dropdowns.
ActionUpdate Rows
Updates rows in a Supabase table that match a filter. PostgREST requires at least one filter, so empty filters are rejected to prevent accidental table-wide updates.
Send upsert row from your workflows.
Triggered by anything in the catalog. Free tier available. No credit card.