Skip to main content

Dashboards

Create custom data visualization dashboards with AI-assisted chart creation, drag-and-drop layouts, and public sharing.

Status

Production Ready - Full dashboard system with chart editor, 12+ chart types, workspace sharing, and public links

Overview

Qry Dashboards provide a powerful way to create custom data visualizations. Build interactive dashboards with multiple chart types, tables, KPIs, and share them with your team or publicly.

Key Capabilities:

  • Drag-Drop Layout - Resize and reposition tiles freely on a 12-column grid
  • 12+ Chart Types - Bar, line, pie, heatmap, sankey, treemap, and more
  • Interactive Filters - Add filter controls that dynamically update all tiles
  • AI Integration - Add charts directly from AI conversations
  • Public Sharing - Generate unique URLs for external viewers
  • Auto-Refresh - Configure refresh intervals from 30 seconds to 1 hour
  • Workspace Integration - Share dashboards with team members

Quick Start

Creating Your First Dashboard

  1. Navigate to Dashboards from the left navigation rail
  2. Click + New Dashboard
  3. Enter a name and optionally assign to a workspace
  4. Click Create Dashboard to open the editor

Adding Tiles

  1. Click + Add Tile in the toolbar
  2. Choose a tile type: Chart, KPI, Table, or Text
  3. Configure the datasource and write your SQL query
  4. Map chart fields (X-axis, Y-axis) and customize appearance
  5. Click Add Tile to place it on the dashboard

Sharing Dashboards

  1. Click the Share button in the toolbar
  2. Toggle "Make Public" to generate a shareable link
  3. Anyone with the link can view the dashboard (read-only)

Tile Types

TypeDescriptionUse Case
ChartECharts visualization with 12+ chart typesData trends, comparisons, distributions
KPISingle metric with optional comparisonKey performance indicators, targets
TableData table with sortingDetailed data views, records listing
TextStatic HTML/markdown contentHeaders, notes, embedded images

Chart Types

Qry supports a wide variety of chart types powered by ECharts:

Standard Charts

  • Bar / Line / Area - Standard charts for time series and comparisons
  • Pie / Funnel - Part-to-whole relationships
  • Scatter - Correlation analysis

Advanced Visualizations

  • Heatmap - Matrix data visualization
  • Treemap - Hierarchical data proportions
  • Sankey / Chord - Flow and relationship diagrams
  • Gauge - Single value with target
  • Radar - Multi-dimensional comparisons

Chart Field Mapping

Different chart types require different field configurations:

Chart TypeRequired Fields
Bar/Line/AreaX-axis field, Y-axis field
Pie/FunnelName field, Value field
HeatmapX field, Y field, Value field
Sankey/ChordSource field, Target field, Value field
TreemapName field, Value field, Category field
GaugeValue field

Dashboard Editor

Layout Grid

The editor uses a 12-column grid system:

  • Drag tiles to reposition them anywhere
  • Resize using the handle in the bottom-right corner
  • Tiles snap to grid positions automatically
  • Layout saves automatically as you work

Toolbar Actions

ButtonAction
+ Add TileOpen tile wizard
RefreshRe-execute all queries
PreviewToggle preview mode (hide grid)
ShareGenerate public link
SettingsEdit dashboard properties and filters

Tile Configuration Panel

Click any tile to open the configuration panel:

Dataset Section

  • Select datasource
  • Choose catalog and schema
  • Write or edit SQL query
  • Run query to preview results

Visualization Section

  • Change chart type
  • Edit title
  • Configure axis mappings (X, Y, Series)

Display Options

  • Show/hide legend
  • Stacked bars/areas
  • Smooth line curves
  • Horizontal orientation

Dashboard Filters

Add interactive filter controls that allow users to dynamically filter data across all tiles.

Filter Types

TypeDescriptionExample Use
SelectSingle value dropdownStatus, Category
Multi-SelectMultiple values selectionRegions, Products
Date RangeStart and end date pickerReport periods
DateSingle date pickerSnapshot date
TextFree text inputSearch terms, Year

Adding Filters

  1. Click Settings in the toolbar
  2. Go to the Filters tab
  3. Click + Add Filter
  4. Configure the filter:
    • ID - Unique identifier for SQL placeholders (e.g., status, date_range)
    • Label - Display name shown to users
    • Type - Select the filter type
    • Options - For Select/Multi-Select: define available options
    • Default - Optional default value

Using Filters in SQL Queries

Reference filters in your tile queries using the ${filterId} placeholder syntax:

-- Simple filter
SELECT * FROM orders
WHERE status = ${status}

-- Multi-select filter (use with IN clause)
SELECT * FROM sales
WHERE region IN (${regions})

-- Date range filter
SELECT * FROM transactions
WHERE date >= ${date_range.start}
AND date <= ${date_range.end}

-- Combining multiple filters
SELECT product, SUM(amount) as total
FROM orders
WHERE status = ${status}
AND region IN (${regions})
AND order_date >= ${period.start}
AND order_date <= ${period.end}
GROUP BY product

Filter Placeholder Reference

Filter TypePlaceholder SyntaxSQL Output Example
Select${status}'active' or 123 (numeric)
Multi-Select${regions}'North', 'South', 'East'
Date Range${range.start}, ${range.end}'2024-01-01', '2024-12-31'
Date${date}'2024-06-15'
Text${search}'keyword' or 2024 (numeric)
Numeric Detection

Filter values that are valid numbers (integers or decimals) are automatically inserted without quotes. String values are properly quoted and escaped for SQL safety.

Date Range Presets

The date range picker includes convenient presets organized in tabs:

Presets Tab:

  • Today, Yesterday
  • Last 7 / 14 / 30 Days
  • Last 90 / 180 / 365 Days (in "More" section)
  • Year To Date
  • This Week / Month / Quarter / Year
  • Previous Week / Month / Quarter / Year

