Dashboards 🟡 PREVIEW
Build custom data visualizations with AI-powered insights
Not a launcher app. not in the launcher catalogue; dashboard content is reached through Analytics. This page is kept here because it documents part of the suite, but it does not appear in the app menu and has no stability classification.
Overview
Dashboards is the business intelligence and data visualization app in General Bots Suite. Create custom dashboards with drag-and-drop widgets, connect to multiple data sources, and use natural language queries to explore your data. Dashboards helps you monitor KPIs, track metrics, and make data-driven decisions.
Key Capabilities:
- Visual Dashboard Builder - Drag-and-drop widgets and layouts
- Multiple Data Sources - Connect databases, APIs, files, and cloud warehouses
- Conversational Analytics - Ask questions in natural language
- Real-time Updates - Auto-refresh with configurable intervals
- Templates - Pre-built dashboards for common use cases
- Sharing & Export - Share dashboards or export as PDF/PNG
Features
Dashboard Builder
Create dashboards visually with a flexible grid system:
Layout Options:
| Layout | Columns | Best For |
|---|---|---|
| 12 Columns | 12 | Complex dashboards with many widgets |
| 6 Columns | 6 | Medium complexity |
| 4 Columns | 4 | Simple, mobile-friendly dashboards |
Widget Types:
| Category | Widgets |
|---|---|
| Charts | Line, Bar, Pie, Donut, Area, Scatter, Heatmap |
| Data Display | KPI Card, Table, Gauge, Map |
| Content | Text, Image, Embed (iframe) |
| Filters | Dropdown Filter, Date Range Picker |
Widget Configuration
Each widget can be configured with:
Chart Widgets:
- X-axis and Y-axis field mapping
- Multiple data series
- Colors and legend position
- Animation settings
- Stacked or grouped display
KPI Widgets:
- Value field
- Comparison (previous period, target, YoY)
- Thresholds for color coding
- Prefix/suffix formatting
Table Widgets:
- Column selection and ordering
- Sorting and filtering
- Pagination settings
- Export options
Data Sources
Connect to various data sources:
| Source Type | Examples |
|---|---|
| Databases | PostgreSQL, MySQL, SQL Server, MongoDB |
| Cloud Warehouses | BigQuery, Snowflake, Redshift |
| APIs | REST API, GraphQL API |
| Files | CSV, Excel, Google Sheets |
| Internal | GB Suite internal tables |
Connection Setup:
- Click Add Data Source in sidebar
- Select source type
- Enter connection details:
- Host, port, database name
- Username and password (stored in vault)
- SSL configuration
- Click Test Connection
- Click Add Source
Conversational Analytics
Ask questions about your data in natural language:
Example Queries:
| Query | Result |
|---|---|
| “Show me sales by region for last quarter” | Bar chart with regional breakdown |
| “What’s the trend in customer signups?” | Line chart with trend analysis |
| “Top 10 products by revenue” | Table with ranking |
| “Compare this month vs last month” | KPI cards with comparison |
| “Which day had the most orders?” | Single value with date |
How It Works:
- Type your question in the query box
- Select target data source (or “All”)
- AI translates to SQL/query
- Results displayed as visualization
- Save as widget to dashboard
Templates
Pre-built dashboard templates for common use cases:
| Template | Widgets Included |
|---|---|
| Sales Dashboard | Revenue KPI, Sales by Region, Top Products, Pipeline |
| Marketing Dashboard | Leads, Conversion Rate, Campaign Performance |
| Operations Dashboard | Uptime, Response Time, Error Rate, Active Users |
| Finance Dashboard | Revenue, Expenses, Cash Flow, P&L |
| HR Dashboard | Headcount, Turnover, Hiring Pipeline |
Sharing & Permissions
Visibility Options:
| Setting | Description |
|---|---|
| Private | Only you can view and edit |
| Team | Team members can view |
| Organization | Everyone in org can view |
| Public | Anyone with link can view |
Sharing Actions:
- Copy link to clipboard
- Embed in other applications
- Schedule email reports
- Export as PDF or PNG
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
N | New dashboard |
E | Edit mode toggle |
R | Refresh data |
S | Save dashboard |
W | Add widget |
/ | Focus query input |
Escape | Close modal/exit edit mode |
Ctrl+D | Duplicate widget |
Delete | Delete selected widget |
Tips & Tricks
Building Effective Dashboards
💡 Start with KPIs - Place most important metrics at the top
💡 Use consistent colors - Same color = same meaning across widgets
💡 Group related widgets - Organize by topic or data source
💡 Add context - Include text widgets to explain metrics
Performance Tips
💡 Limit widgets - 10-15 widgets per dashboard for best performance
💡 Use date filters - Narrow data range to speed up queries
💡 Cache queries - Enable caching for slow data sources
💡 Aggregate data - Pre-aggregate when possible
Data Source Best Practices
💡 Use read replicas - Don’t query production databases
💡 Create views - Pre-join tables for simpler queries
💡 Index properly - Ensure indexes on filtered columns
💡 Limit permissions - Grant minimum necessary access
Troubleshooting
Dashboard not loading
Possible causes:
- Data source connection failed
- Query timeout
- Authentication expired
Solution:
- Check data source status in sidebar
- Increase timeout in settings
- Re-authenticate with data source
- Check query performance
Widget shows no data
Possible causes:
- Query returns empty result
- Date filter excludes all data
- Field mapping incorrect
Solution:
- Test query directly in data source
- Adjust date range filter
- Verify field names match schema
- Check data type compatibility
Slow dashboard performance
Possible causes:
- Too many widgets
- Complex queries
- Large data volumes
- No caching enabled
Solution:
- Split into multiple dashboards
- Simplify queries, add aggregations
- Narrow date ranges
- Enable query caching in settings
BASIC Integration
Use Dashboards features in your dialogs:
Query Dashboard Data
' Get data from a dashboard widget
data = QUERY DASHBOARD "sales-dashboard" WIDGET "revenue-kpi"
TALK "Current revenue: $" + data.value
TALK "Change from last period: " + data.change + "%"
Embed Dashboard in Bot
' Show a dashboard in the conversation
SHOW DASHBOARD "sales-overview" TO user
TALK "Here's your sales dashboard. What would you like to know more about?"
Create Dashboard Programmatically
' Create a new dashboard from bot
dashboard = CREATE DASHBOARD
NAME "Weekly Report"
TEMPLATE "sales"
DATE_RANGE "last_7_days"
SHARE DASHBOARD dashboard.id WITH user.email
TALK "Your dashboard is ready: " + dashboard.url
Natural Language Query
' Let user ask questions about data
TALK "What would you like to know about your data?"
HEAR question AS TEXT
result = QUERY DATA question FROM "sales-db"
IF result.type = "chart" THEN
SHOW CHART result.data
ELSE
TALK result.answer
END IF
API Reference
Endpoints Summary
| Endpoint | Method | Description |
|---|---|---|
/api/dashboards | GET | List all dashboards |
/api/dashboards | POST | Create new dashboard |
/api/dashboards/{id} | GET | Get dashboard details |
/api/dashboards/{id} | PUT | Update dashboard |
/api/dashboards/{id} | DELETE | Delete dashboard |
/api/dashboards/{id}/widgets | POST | Add widget |
/api/dashboards/{id}/widgets/{wid} | PUT | Update widget |
/api/dashboards/{id}/widgets/{wid} | DELETE | Delete widget |
/api/dashboards/{id}/widgets/{wid}/data | GET | Get widget data |
/api/dashboards/sources | GET | List data sources |
/api/dashboards/sources | POST | Add data source |
/api/dashboards/sources/{id}/test | POST | Test connection |
/api/dashboards/query | POST | Natural language query |
/api/dashboards/templates | GET | List templates |
Example: Create Dashboard
POST /api/dashboards
{
"name": "Sales Overview",
"description": "Weekly sales metrics and trends",
"layout": {
"columns": 12,
"row_height": 80,
"gap": 16
},
"is_public": false,
"tags": ["sales", "weekly"]
}
Response:
{
"id": "dash_abc123",
"name": "Sales Overview",
"created_at": "2025-01-27T10:00:00Z",
"widgets": [],
"url": "/dashboards/dash_abc123"
}
Example: Add Widget
POST /api/dashboards/dash_abc123/widgets
{
"widget_type": "line_chart",
"title": "Revenue Trend",
"position": {
"x": 0,
"y": 0,
"width": 6,
"height": 4
},
"data_query": {
"source_id": "src_sales_db",
"sql": "SELECT date, SUM(amount) as revenue FROM orders GROUP BY date ORDER BY date",
"fields": ["date", "revenue"]
},
"config": {
"chart_config": {
"x_axis": "date",
"y_axis": "revenue",
"colors": ["#10b981"]
}
}
}
Example: Natural Language Query
POST /api/dashboards/query
{
"query": "Show me top 5 customers by revenue last month",
"data_source_id": "src_sales_db"
}
Response:
{
"query": "SELECT customer_name, SUM(amount) as revenue FROM orders WHERE date >= '2025-01-01' GROUP BY customer_name ORDER BY revenue DESC LIMIT 5",
"data": [
{"customer_name": "Acme Corp", "revenue": 150000},
{"customer_name": "TechStart", "revenue": 120000},
...
],
"suggested_visualization": "bar_chart",
"explanation": "Top 5 customers ranked by total revenue for January 2025"
}
See Also
- Analytics App - Built-in analytics and metrics
- Compliance App - Compliance dashboards
- Research App - Data research tools
- Sheet App - Spreadsheet data source