Skip to main content

Release Notes

Follow us on X to stay up-to-date with new releases!

🚀 Pull Request (PR) Workflow in Holistics

Open Beta

PR Workflow is in open beta and currently supports GitHub only

We're introducing a new Pull Request (PR) workflow to help organizations maintain quality and control over their dashboard changes. This feature empowers administrators to implement a robust review process before changes go live.

Why We Built This

Have you ever discovered unexpected changes in your production dashboards? While you can track down who made the changes, by then the damage is already done.

The root cause? A lack of mandatory review process for dashboard changes. Without proper oversight, unrestricted publishing can compromise your project's reliability and integrity.

Key Features

The new PR Workflow includes:

  • Company-wide Control: Administrators can enable/disable the PR Workflow for their entire organization
  • Review Management: Administrators and Dashboard Owners can review all changes before they go live
  • Streamlined Process for Analysts:
    • Easy submission of changes for review
    • Automatic publishing after PR approval and merge
    • Instant notifications if any errors occur during publishing

For detailed information, check out our PR Workflow documentation.

💾 Reusable Component Library

You don’t need a national survey to know that most data teams rebuild the same charts again and again across different dashboards. We’ve all been there, staring at a new dashboard request and thinking "I know we've built something like this before..."?

Your best dashboard components deserve to live multiple lives, not buried in some report from last quarter, waiting to be rebuilt from scratch.

With Reusable Component Library, every visualization you create can become a building block for future dashboards. Think of it as your team's collective intelligence, transformed into drag-and-drop components. When you need it again, simply grab it from your library, tweak it, and you're done.

For more information, please visit our documentation.

✅ Content Endorsement

We're excited to announce Content Endorsement has been officially launched, a feature that provides your organization a powerful way to mark trusted and reliable content.

The Problem We've Solved​

As analytics content grows across your organization, users often struggle to identify which reports and dashboards are reliable and current. Without clear indicators of content quality and status, teams waste time on outdated materials and lack confidence in their data-driven decisions.

The Solution​

By offering Content Endorsement features, we help data teams mark trusted content. Users can easily identify reliable, recommended content.

Documentation

For more details, please refer to our public docs: Content Endorsement

⬆️ Import CSV & Google Sheets

Coming Soon

This feature is under development and will be released soon!

Why Spreadsheet Analysis Is Still A Pain

Picture this: It's Monday morning, and your stakeholder needs insights from that customer survey data sitting in a spreadsheet. Or maybe you want to combine your CRM export with existing metrics for a one-time analysis. In traditional BI setups, you're looking at:

  • Waiting for data engineering resources
  • Complex ETL pipeline setup for temporary data
  • Database permissions and access hurdles
  • Hours or days before you can start analyzing

What if you could skip all that and go straight to insights?

The Solution: Import CSV/Google Sheets Through Holistics

Imagine this instead: You drag your CSV file into Holistics, and it loads straight into your database. Within seconds you're building charts and dashboards.

No IT tickets, no manual setup, no waiting around.

We're working on seamless CSV and Google Sheets import that drops your data directly into your existing warehouse, automatically creates data models with proper field types, and lets you start analyzing immediately.

Your data stays in your own infrastructure, gets proper validation and configuration. You can also re-upload your source file to keep things fresh. From raw file to actionable insights in a minute.

Want early access? Reach out to us via a support ticket!

Want early access?

Let us know via this Beta Request form.

🧨 Dynamic Data Sources

Introduction

In some scenario, you want to point the dashboards to different data source (database or data warehouse) dynamically, based on who's viewing the report or whether it's in production or dev mode.

Dynamically pointing Holistics to different data sources

Thanks to its programmable nature, Holistics can support this capability natively. This will enable popular use cases such as:

  • Clients Dashboarding: Build the same set of models/datasets/dashboards for clients but different data source for each client underneath.
  • Dev/Prod environment: Dynamically switch the underlying data sources (from dev → prod and vice versa) based on the environment that analysts are working on
  • Dynamic data sources for embedded analytics: Embedded analytics but different customers use different databases.
info

For those of you who separate dev and prod environments based on schema instead of the data source, please refer to our release note about dynamic schemas.

Demo

For more information, please refer to our doc about Dynamic Data Sources

🧨 Dynamic Schemas

To follow up on the Dynamic Data Sources feature, this is another cool feature that might be useful, dynamic schemas

📊 ​Dynamic Schema for Dev/Prod Environments​

For those of you who separate dev and prod environments based on schema (or datasets in BigQuery) instead of the actual data source, we’ve got you covered with our Dynamic Schema option.

This feature lets you switch schemas easily using basic string interpolation in your model's table_name property.

Here’s a quick example to show how it works:

// This is for dynamic schema use case by branch  

const current_branch = H.git.current_branch

const dynamic_schema =
if (current_branch == 'master') { 'prod' }
else if (current_branch == 'staging') { 'stg' }
else { 'dev' }

// in Table Model
model users {
type: 'table'
data_source_name: 'your_db'

// dynamic schema in table name
table_name: '${dynamic_schema}.users'
}

// in Query Model
model derived_users {
type: 'query'
data_source_name: 'your_db'

// dynamic schema in a query
query: @sql select * from ${dynamic_schema}.users ;;

}

