Weavz

Dynamic Dashboards

Present tool outputs as read-only dashboards with charts, metrics, comparisons, and tables.

Dynamic Dashboards

weavz-dynamic-dashboard is an experimental built-in workspace integration for turning data gathered by other tools into a read-only dashboard. Agents can collect rows from Slack, Sheets, databases, HTTP APIs, storage, browser extraction, or custom code, normalize those outputs into named datasets, then call a dashboard action to profile, suggest, validate, or render a visual result.

The dashboard tool is a presentation primitive. It does not call other tools, fetch data, persist dashboards, create public share URLs, or grant new permissions.

When to use it

Use Dynamic Dashboards when an agent should show:

  • Metrics and comparisons from one or more datasets
  • Trends over time from date and numeric fields
  • Category breakdowns as bars, grouped bars, pie, or donut charts
  • Tables for high-cardinality or mixed data
  • A final report-style visual result after a multi-tool Code Mode run

If chart confidence is low, the tool falls back to a safe summary plus table or JSON view instead of inventing a misleading chart.

Add the integration

Use a stable alias such as dashboard:

json
{
  "integrationName": "weavz-dynamic-dashboard",
  "alias": "dashboard",
  "displayName": "Dynamic Dashboard"
}

Dataset shape

Pass data as an array of named datasets:

json
[
  {
    "id": "current_pipeline",
    "label": "Current Pipeline",
    "role": "primary",
    "source": {
      "alias": "crm",
      "action": "list_deals",
      "description": "Open opportunities"
    },
    "data": [
      { "stage": "Qualified", "amount": 42000, "createdAt": "2026-06-01" },
      { "stage": "Proposal", "amount": 78000, "createdAt": "2026-06-03" }
    ]
  }
]

Do not include credentials, raw request headers, tokens, cookies, or secrets in source or data. Sensitive field names such as password, token, secret, authorization, cookie, credential, and private_key are redacted by default.

Actions

ActionUse it for
profile_dataInspect data shape, field types, quality warnings, candidate dimensions, candidate metrics, and chart suggestions
suggest_dashboardGenerate a deterministic dashboard spec from datasets and intent hints
validate_dashboardCheck a custom dashboard spec and get blocking issues plus repair hints
render_dashboardReturn the final dynamic dashboard envelope and MCP UI metadata

Common rendering hints include title, description, intent, timeField, primaryMetric, primaryDimension, groupBy, compareBy, baselineDatasetId, maxRows, theme, and redactionMode.

Agent workflow

In Code Mode, the intended flow is:

  1. Use other aliases to collect data.
  2. Normalize each output into { id, label, data, source, role }.
  3. Call weavz.dashboard.profile_data or weavz.dashboard.suggest_dashboard when the data shape is uncertain.
  4. Optionally edit and validate the suggested spec.
  5. Call weavz.dashboard.render_dashboard as the final visual result.
javascript
const current = await weavz.crm.list_deals({ status: 'open' })
const baseline = await weavz.storage.read_file({ path: 'reports/last-week-pipeline.json' })
 
return await weavz.dashboard.render_dashboard({
  title: 'Pipeline Movement',
  intent: 'comparison',
  primaryMetric: 'amount',
  primaryDimension: 'stage',
  datasets: [
    {
      id: 'current',
      label: 'Current',
      role: 'primary',
      source: { alias: 'crm', action: 'list_deals' },
      data: current.deals,
    },
    {
      id: 'baseline',
      label: 'Last Week',
      role: 'baseline',
      source: { alias: 'storage', action: 'read_file' },
      data: JSON.parse(baseline.content || '[]'),
    },
  ],
})

Safety and limits

Dynamic Dashboards are ephemeral in v1:

  • No persisted dashboards
  • No public share URLs
  • No arbitrary HTML, CSS, JavaScript, iframe URLs, or remote chart definitions
  • No raw dashboard data in activity logs or spans
  • Maximum 10 datasets, 1,000 display rows per dataset, 20,000 display cells, 12 widgets, and a bounded dashboard envelope