Retool Table Changes Not Saving to Supabase (Dropdown + Save Issues)

Hi everyone,

I’ve been trying to build a customer management dashboard using Retool and Supabase, but I keep running into the same issue that’s really slowing me down.

I connected my Supabase database, created a table in Retool, and set up editable columns like “Current Status”, “Payment Status”, and “Payment Method”. These columns use mapped dropdowns. The values load fine and I can select different options, but when I click the “Save” button, the values go back to their previous state — nothing gets updated in Supabase.

Here’s how I’ve set things up:

  • The table is connected to my Supabase customer_requests table.
  • I’m using mapped dropdowns with values and labels like {{ item.value }} and {{ item.label }}.
  • The updateRecords query uses “Bulk update via primary key” and is triggered by the table’s Save action.
  • The records to update are set to {{ table1.changesetArray }} and the primary key is customer_id.
  • After editing a cell, it shows "X changes" and the Save button appears.

Everything looks like it's working — but once I hit Save, the values just reset and nothing changes in the database.

I’ve tried:

  • Rebuilding everything from scratch (twice)
  • Rechecking the query config and bindings
  • Manually running the update query (it works fine)
  • Watching the console/network — no errors
  • Following community docs and examples

Still, I can't get Retool to save these edits. It's super frustrating because this should be one of the most basic things to work — change a value, click save, update the DB.

I also saw this post and it sounds similar. Is this a known issue or am I missing something obvious?

If needed, I can share a screen recording or the app export. I just want to understand if this is something on my end or a bug in Retool.

Thanks for any help.



1 Like

Hi there @Strive_Forward, and welcome to the forum.

Thanks for the screenshots, it helps troubleshooting.

The first thing that popped to my attention from the graph showing connections between queries, is that you haven't added added an event trigger to rerun the trigger underlying your table, which I guess is getCustomers.

Basically, your updateRecords query is successfully updating your back-end, i.e. supabase, but you need to reload that data to show it in your front-end, i.e. the query used to populate your table.

In a nutshell, add an event handler to your bulk update query that triggers your get Customers query and thar should show the updated data. If that doesn't work, would you mind sharing a screenshot of your console showing how these queries ran?

Thanks, Miguel!
You were spot on — the DB update was working, but the table wasn’t reloading the data.
We fixed it by wiring the table’s Save to a small script that triggers the bulk‑update query and, on success, refetches the table data: updateRecords.trigger({
onSuccess: () => {
getCustomers.trigger(); // reload table data
table1.clearChangeset(); // optional, clear pending edits
}
}); For anyone else hitting this:

  • table1 data source = {{ getCustomers.data }}
  • updateRecords = Bulk update via primary key with {{ table1.changesetArray }}
  • Primary key set correctly (we use id)
  • Mapped dropdowns write item.value, display item.label

After adding the success refetch, everything saves and displays correctly. Appreciate the help!

1 Like