Transformations
Server-side transformations let you manipulate query results before they’re sent to the dashboard. Use transformations to limit rows, filter data, add computed columns, or aggregate results.
Before you begin
- Ensure you have at least one Infinity query using a backend parser (JSONata or JQ)
- Transformations only work with backend parser queries
How transformations work
Transformations are applied as a separate query that processes the results of your other Infinity queries. When you add a transformation query:
- All previous Infinity queries with backend parsers execute first
- The transformation query processes those results
- The transformed data is returned to the dashboard
Note
Transformations only apply to Infinity queries using backend parsers (JSONata or JQ). Frontend parser queries (UQL, GROQ) are not affected.
Add a transformation
- In the query editor, click + Query to add a new query.
- Set Type to Transformations.
- Click Add Transformation and select the transformation type.
- Configure the transformation options.
You can add multiple transformations to a single query. They execute in order from top to bottom.
Available transformations
Limit
Limits the number of rows returned from each query.
Example: Set limit to 5 to return only the first 5 rows from each query.
Filter expression
Filters results based on a JSONata expression that evaluates to true or false.
Example expressions:
Computed column
Adds a new column based on a JSONata expression.
Example expressions:
Summarize / Group by
Aggregates data by grouping rows and applying an aggregation function.
Aggregation functions:
Example: To sum sales by region:
- Expression:
$sum(sales) - By:
region - Alias:
totalSales
Transformation order
When you add multiple transformations, they execute in the order they appear. For example:
- Filter expression (
status = 'active') - First, filter to active records - Computed column (
price * 1.1aspriceWithTax) - Then, add a calculated column - Limit (
10) - Finally, return only 10 rows
Note
Transformations are applied after the Infinity backend processes your query. If your API supports server-side filtering or pagination, use those capabilities instead for better performance.



