create_dashboard
Create or update a saved dashboard for a Bridge Town project. Generates chart HTML from a completed model run output, stores it in S3, and persists a Dashboard record. Requires Editor or Owner access to the project. output_key selects a key from the run’s outputs dict — the same dict your model writes to /outputs/. When a model writes a JSON file such as /outputs/chart_data.json, the run’s outputs dict stores it under the full filename including the extension (e.g. outputs[‘chart_data.json’] = {…}), so pass output_key=‘chart_data.json’. Supported chart types and required data schemas: bar/expense_breakdown — {categories, values}; line/headcount_timeline — {x, y} or {x, series:[{name, values}]}; table/data_grid — {columns, rows}; waterfall/revenue_waterfall — {labels, values}; cash_flow_projection — {months, actual?, projected?}. Returns: dashboard_id (str) — stable UUID for follow-up calls; dashboard_name (str) — dashboard identifier; project (str) — project name; chart_type (str) — chart type used to render the HTML; model_run_id (str | null) — UUID of the source model run; has_html (bool) — whether the HTML was stored successfully in S3; created (bool) — true when a new dashboard was created, false when an existing dashboard was updated; created_at (str) — ISO-8601 creation timestamp; updated_at (str) — ISO-8601 last-update timestamp. Call share_dashboard afterward to generate a shareable URL.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
project_name | str | Yes | — | |
dashboard_name | str | Yes | — | |
chart_type | str | Yes | — | |
model_run_id | str | Yes | — | |
output_key | str | Yes | — | |
description | `str | None` | No | None |
subtitle | str | No | '' | |
currency | str | No | 'USD' |
Returns
Section titled “Returns”Returns a structured object. Top-level fields:
dashboard_id(string)dashboard_name(string)project(string)chart_type(string)model_run_id(string)has_html(boolean)created(boolean)created_at(string)updated_at(string)
See the response example below for the full payload shape.
Example
Section titled “Example”Tool Call
Section titled “Tool Call”{ "name": "create_dashboard", "arguments": { "project_name": "forecasts", "dashboard_name": "Q4 Revenue", "chart_type": "bar", "model_run_id": "66666666-6666-6666-6666-666666666666", "output_key": "quarterly_revenue.json", "description": "Quarterly revenue breakdown", "subtitle": "FY2026", "currency": "USD" }}Response
Section titled “Response”{ "dashboard_id": "77777777-7777-7777-7777-777777777777", "dashboard_name": "Q4 Revenue", "project": "forecasts", "chart_type": "bar", "model_run_id": "66666666-6666-6666-6666-666666666666", "has_html": true, "created": true, "created_at": "2026-04-28T10:00:00+00:00", "updated_at": "2026-04-28T10:00:00+00:00"}- Module:
Dashboards - Requires authentication via API token or Auth0 JWT.