Skip to main content

What's New

Keep track of the latest features, improvements, and fixes in Holistics.
Follow every release on LinkedIn ยท X ยท .

August 4, 2025

โœจ Holistics AI: Deprecate Explore data (basic), more unified experience

Weโ€™ve deprecated Explore Data (basic mode) to unify the experience - now in just a single Explore Data interface.

Alongside this, Explore Data now can Explain Chart - a new capability that helps you easily understand visualizations with clear, concise explanations of trends and patterns. It makes charts easier to interpret, so users can act on insights with more confidence.

๐ŸŒŸ More powerful, easier to use - now all in one place.


๐Ÿ“ฅ Interested in Holistics AI? Join the waitlist and start exploring a new way to work with data.

July 25, 2025

๐Ÿš€ 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.

July 22, 2025

๐Ÿ’พย 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.

July 7, 2025

โœ… 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

June 30, 2025

๐Ÿงจ 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

June 30, 2025

๐Ÿงจ 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 ;;

}

June 30, 2025

๐Ÿท๏ธย 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

June 20, 2025

๐Ÿงฎ 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.

June 19, 2025

๐Ÿš€ 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_like(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. ๐Ÿ˜Š

June 18, 2025

๐Ÿงฑย 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.