🏷️ Tagging System

We're excited to announce that our Tagging System is now available on Production.

The Problem We've Solved​

As organizations create more reports and dashboards in Holistics, their analytics environment becomes cluttered and disorganized. Without proper labeling and categorization tools, users struggle to find trustworthy content among hundreds of similar-looking items.

The Solution

Tags help you efficiently categorize the analytics content, allowing users to quickly discover related items through meaningful categories and labels.

Benefits

  • Better organization: Create consistent categorization across your entire analytics environment​
  • Improved content discovery: Quickly find relevant reports and dashboards using tags and filters

Documentation

For more information, please refer to our public docs: Tags

🧮 [Open Beta] Calculation Builder: Create Powerful Metrics Without Code

AQL lets analysts build complex metrics much more easily, but learning it takes time. And we know not everyone has that luxury. That’s why we’re building Calculation Builder to let you tap into the full flexibility of AQL, through a point-and-click experience anyone can use.

Why you’ll love it

Zero coding required: Create, customize, compose metrics with just a few clicks.

Calculation Builder - No code required

Popular calculations: Build count, sum, average, running totals, and conditional metrics effortlessly.

Calculation Builder - Popular calculations

Progressive learning: View the generated AQL behind your GUI calculations to gradually learn the language.

Calculation Builder - Learn AQL

Advanced customization: Convert any GUI metric to AQL for further customization when needed.

Calculation Builder - Advanced customization

Calculation Builder currently supports all basic aggregations (count, sum, average), conditional aggregations (count if, sum if), running totals, and more - all through a simple point-and-click interface.

Share your feedback

Calculation Builder is currently in beta. We’re still polishing things up, so some behaviors or options may evolve. Your feedback is incredibly valuable - let us know what works, what doesn’t, or what you’d love to see next!

More calculations are coming up soon.

🚀 New AQL Functions For Better Data Manipulation

We’re excited to introduce some fresh functions to enhance your data manipulation. Check them out!

Aggregation Functions

  • corr: corr(table, field1, field2) — Pearson correlation coefficient.
  • string_agg: string_agg(expression, sep: separator) — Concatenate expression values.
  • percentile_cont: percentile_cont(expression, percentile) — Value at a given percentile (interpolated).
  • percentile_disc: percentile_disc(expression, percentile) — Value at a specific percentile (discrete).
  • min_by: min_by(table, value, by) — Fetch value from the row with minimum in another field.
  • max_by: max_by(table, value, by) — Grab value from the row with maximum in another field.

Time Intelligence Functions

  • date_format: date_format(datetime, format) — Format dates easily.
  • from_unixtime: from_unixtime(number) — Convert Unix timestamp to datetime.
  • last_day: last_day(datetime, date_part) — Get the last day of a period.

Text Functions

  • find: find(text, substring) — Locate a substring.
  • left/right/mid: left(text, length), right(text, length), mid(text, start, length) — Extract from left, right, or mid.
  • len/lpad/rpad: len(text), lpad(text, length, pad_string), rpad(text, length, pad_string) — Length, left/right padding.
  • lower/upper: lower(text), upper(text) — Change case of text.
  • trim/ltrim/rtrim: trim(text), ltrim(text), rtrim(text) — Remove whitespace from sides.
  • regexp_extract/match/replace: regexp_extract(text, regex, ...), regexp_match(text, regex), regexp_replace(text, regex, substitute) — Regex operations on text.
  • replace: replace(text, old_substring, new_substring) — Replace all occurrences of a substring.
  • split_part: split_part(text, delimiter, part_number) — Split text and return a specific part.

Window Functions

  • first_value: first_value(expression) — Value from the first row.
  • last_value: last_value(expression) — Value from the last row.
  • nth_value: nth_value(expression, N) — Value from the nth row.
  • ntile: ntile(n) — Divides rows into ranked groups.
  • percent_rank: percent_rank() — Calculates the relative percentile rank of a value.

Learn more: You can see all AQL functions in our cheatsheet.

Got questions or feedback? We’d love to hear from you! Your input helps us make Holistics better every day. 😊

🧱 [Closed Beta] Embed Portal: Bring Self-Service Analytics To Your Customers

Your users want more than static charts: they expect to explore, filter, and build. But embedding full BI into your app means weeks of work: auth flows, permissions, versioning, dashboard builders, and visualization plumbing.

Basic embedding doesn’t cut it either. The moment users try to filter, customize, or dig deeper, they hit a wall.

That’s why we built Embed Portal, which allows developers to add a full-featured BI experience directly into their product. You can finally give customers their own space to explore data, create dashboards, and self-serve, all without ever leaving your app.

  • Embed a full BI app: Users get a personalized, on-brand environment for exploration, authoring, and dashboard management.
  • Self-service UI for end-users: Let users create and edit dashboards with row-level access control.
  • Plan-based access: Control data and feature access by subscription tier.
  • Build and deploy as code: Manage embed portals in Git, just like the rest of your infrastructure, with versioning and preview support.

Learn more about this feature here: Embed Portal | Bring Self-Service Analytics to Your Customers

Closed Beta

Embed Portal is currently in closed beta. You can request Beta access and try it out.