Best Of
September GA & Beta Preview
Sharing a preview of features coming to GA and Beta next week as part of our September Release.
Be sure to join our beta program to get access to beta features!
—New Features / Feature Enhancements—
Magic ETL Enhancements - Observability
Output row preview
View real-time row counts directly on the canvas as data transforms from tile to tile, letting you pinpoint data quality issues faster
DataFlow Versioning
Inspect prior iterations and logic across historical DataFlow versions allowing you to reference past configurations and audit pipeline changes side-by-side.
Execution details heatmap
Spot resource-heavy actions instantly with visual performance heatmaps paired with targeted telemetry metrics to isolate bottlenecks or row-drop anomalies.
User settings persistence
Eliminate repetitive setup by automatically saving custom canvas preferences and layout configurations across your DataFlows and open them with preferred specifications every time.
MagicETL Enhancements – Customizable Canvas
The new customizable canvas features in Magic ETL let you tailor layouts, navigation, and visual themes to build and manage complex data flows faster and with less visual friction.
Canvas Navigation Controls
Effortlessly pan, zoom, and inspect complex ETL workflows with greater precision using new click-to-drag and scroll-to-zoom canvas controls and a familiar, map-style navigation experience.
Custom Window Layouts
Tailor your design canvas to your preference by moving, resizing, or pinning individual tool panels to help you eliminate visual clutter and build data pipelines faster.
Dark Mode
Reduce eye strain during extended build sessions by switching your canvas interface to a high-contrast dark theme.
MagicETL – Tile Enhancements
Transform and process data faster with purpose-built tiles. The latest tile enhancements in Magic ETL expand your pipeline capabilities with native AI modeling, flexible SQL outputs, and simplified column management to help you automate complex logic directly on the canvas.
New AI Sentiment Analysis Tile
Automatically analyze customer feedback, survey responses, and support tickets to detect emotional tone directly within your data pipelines to instantly score sentiment without writing code or calling external APIs.
New AI Classification Tile
Automatically categorize unstructured text fields into standardized tags or predefined custom categories, eliminating manual data sorting and tagging tasks to organize large text datasets at scale.
New Multi-statement SQL Tile
Write custom SQL logic that processes multiple input DataSets and generates multiple distinct output streams eliminating the need for chained tiles or redundant data passes, reducing execution time and canvas complexity.
Convert tiles to SQL
Convert any standard Magic ETL tile or series of configured tile actions directly into a readable SQL script with a single click for full visibility into generated query logic.
Update to Select Columns tile
Streamline dataset schema management with an upgraded interface allowing you to easily search, select, deselect, or modify multiple column metadata attributes at once.
AI Chat Updates
Multiple updates to AI Chat make it faster and more capable than ever.
- Gathering Context - Bring context directly into your chat with @ mentioning DataSets , Dashboards, Cards, Apps or Documents or drag and drop local files or images to analyze unstructured data
- Complex Multipart Questions – ask complex questions across multiple DataSets and Documents
- Let AI Chat Build Assets – Preview and deploy drafts directly from your conversation or let chat delegate to sub-agents across App Studio, MagicETL & Code Engine
- Custom chat - Admins can replace the default AI Chat with specialized custom assistants configured for specific apps or entire accounts.
- Workspace focus - AI Chat automatically aligns its context based on the specific workspace or page you are currently viewing
- Sustained conversations - Enjoy longer interactions that retain context, including previous tool calls, across many turns
- General Questions - Ask about general topics and get real answers
- DomoStats AI Operations Report - See a complete breakdown of every Domo AI Pro operation in a single report
- Knowledge Base Support - Ask Domo-specific questions to troubleshoot or find answers without leaving your active chat window
MCP Trigger
If a workflow is triggered by Claude, AI Chat, or an autonomous agent, you’ll see a clear, consistent audit trail in your Workflow Execution Details page enabling you to monitor, audit, and govern how AI interacts with core business processes.
Code Engine Package Management
Developers get real-time visibility into the reach and usage of each package, and secure capabilities for smart deletion of packages that are no longer used or referenced.
Improved versioning
Select, switch, or version your functions with far fewer clicks and the confidence that your existing parameter mappings will remain intact.
DataSet Query Task Updates
Save configurations and generate output parameters on zero-row results. This means your query no longer has to produce at least one row of data to save your progress.
Pvariable Support for Dashboards, App Studio & Embed
pVariable support allows business users and admins to easily drive dashboards, App Studio pages, and embeds using simple URL parameters on load.
Card Embed Enhancements
An improved embedded user interface and expanded customization to enable or disable features such as segments, quick filters, and variables, along with configuring parameters like background, scale and text color to match your brand.
—Beta Features—
Magic ETL: Unstructured data processing
The new Documents Input Tile brings native unstructured data processing to Magic ETL, enabling you to seamlessly ingest and combine file-based content directly into your data pipelines
Snowflake Semantic Views
Register existing Snowflake Semantic Views in Domo and query directly, taking advantage of the synced relationships, business definitions and metrics defined and governed in Snowflake.
AI Library w/ New MCP Toolkits
Domo MCP toolkits safely integrate AI assistants and agents into daily operations while maintaining strict platform security and governance, accessible whether you’re using external models or custom agents built in Domo via the AI library.
MCP Toolkits - Automation
Manage workflow lifecycles to create, validate, test-run, and deploy automated definitions and build and manage forms. Deploy Code Engine custom business logic, version unreleased code, and securely execute background functions. Coordinate approvals in Task Center, letting AI manage queues, review tasks, and monitor watchlists.
MCP Toolkits – Workspaces & Alerts
Allow agents to securely create and manage Workspaces as well as folders, alerts and subscriptions to safely offload administrative tasks without compromising security.
MCP Toolkits – Sandbox
Create, commit, promote, and delete repositories, as well as manage sharing of them with a new universal orchestration skill routing requests to the appropriate tool based on your intent.
Calculated Columns: Rule builder
Provides a visual and guided interface that allows users to create, edit, and manage conditional columns wherever calculated fields are created in Domo without writing DQL.
Cloud Integrations: Calendar upgrades (fiscal & internationalization)
Seamlessly apply your company’s unique fiscal calendar and regional settings directly at the integration level by registering an existing fiscal calendar table hosted on your Snowflake, Databricks, or BigQuery instance.
Activity Log Webhook
Stream platform audit events to external systems in real time for immediate security and compliance monitoring, allowing security teams to respond to issues immediately.
Enable export and import of JSON connector definitions
Share and reuse API configurations as JSON files instead of rebuilding them manually every time, automating the connection process and reducing manual overhead.
Does SQL editor for Dataset views support Common Table Expression (CTE) ?
Title: CTE Support in Domo Dataset Views
Hi fellow Domo Developers,
Has anyone successfully created a Dataset View using a CTE (WITH clause)?
I’m currently trying to build a Dataset View using a CTE, but Domo throws an error and appears to interpret the CTE name as a source dataset instead of resolving it as a CTE.
I wanted to confirm whether CTEs are supported in the Dataset View SQL editor, or if this is a known limitation of Dataset Views.
If anyone has implemented CTE-based logic successfully, could you please share the approach or any workaround you used?
Thanks in advance!
App Studio – Require One Value to Always Be Selected in a Filter
I have several global dropdown filters in an App Studio page (Region, Country, Account Language, etc.) that apply to all visualizations on the page.
For these dimensions, the underlying dataset includes a pre-aggregated “All” value. For example, Country = All contains metrics already aggregated across all countries. Because of this, each of these filters needs to have exactly one value selected at all times.
The issue is that Domo shows the Clear Filter (strikethrough funnel) icon on each filter.
If a user clicks it, the filter becomes unselected. Domo then includes both the individual country rows and the pre-aggregated All rows, which effectively double-counts the metrics.
Is there a way to:
- Disable/hide the Clear Filter icon for specific filters, or
- Configure a filter so that one value must always remain selected and the user cannot clear the selection entirely?
Tableau has a straightforward option to prevent an “All”/unfiltered state for a filter. I haven't been able to find an equivalent setting in Domo App Studio, but this seems like a fairly fundamental requirement when working with pre-aggregated data.
Am I missing a setting that supports this in Domo?
Period Over Period use as interactive filter only filter to the Date Range set in Analyzer?
I have a Period Over Period Grouped Bar with:
x = Last Day Month
y = Sales
Date Range = This Year
Graph by = Quarter
Compare to: Year Over Year, 1 year ago, 2 year ago, 3 year ago
When clicking a historical quarter such as 2024-Q2 on my Period Over Period Grouped Bar chart, the App filter is resolving to the current year equivalent (2027-Q2) rather than the selected period.
Any other options that I can show same period over the years and users can select any period shows in the card to filter/drill into that relatively easy to implement?
Re: Can an "orphaned" output dataset be re-added to a dataflow?
Can you explain more about #3? That sounds interesting.
Clear Filters button while keeping one page filter selected in App Studio
I have an App Studio page with several dropdown filters: Month, Region, Country, Language, and Search Surface. The Month filter defaults to Latest Month, and I need at least one month to always be selected on this page.
(For additional context, I’m implementing the latest-month default and displaying the latest available month based on the approach described in this community post.)
I also have a button using the Clear Filters interaction. Currently, clicking it clears all page filters, including Month. This causes the cards to aggregate across all months, which is not desirable.
Is there a way to configure the Clear Filters action so that it clears Region, Country, Language, and Search Surface, but leaves the Month filter unchanged or resets it to Latest Month?
I looked at using a persistent filter for Month, but that doesn't work well for this app because other pages contain monthly trend views where I don't want a single Month selection to persist and filter the trend.
Ideally, I need page-level behavior where Month remains selected or resets to Latest Month, while Region, Country, Language, and Search Surface are cleared.
Is this possible in App Studio using Clear Filters or another approach?
Re: Help us make PDP better?
To start, I think this forum should be a place for open discussion, not surveys. I'm not going to use the Smartsheet form. Let's talk here.
And when I say "us," I'm referring to the community.
For the past few months, I've mostly stayed silent on the forum. During that time, I've watched the discussions decline and the questions become less frequent, while the forum has increasingly started to feel like a request site rather than a place for conversation. I'd like to see if we can change that.
Whether you're a Domo Coach, a longtime contributor, or hiding behind User_XXXX, I'd genuinely like to hear your voice—not an echo of mine. After this post, I intend to go back to being a mostly silent participant and let the community take the conversation wherever it goes.
With that said, I'll start.
I personally don't use PDP in Domo, even though controlling data access by user is a primary need for our company. When I initially set up our environment, I evaluated PDP and ultimately recommended that we use a different approach for our external users.
Sorry Dan, but I'm probably not the PDP success story you were hoping to hear from.
—
I want to start with something more fundamental than PDP itself.
When a customer tells you that a feature is confusing, difficult to administer, and ultimately something they have chosen not to use, I don't think the right starting point for the product manager is to explain why the implementation is actually good.
That's not a neutral position from which to evaluate the product. It immediately puts us into a discussion where I have to convince you that there is a problem before we can even discuss how to solve it.
If the goal is genuinely to improve Domo, I think the more useful question is:
Why did a customer who has a very obvious need for this feature decide it was easier not to use it?
Our use case could hardly be simpler.
Imagine a company with 100 locations. Employees at Location 17 should see Location 17's data. Someone responsible for Locations 17, 18, and 19 should see those three locations. Someone at the corporate level may need to see everything.
That's not an unusual or complicated permissions problem.
From our perspective, Domo took that very simple business rule and turned it into a much more complicated system of PDP policies, datasets, groups, permissions, exceptions, and administrative rules that we have to understand and maintain.
The problem isn't that PDP can't technically accomplish this.
The problem is that Domo made us think about security in Domo's terms instead of our business's terms.
I shouldn't have to think:
"What PDP policies does this user need on these datasets?"
I should be able to tell Domo:
"John belongs to Location 17."
That's the business rule.
Domo should take care of translating that business rule into the appropriate data restrictions.
If John moves from Location 17 to Location 22, I should change 17 to 22 in one place. I shouldn't have to think about every dataset, dashboard, policy, group, or other place where that change might have consequences.
That's what makes PDP frustrating to us (me). The administrative model doesn't correspond naturally to the way organizations actually work.
And with security, complexity isn't merely an inconvenience.
Complexity creates risk.
If a dashboard is difficult to build, someone gets annoyed.
If a security model is difficult to understand, someone can see data they aren't supposed to see.
So I think the standard for a permissions system should be unusually high. An administrator should be able to answer two questions immediately:
What can this user see?
Why can they see it?
If answering either question requires tracing policies across datasets, groups, roles, and exceptions, then I would argue the permissions system has failed an important usability test, regardless of how technically capable it may be.
That's why I wouldn't begin the conversation by defending PDP. I'd begin by asking why customers with an extremely straightforward need for row-level security can look at PDP and conclude that the safer and easier option is simply not to use it.
To me, that's the product problem worth solving.
Variables Have Been Broken for Months
Adding a new value to an existing variable is not possible. If you add the value, click save and navigate away, it has not actually been saved. If you click save twice, you can actually see the new value disappear.
Is anyone else experiencing this issue? I'm hoping someone has found a workaround.
I reached out to Domo support back in June and they confirmed the bug and are releasing a fix in September, but it has been almost two months and still have another month to go. Meanwhile, there seems to be nothing I can do.
chapman
How can an App Studio month filter dynamically default to and visibly display the latest available m
I have a monthly dashboard in Domo App Studio where I need the reporting month filter to automatically default to the latest month available in the dataset whenever new data arrives.
My dataset already contains a Latest Available Month column derived from the maximum Month. I also created a Beast Mode called Dynamic Default Month Filter, following this general logic:
CASE
WHEN `Month` = `Latest Available Month`
THEN CONCAT(DATE_FORMAT(`Month`, '%b''%y'), ' (Latest Month)')
ELSE DATE_FORMAT(`Month`, '%b''%y')
END
So the values in the drop down filter show like below (with July 2026 as the latest month available in the dataset)
In the default Filter View, I apply:
Dynamic Default Month Filter contains "Latest Month"
This successfully filters the dashboard to the latest available month and automatically advances when a new month is added.
The problem is the filter’s display behavior. When users initially open the dashboard, the visible Month dropdown remains blank and displays Select instead of the resolved value, such as Jul'26 (Latest Month).
If the user manually selects Jul'26 (Latest Month), the numbers remain unchanged because the latest-month condition was already applied in the background. This is potentially confusing, prompting anyone to think why not pre-load the Month filter box with the latest month value filter instead of showing blank.
The desired behavior is for the dashboard to dynamically select the latest available month and show the resolved value, such as Jul'26 (Latest Month) in the Month dropdown when the page loads. It should continue updating automatically as new monthly data becomes available while allowing users to select prior months.
Is there a supported way for an App Studio filter to display the value resolved by a condition-based default Filter View, without requiring a manual monthly update?
Facebook Ads connector — upcoming Facebook breakdown change (effective August 6, 2026)
Facebook recently announced a change to how they handle three specific breakdowns in their Ads Insights API, and it affects the Domo Facebook Ads Insights connector. We wanted to give you a heads-up ahead of the effective date.
What's changing
Starting August 6, 2026, Facebook will require these breakdowns to be enabled per Ad Account before their API returns any data for them:
impression_device(and any breakdown combination that includes it)hourly_stats_aggregated_by_audience_time_zonefrequency_value
Until an Ad Account is enabled, Facebook's API — both synchronous and asynchronous — will return no results for these breakdowns. This is a Facebook-side restriction, not a Domo connector issue.
Does this affect you?
If you use the Facebook Ads, Facebook Ads Advanced, or the Facebook Ads Advanced Multi Account connector, and have selected any of these three breakdowns — including via the "apply to all Facebook accounts" option — you'll want to take action before August 6. If you don't use these breakdowns, no action is needed.
What to do
Enable the breakdown for each affected Ad Account in Facebook Ads Manager. This has to be done on the Facebook side, per Ad Account — Domo doesn't have a way to enable it for you.
If you have Ad Accounts you're not sure are enabled, check Ads Manager directly, or reach out to your Facebook account rep.
Questions? Drop them below or reach out to Domo Support.






