> ## Documentation Index
> Fetch the complete documentation index at: https://darkbanner.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dashboards

> Build real-time dashboards and charts from the data your flows collect

Dashboards let you visualize the data sitting in your Zygo data tables. Your flows collect data during runs — form submissions, API responses, computed metrics, event logs — and dashboards turn that data into charts, tables, and summary cards you can share with your team.

## How It Works

**1. Flows populate data tables**

Your flows use **Table** nodes to write records during execution. Every form submission, API response, or computed result can be stored in a table.

**2. Create a dashboard**

Build a dashboard and add widgets. Each widget connects to a data table and visualizes the records within it.

**3. Data updates automatically**

As your flows run and write new records, your dashboard widgets reflect the latest data. No manual refresh needed.

## Creating a Dashboard

Navigate to **Dashboards** in the sidebar and click **New Dashboard**. Give it a name and start adding widgets.

Each tenant can have multiple dashboards. Use separate dashboards for different audiences, projects, or data domains — an ops dashboard for system health, a sales dashboard for lead tracking, a support dashboard for ticket metrics.

## Widgets

Widgets are the building blocks of a dashboard. Each widget connects to a data table and renders the data as a chart, table, or summary.

### Chart Types

> [card] Bar Chart
>
> Compare values across categories. Great for status breakdowns, counts by region, or period-over-period comparisons.

> [card] Line Chart
>
> Track trends over time. Use for metrics like daily submissions, error rates, or revenue growth.

> [card] Pie / Donut Chart
>
> Show proportions and distributions. Useful for category breakdowns like ticket priority, lead source, or status mix.

> [card] Area Chart
>
> Like line charts but with filled regions. Effective for visualizing volume over time or stacked comparisons.

> [card] Data Table
>
> Display raw records in a sortable, scrollable table. Use when the detail matters more than the trend.

> [card] Stat Card
>
> Show a single summary number — total records, average value, count of a status. Ideal for KPIs at the top of a dashboard.

### Configuring a Widget

Every widget is configured with a few core settings:

| Setting | Description |
| - | - |
| **Title** | The widget's heading, displayed above the chart |
| **Data Table** | Which table to pull records from |
| **Chart Type** | The visualization type (bar, line, pie, area, table, stat) |
| **Fields** | Which fields from the table data to use for axes, categories, and values |
| **Time Range** | Filter records to a specific window (e.g., last 7 days, last 30 days) |

## Connecting to Your Data

Widgets read directly from Zygo data tables. The data in those tables comes from your flows — typically written by **Table** nodes during flow execution.

### Example: Tracking Form Submissions

**1. Flow writes data**

A flow with a Web Form node saves every submission to a table called `contact_submissions`:

```json theme={null}
{
  "name": "Jane Doe",
  "email": "jane@acme.com",
  "source": "landing_page",
  "submitted_at": "2025-03-15T10:30:00Z"
}
```

**2. Dashboard widget reads it**

A bar chart widget connected to `contact_submissions` groups by `source` and counts records, showing you where leads are coming from.

### Example: Monitoring API Health

**1. Scheduled flow logs results**

A flow runs every 15 minutes, pings your API, and logs the response time and status to a table called `api_health`:

```json theme={null}
{
  "endpoint": "/api/users",
  "status": 200,
  "response_ms": 145,
  "checked_at": "2025-03-15T10:15:00Z"
}
```

**2. Dashboard visualizes it**

A line chart widget connected to `api_health` plots `response_ms` over `checked_at`, giving you a real-time view of API latency. A stat card shows the average response time over the last 24 hours.

## Designing Effective Dashboards

> [accordion] Structure your tables for visualization
>
> The easiest tables to visualize have consistent fields across records. When your flow writes to a table, make sure each record has the same shape:
>
> **Good** — every record has `status`, `priority`, and `created_at`:
>
> ```json theme={null}
> {"status": "open", "priority": "high", "created_at": "2025-03-15"}
> {"status": "closed", "priority": "low", "created_at": "2025-03-14"}
> ```
>
> **Harder to chart** — mixed shapes with inconsistent fields:
>
> ```json theme={null}
> {"status": "open", "priority": "high"}
> {"result": "success", "duration": 340}
> ```
>
> Use a **Table schema** to enforce consistency. See [Data Tables](https://darkbanner.mintlify.site/flow-nodes/table) for details.

> [accordion] Use stat cards for KPIs
>
> Place stat cards at the top of your dashboard for at-a-glance numbers:
>
> * Total submissions this week
> * Open tickets count
> * Average response time
> * Error rate percentage
>
> Below the stat cards, add detailed charts that let users drill into the data.

> [accordion] Include a date field in your data
>
> Most useful dashboards show trends over time. Always include a timestamp field (like `created_at` or `submitted_at`) in your table records so you can filter by time range and plot time-series charts.

> [accordion] One dashboard per audience
>
> Don't try to put everything on a single dashboard. Create focused dashboards for specific audiences:
>
> * **Ops dashboard** — system health, error rates, job queue depth
> * **Sales dashboard** — lead volume, conversion rates, pipeline by stage
> * **Support dashboard** — ticket volume, response times, open vs closed
> * **Executive dashboard** — high-level KPIs, stat cards, weekly trends

## Dashboard Permissions

Dashboards follow the same role-based access as all other tenant resources:

| Action | Required Role |
| - | - |
| View dashboards | **Viewer** |
| Create, edit, or delete dashboards | **Editor** |

All members of a tenant with Viewer role or above can see every dashboard in that tenant. There is no per-dashboard visibility control — if you need to restrict who sees certain data, use separate tenants.

## Common Dashboard Patterns

> [tab] Form Analytics
>
> Track form submissions across your flows.
>
> **Data source:** A table that your Web Form flows write to.
>
> **Widgets:**
>
> * Stat card: Total submissions this month
> * Line chart: Submissions per day over the last 30 days
> * Pie chart: Submissions by source (URL parameter or form field)
> * Data table: Most recent 50 submissions with name, email, date

> [tab] Ticket Tracker
>
> Monitor your team's ticket queue.
>
> **Data source:** The built-in tickets table, or a custom table your Ticket nodes write to.
>
> **Widgets:**
>
> * Stat cards: Open count, In Progress count, Avg time to close
> * Bar chart: Tickets by priority
> * Line chart: Tickets opened vs closed per week
> * Data table: All open tickets sorted by priority

> [tab] Integration Monitor
>
> Watch the health of your external API integrations.
>
> **Data source:** A table your scheduled health-check flows write to.
>
> **Widgets:**
>
> * Stat cards: Uptime %, Average latency, Errors today
> * Line chart: Response time over the last 7 days
> * Bar chart: Error count by endpoint
> * Data table: Recent failures with error messages

> [tab] Pipeline Tracker
>
> Visualize records moving through stages.
>
> **Data source:** A table your flows update as records progress through stages.
>
> **Widgets:**
>
> * Bar chart: Records by current stage (new → qualified → won → lost)
> * Stat cards: Total pipeline value, Win rate, Average deal size
> * Line chart: New records per week
> * Pie chart: Distribution by source or category

> [!TIP]
>
> Start simple. A dashboard with 3–4 focused widgets is more useful than one with 15 charts competing for attention. You can always add more as your team identifies what they need to see.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.