GenerateAnalyticsReportUrlRequest
Request model for uploading a previously fetched analytics dataframe as a CSV attachment.
Callers pass the columns + data they got back from fetch_analytics
verbatim, plus the TabularMetadata they derived from the result — the
metadata's title doubles as the CSV filename, and its display /
per-column display_type / axis_labels drive client rendering. The
caller (typically conversational) owns these display decisions because the
analytics action context lives there.
Leave tabular_metadata.attachment_id unset (None) in the request — it
is generated server-side and returned in the response.
- columnsType: array of string 1…200required
- dataType: array of array …100000required
- tabularType: TabularMetadata
Metadata requiredProperties: 7Display + column contract attached to a CSV attachment.
columnsis optional — legacy producers (markdown-only tool path) emit metadata without per-column info; in that case the client falls back to the original flow.attachment_idis set by producers when packaging chat responses so the client can call /filter without parsing markdown links.

