Datasets
Datasets are SQL-based data sources that power blocks and visualizations in the Analytics module. A dataset defines a query that retrieves and transforms data from your database, making it available for charts, tables, and reports.
Overview
Section titled “Overview”The Datasets module provides:
- SQL Query Editor - Define custom queries to retrieve data
- Column Detection - Automatic identification of column types (numeric, text, date)
- Security Groups - Control which users can access the data
- OData Exposure - Make datasets available to external tools via OData v4
- Reusability - Use the same dataset across multiple blocks
Accessing Datasets
Section titled “Accessing Datasets”Navigate to Settings > Data Management > Datasets to view and manage datasets.

Datasets List
Section titled “Datasets List”The main view displays all datasets in your company.

Table Columns
Section titled “Table Columns”| Column | Description |
|---|---|
| Name | Dataset name (click to edit) |
| OData | Checkmark indicates OData access is enabled |
| Description | Dataset description |
Searching Datasets
Section titled “Searching Datasets”Use the search box in the header to filter datasets by name or description. The list updates as you type.
Creating a Dataset
Section titled “Creating a Dataset”- Click the Add button in the header
- Enter the required information
- Write your SQL query
- Optionally configure security groups and OData access
- Click Save

Dataset Fields
Section titled “Dataset Fields”General Information
Section titled “General Information”| Field | Required | Description |
|---|---|---|
| Dataset Name | Yes | Unique name to identify the dataset |
| Description | Yes | Explain what data this dataset provides |
| Query | Yes | SQL query that retrieves the data |
| Security Groups | No | Control which users can access this dataset |
SQL Query
Section titled “SQL Query”The query field accepts standard SQL syntax. Your query should:
- Return the columns needed for visualizations
- Include appropriate filtering and aggregation
- Use meaningful column aliases
SELECT DATE(created_date) as order_date, COUNT(*) as order_count, SUM(total_amount) as revenueFROM order_headerWHERE created_date >= NOW() - INTERVAL '30 days'GROUP BY DATE(created_date)ORDER BY order_date DESCColumn Type Detection
Section titled “Column Type Detection”When you save a dataset, the system executes a sample query to detect column types:
| Type | Detection | Example Values |
|---|---|---|
| Numeric | Numbers, decimals | 42, 3.14, 1000.50 |
| Text | Strings, identifiers | "John Doe", "ORD-001" |
| Date | Date/time patterns | 2024-01-15, Jan 15, 2024 |
Column types determine:
- Available aggregation options in blocks
- Filter input types (text search, date picker, numeric range)
- Display formatting options
Editing a Dataset
Section titled “Editing a Dataset”Click a dataset name to open the edit panel.

Query Validation
Section titled “Query Validation”When saving, the system validates your query by executing it with LIMIT 1. Common validation errors:
| Error | Cause | Solution |
|---|---|---|
| Syntax error | Invalid SQL | Check query syntax |
| Table not found | Typo in table name | Verify table exists |
| Column not found | Invalid column reference | Check column names |
| Query returned no results | Empty data or filter too restrictive | Adjust WHERE clause |
Save As
Section titled “Save As”Use Save As to create a copy of a dataset with modifications:
- Make changes to the dataset
- Click Save As
- Enter a new name
- The new dataset is created and selected
This is useful for creating variations of a query without modifying the original.
Security Groups
Section titled “Security Groups”Assign security groups to control access to sensitive data.

Access Rules:
- Users in any assigned security group can access the dataset
- Users without matching groups cannot see blocks using this dataset
- Empty security groups = accessible to all users
OData Access
Section titled “OData Access”Enable OData to expose the dataset to external tools like Excel, Power BI, or custom applications.

Enabling OData
Section titled “Enabling OData”- Open the dataset for editing
- Toggle Enable OData Access on
- The endpoint URL is generated automatically
- Copy the endpoint URL for use in external tools
OData Endpoint
Section titled “OData Endpoint”The endpoint follows this format:
https://your-domain.com/odata/{dataset-slug}For versioned datasets:
https://your-domain.com/odata/{dataset-slug}_v2Authentication
Section titled “Authentication”OData endpoints require Basic Authentication. Share the endpoint URL along with your API credentials with authorized users.
Deleting a Dataset
Section titled “Deleting a Dataset”- Open the dataset for editing
- Click the Delete button (trash icon)
- Confirm the deletion
Dataset Relationships
Section titled “Dataset Relationships”Dataset ├── Used by → Block(s) │ └── Displayed on → Dashboard(s) ├── Security Groups → User access └── OData Registry → External accessViewing Dependencies
Section titled “Viewing Dependencies”Before modifying or deleting a dataset, consider:
- Which blocks reference this dataset
- Which dashboards display those blocks
- External tools connected via OData
Best Practices
Section titled “Best Practices”Query Design
Section titled “Query Design”- Be specific - Select only needed columns, not
SELECT * - Filter early - Apply WHERE clauses to limit data at the source
- Aggregate wisely - Use GROUP BY for summary data
- Use aliases - Give columns clear, readable names
- Order results - Include ORDER BY for predictable output
Performance Optimization
Section titled “Performance Optimization”- Index key columns - Ensure filtered/joined columns are indexed
- Limit date ranges - Use parameters or hardcoded limits for large tables
- Avoid subqueries - Use JOINs when possible for better performance
- Test with production data - Verify query performance with realistic data volumes
Security
Section titled “Security”- Apply security groups - Restrict access to sensitive financial or personal data
- Use row-level filtering - Include WHERE clauses that filter by organization or user context
- Audit regularly - Review security group assignments periodically
- Limit OData exposure - Only enable OData for datasets that need external access
Naming Conventions
Section titled “Naming Conventions”- Use descriptive names:
Daily Order Summarynotorders_v2 - Include the time range if applicable:
Last 30 Days Revenue - Indicate aggregation level:
Monthly Sales by Product - Prefix with category for organization:
Finance - AR Aging
Troubleshooting
Section titled “Troubleshooting”Query Errors
Section titled “Query Errors”| Error | Cause | Solution |
|---|---|---|
| ”Invalid Query” | SQL syntax error | Check for typos, missing commas, or quotes |
| ”Query returned no results” | No matching data | Verify date ranges and filter conditions |
| ”Column not found” | Referenced column doesn’t exist | Check table schema for correct names |
| ”Permission denied” | Database access issue | Contact administrator |
Block Display Issues
Section titled “Block Display Issues”| Issue | Solution |
|---|---|
| Block shows “No data” | Verify dataset query returns results |
| Wrong data displayed | Check query logic and block configuration |
| Slow loading | Optimize query with indexes and limits |
| Block not visible | Verify user has security group access |
OData Issues
Section titled “OData Issues”| Issue | Solution |
|---|---|
| 401 Unauthorized | Check Basic Auth credentials |
| 404 Not Found | Verify OData is enabled and endpoint URL is correct |
| Empty results | Check that query returns data |
| Timeout | Optimize query for faster execution |