As I understand it, your setup looks correct, but I have a few questions to understand your situation better. What type of questions are you asking the chat agent? When you mention ‘struggling,’ could you provide some more detail, such as what exact error message you are getting? How many columns are you asking it to return per row? If you’re asking for all fields on each asset, trying a narrower ask (like just asset name and status) might work better. Could you also provide us with the general structure of the dataset (for example how many rows)?
Dataset holds asset maintenance status (500k rows)
Dashboard visualises & tracks maintenance
Prompting
‘For x region, return the unmaintained assets by branch’
This works well - counts straight back in the chat
‘For x branch, return a table of the unmaintained assets ready for export’
This does not work well - too many rows
Gets stuck in a loop thinking it can export to excel and failing
I’ve added the below to the Agent Instructions, but it feels a bit clunky still
Data Exports
For up to 200 rows: Use an in-chat table (users can download the in-chat table). State the row count.
If a request would return more than 200 rows: State how many rows it would be and offer to (a) narrow it down to the top N in chat, or (b) point them to the dashboard export.
If a dashboard export won't meet the need: Tell the user plainly that it requires a feature request rather than attempting a workaround.
You cannot generate CSV, Excel, or downloadable files. Never claim you can, and never promise a file you cannot produce.
What I’m looking for is guidance on how other people have been able to get Quick Chat Agents to generate consistent csv or xlsx exports from the chat window.
This is the typical action pattern my users will take
Thanks for the additional details! The short version is that a chat agent on a Topic is built to reason over your data and return analytical answers, not to act as a bulk row-level extract tool, so the behavior you are seeing is expected. When you ask for aggregated results like “unmaintained assets by branch, counted,” the agent generates SQL, gets a compact result set back, and answers cleanly. When you ask it to hand back a full table of individual rows “ready for export,” it runs into a ceiling, topic queries truncate their results, and I believe that spice datasets are not directly queryable by chat agents, so there is no path for the agent to return 1 to 2k full rows. That truncation, plus the model then trying to produce a file it cannot generate, is the loop you are hitting.
On the export mechanism itself, when the agent does render a result as a table, that table is stored as an artifact, and you can open it with “View more” below the response and download it as CSV or Excel from the artifact panel. As per my understanding, the agent does not create the file itself, it renders the artifact and quick handles the download, which is why keeping the ask small enough to return an actual table artifact is the reliable in-chat pattern.
For the row-level export your users actually need, the dashboard is the right tool rather than the chat window: a table or pivot visual filtered to the branch, exported via Export to CSV or Excel, will return the full row set well beyond what chat can surface.
Here’s a screenshot for the export option I mentioned above.