---
title: "Custom Data Source"
url: "https://help.tabidoo.cloud/en/article/custom-data-source"
language: "en"
last_updated: "2026-01-05T06:54:15.048Z"
---

# Custom Data Source

How to query your data. And how to use that data in reports, widgets …

The **Custom Data Source** extension allows you to create queries over your data and then use the results in **reports, widgets, or API requests**. Unlike simply linking tables, it lets you group data, calculate aggregations, and work with nested links.  
  
 

## Why Use It?

Example: You have thousands of orders. Instead of loading all records into a report, you can aggregate the data by country:

| ID | Amount | Country | Etc. |
| --- | --- | --- | --- |
| 1 | $213,000.00 | USA | … |
| 2 | $100,000.00 | AUS | … |

*how it looks in table*

| Country | Total Amount |
| --- | --- |
| USA | $1,123,000.00 |
| AUS | $200,000.00 |

*Custom data source*  
 

This way, you can power a simple widget or report showing just the totals, without loading unnecessary details.  
 

* * *

  
 

### How to Download and Install a Tabidoo Extension

There are two valid ways to open the **Tabidoo Extensions** catalog and install an extension into your application.

#### Option 1: Using *Add new table*

-   Click **Add new table** in the bottom-left corner of the application.
-   In the center of the screen, select **Add Tabidoo extensions**.
-   Choose the extension you want from the catalog and add it to your application.

#### Option 2: Using *Edit application*

-   Click on the **application name** at the top of the screen.
-   From the list, select **Edit application**.
-   Expand the **Application extensions** section.
-   Choose and install the desired extension from the available extensions.

Both methods lead to the same extensions catalog and can be used interchangeably.

* * *

### Create first custom Data Source

-   In the **Data Source** table, add a new row.
-   In the definition form: 

        Select a table.

        Choose which fields (columns) to load.

        If needed, select an **aggregation** type (SUM, COUNT, AVG, etc.).

-   Save – the stored “query” can now be used in reports, widgets, or via the API.

![](https://cdn-assets.productfruits.com/31631753-8ac7-4ab0-8b7c-6f5fcaf5a8b7)

*Input screen for the custom data source definition*

* * *

##   
User Rights

Be careful what data you select to show in a custom data source and who you allow to create or edit them. Unlike normal tables, widgets, or API calls, **custom data sources do not automatically respect user permissions**.

### Access and Permissions

-   A user may see **data they normally cannot access** (denied tables/fields), for example aggregated in widgets or reports.
-   This makes custom data sources powerful, but also risky if not configured correctly.

### Role Conditions

-   By default, **user role conditions** are applied to new custom data sources.
-   This means records are filtered according to the role of the user under which the data is loaded.
-   Conditions can be **disabled** for specific custom data sources (e.g., for summary calculations).
-   Only users with permission to **change user rights** can disable these conditions.

### Example

-   You create a custom data source with **invoice amounts** (individual or sums by month/year).
-   If used in a widget or report, **even users who cannot access invoices directly** will still see the aggregated numbers.
-   If the same widget is built directly on the invoice table, the user would not see the data.
-   This makes custom data sources useful for showing **summarized data** to restricted users (e.g., totals), while still keeping details hidden.

### Read-only Access

-   If a user has **read-only rights** to a custom data source:
-   They cannot edit its definition.
-   The stored query in the database is always used when loading results.

* * *

## Best Practices

-   Use custom data sources to build **efficient widgets and reports** without overloading the system with raw data.
-   Apply **role conditions** unless you have a very clear reason to disable them.
-   Be mindful of **sensitive fields** (e.g., invoices, salaries) – aggregated numbers may reveal data to users who otherwise don’t have access.
-   Use **summaries and aggregations** to present business insights while still protecting detailed records.