Custom Tab:

  • Manual start and end date selection

When a preset is selected, the button displays the preset name (e.g., "Year To Date") instead of the date range.

Filter Behavior

  • Auto-refresh: Tiles automatically refresh when filter values change
  • Debouncing: Text filters wait 300ms after typing stops before triggering refresh
  • Loading indicator: Tiles show a spinner overlay during data refresh
  • URL sync: Filter values are reflected in the URL for shareable links
  • Defaults: Filters use configured defaults on initial dashboard load

Filter Tips

  1. Use meaningful IDs - Choose descriptive filter IDs like date_range or product_category
  2. Add placeholders in comments - Document available filters in SQL comments for clarity
  3. Test with Preview - Use the SQL editor's Preview button to test filter substitution
  4. Consider NULL handling - Unset filters substitute as NULL

Adding Charts from Conversations

When the AI generates a chart in a conversation, you can add it directly to a dashboard:

  1. Click the Add to Dashboard button on the chart
  2. Select an existing dashboard or create a new one
  3. Enter a title for the tile
  4. Click Add to Dashboard

Supported Chart Sources

SourceStorageBehavior
SQL ChartsQuery storedRe-executes on refresh (live data)
Matplotlib/SeabornImage embeddedStatic snapshot
PlotlyHTML embeddedInteractive (click to view fullscreen)

Plotly Charts

Plotly charts are displayed as preview cards for security. Click View Chart to open a fullscreen modal with full interactivity (zoom, pan, hover). You can also download the chart as an HTML file.

Public Sharing

Making a Dashboard Public

  1. Click the Share button in the toolbar
  2. Toggle "Make Public"
  3. Link is automatically copied to clipboard
  4. Share the link with anyone - no login required

How Public Dashboards Work

  • No login required to view public dashboards
  • Data comes from cached snapshots (not live queries)
  • Read-only - viewers cannot edit
  • Auto-updates when owner creates new snapshot

A snapshot is automatically created when you make a dashboard public. The snapshot caches query results so public viewers don't need database access.

Revoking Access

  1. Click Share
  2. Toggle "Make Private"
  3. Existing links immediately stop working

Workspace Dashboards

Assigning to a Workspace

  1. Create a new dashboard or edit an existing one
  2. Select a workspace from the dropdown
  3. All workspace members can now view and edit the dashboard

Access Control

UserViewEdit TilesDelete/Share Dashboard
Dashboard OwnerYesYesYes
Workspace MembersYesYesNo
Non-membersNoNoNo

Important: Workspace membership grants dashboard access but does NOT grant access to underlying datasources. RBAC permissions still apply - workspace members must have permission on the datasources to execute tile queries.

Configuring Tiles

KPI Tiles

Display key metrics with optional comparisons:

  • Single large number display
  • Prefix/Suffix (e.g., "$", "%", "M")
  • Comparison indicator with up/down arrows
  • Compare value and label for context

Table Tiles

Show data in tabular format:

  • Sortable columns by clicking headers
  • Zebra striping option for readability
  • Compact mode for dense data
  • Limited to 100 rows displayed

Text Tiles

Add static content:

  • Headers and section labels
  • Instructions or notes
  • Embedded images
  • HTML formatting supported

Dashboard Settings

Access settings from the editor toolbar:

SettingDescription
NameDashboard title
DescriptionOptional description
WorkspaceAssign to a team workspace
Auto-refreshSet refresh interval (30s, 1m, 5m, 15m, 30m, 1h)

Best Practices

Dashboard Design

  1. Use consistent layouts - Align tiles in rows for visual harmony
  2. Group related metrics - Place related KPIs together
  3. Limit tiles per dashboard - 6-12 tiles recommended for readability
  4. Use clear titles - Be specific about what each tile shows
  5. Add context - Use text tiles for section headers and notes

Query Performance

  1. Use LIMIT - Restrict row counts (e.g., LIMIT 100)
  2. Aggregate data - Use GROUP BY instead of raw rows
  3. Add indexes - For frequently queried columns
  4. Use snapshots - For expensive queries on public dashboards

Refresh Strategy

Use CaseRecommended Interval
Real-time monitoring30 seconds
Operational dashboards1-5 minutes
Daily reports30-60 minutes
Static analysisManual only

Keyboard Shortcuts

ShortcutAction
EscapeClose config panel
DeleteDelete selected tile (with confirmation)
Ctrl/Cmd + SSave dashboard

Troubleshooting

Tile Shows Error

  1. Check the error message displayed in the tile
  2. Open config panel and review the query
  3. Click "Run Query" to test
  4. Verify you have datasource permissions

Layout Not Saving

  1. Ensure you're the owner or workspace member
  2. Check network connection
  3. Refresh the page and try again

Chart Not Rendering

  1. Verify query returns data (run query to test)
  2. Check field mappings in configuration
  3. Ensure value fields contain numeric data
  4. Try a different chart type

Public Dashboard Shows No Data

  1. Owner must create a snapshot before sharing
  2. Snapshot may have expired (7-day TTL)
  3. Owner should refresh and create new snapshot

Limitations

  • Maximum 50 tiles per dashboard
  • Query results limited to 10,000 rows
  • Table tiles display maximum 100 rows
  • Public dashboard snapshots expire after 7 days
  • Plotly charts require fullscreen modal to interact

Combine with Other Features

Dashboards work great with Python Execution for custom Matplotlib/Plotly charts, Notebooks for scheduled analysis that feeds dashboards, Workspaces for team collaboration, and Qry Nexus for building dashboards from curated Data Products!

API Access

For programmatic dashboard management, see the Dashboard API Reference.