Export CSV from dynamic columns is missing CSV headers

Hi there, I've noticed for a few weeks that any time I export data to CSV from my tables with Dynamic Columns enabled, the first row of the CSV where the headers should be is blank. Whereas exporting data to CSV from a regular table does show the headers properly.

Here's one of my export CSVs from a table with dynamic columns enabled (some data removed). Notice how the first line is blank.


2378,,13255,3378,196,Abc,1,2018-01-09T10:04:09.000Z,2017-01-04T13:51:00.000Z,,1,,,0,kneo_world,,,,,
2379,,13257,3379,196,Def,1,2018-01-09T10:04:09.000Z,2017-01-04T15:00:52.000Z,,1,,,0,kneo_world,,,,,
2380,,13257,3380,196,Ghi,1,2018-01-09T10:04:09.000Z,2017-01-04T15:01:38.000Z,,1,,,0,kneo_world,,,,,

I'm hoping this is easy to reproduce, but let me know if I should add some more details. Thanks!

2 Likes

Hi @Jake_Strang Thanks for reaching out! This is reproducible on our side as well :disappointed: I'll let you know when we're able to ship a fix for this bug!

2 Likes

Any updates on populating the headers when dynamic columns are involved

Not yet :disappointed:

seems there's a trivial workaround - change the 'export' behavior to export the results of the datasource that feeds your table.

1 Like

Any updates or workarounds here? We're blocked on this as well.

Hi @neelchanda no updates yet :disappointed: The best workaround I can think of is @Eshed_Gal-Or's suggestion of changing the export behavior to pull results from a query or transformer

You advertise it right here. Any chance of this getting fixed? Export works but it's missing headers for dynamic columns on CSV, TSV, and Excel formats. And you've known about this for 1.5 years. This is about a 5 minute fix.

Seriously what is the deal with the constant issues, incredibly slow replies, and overall ineptitude at Retool? Can you please open source your components so we can actually deploy fixes? This is ridiculous.

Adding a bit of context to an older thread:

Using source data for the table export isn't always possible if you have used any filters. A simple process I use (regardless of how effective the OOTB options are/aren't) is to call upon the async await getDisplayedData() function of the table and then use the utils.exportData() function instead of the utils.downloadFile() function in a query.

let reportData = await reportTable.getDisplayedData()
utils.exportData(reportData, "reportOutput", "csv")
return reportData

This gives me my export in the desired format with not only the header information, but also what is actually shown on the table at the time.

4 Likes

Thank you for this workaround.

1 Like

Hi @offpath,

Thanks for checking in on this topic, and thanks for editing your post. We definitely welcome honest feedback—positive or critical—but ask that folks keep things respectful so we can keep this space constructive. On the product feedback side, I hear you, and while I don't have the update that you're looking for yet, I wanted to at least share some context. As of today, this bug is in our backlog and isn't currently being prioritized over other engineering projects. I will share your feedback with the team and check if this can be reprioritized, but I can't make any promises. Thanks so much for sharing your workaround, @pyrrho :pray:

Prioritization for bugs is a balance across urgency of the request, the amount of customer interest, whether there are workarounds, team capacity, and alignment with our broader product vision. The team that owns the component library recently reviewed the list of table requests and shipped fixes for some of the most high priority issues. Our broader product roadmap balances core product stability with new features that address the challenges of developing in an increasingly AI-driven world.

As for open source for our components, this is not on our roadmap currently. We offer the custom React component as an escape hatch for cases where our component library doesn't meet customers' needs. Maintaining our components in house allows for better stability and compatibility with other Retool features.

1 Like

I want to point out it's not simply this one feature.

I continuously find things that don't work as expected or Retool pushes out a change and breaks existing features. I've only opened posts on a small handful of the numerous issues I encounter every single day with Retool, because it's clear that it's more efficient to simply find a workaround than waiting on a fixes to official components.

Hi @offpath,

Thanks for the additional context :disappointed: sorry to hear that has been your experience! Quality and stability of our core product are always a priority in our updates. For context, we update Retool Cloud a couple times a week and have internal processes in place to test and ensure breaking changes don't get shipped, but regressions can occasionally still happen.

If you feel that Retool is getting updated too frequently for your use case, one product option that you might want to consider is self hosting. There's tradeoffs to both Cloud and self-hosting. On Cloud, you get immediate access to new features, bug fixes, etc, but you may be more likely to experience an unexpected change, given the frequency of updates. On self hosted, you don't get access to public apps, you have to maintain your own infrastructure, and you have to wait longer to access new features & changes. At the same time, you get to review the changelog before upgrading and can decide when to initiate the update. If you switch to the self hosted route, we recommend the stable track, which gets a new version every quarter.