A redesigned Query Builder is coming to Catalyst โ rebuilt from the ground up with an AI-powered SQL Generator, a new report library, and deeper collaboration tools. This article covers everything in the new experience.
Coming Soon
Query Builder โ New Experience
AI-Powered, No-Code Data Exploration for Every User
๐ค
AI SQL Generator
๐พ
Save & Share Reports
๐
No SQL Knowledge Needed
ย
Overview
The redesigned Query Builder is a fully rebuilt data exploration tool inside Catalyst. Where the current version focuses on column selection and condition filtering, the new experience adds an AI-powered SQL Generator that translates plain-English descriptions into queries automatically โ alongside a new report library, richer sharing tools, and a permissions model that distinguishes owners from collaborators.
Historically, extracting specific data from Catalyst meant either knowing how to build queries yourself or waiting on someone technical to do it for you. The new Query Builder removes that dependency. Anyone who knows what question they need answered can get the data โ without a technical background, without writing SQL, and without filing a request.
Beyond the functional changes, this is also a significantly improved experience visually and structurally โ cleaner navigation, a better-organized workspace, clearer feedback at every step, and an interface that doesn't require a training session to navigate.
Built for everyone on your team who works with financial and operational data:
Finance & AccountingControllers, accountants, and finance managers who need GL detail, journal entry exports, or account-level reconciliation data on demand โ without a data team in the loop.
FP&A & PlanningFP&A analysts, budget owners, and CFOs who need scenario comparisons, actuals vs. budget breakdowns, or custom profitability extracts for board decks and model inputs.
Financial ConsultantsEBM-side and client-side consultants who need to pull targeted datasets during engagements โ especially ad-hoc requests that don't fit a standard report.
Operations & SalesSales operations managers, customer success leads, and operations analysts who need customer-level profitability, transaction history, or segment performance data.
Data & Business AnalystsAnalysts who want to write or refine their own SQL directly โ or start with AI-generated SQL and customize it for more complex joins, aggregations, or business logic.
What's New
Here's how the new Query Builder compares to the current version โ six key areas that have changed:
FeatureThenNow
Query Building
Column selector + condition filtering only
Column selector and AI SQL Generator โ two modes, one tool
Report Library
Single flat query list
My Reports, Public Reports, and Recently Viewed โ with search and sort
Sharing
Download only (Excel/CSV)
Download plus email to up to 5 internal recipients with a direct report link
Permissions
Uniform view for all users
Owner vs. non-owner views โ edit & delete are owner-only; preview, copy & share open to all
Data Preview
No preview before opening a report
Preview modal shows first 10 rows from the report library with a direct Open Report button
Data Sources
Standard Catalyst scenario data only
Scenario data and Smartload-uploaded custom tables โ all in one tool
New Feature Highlights
Beyond the structural changes, these are the headline capabilities introduced in the new Query Builder:
๐ค
Visual, No-Code Interface
Build queries via dropdowns and a column selector without writing
any SQL. The Columns Selector mode lets non-technical users browse
attributes by category, check the fields they need, and run a query
โ all without touching code.
Who benefits: Business users,
financial consultants, anyone without a SQL background
โจ
AI SQL Generator
Type a plain-English question and the system generates a SQL SELECT
query automatically, based on your selected data source's schema.
The generated SQL is fully editable โ adjust it, replace it, or upload
your own saved template. INSERT, UPDATE, and DELETE are blocked;
the editor is read-only for data modification.
Who benefits: All users
โ especially those needing complex aggregations, joins, or custom
logic
๐พ
Reusable Reports
Save, name, and share reports for future use or modification. Public
reports are visible to all Query Builder users; private reports are
yours alone. Copying a report creates a new editable version automatically
named with a "Copy" suffix.
Who benefits: Teams needing
consistent, repeatable reporting across members
๐
Real-Time Schema Discovery
The Columns Selector automatically loads the full attribute and column
list from your selected data source โ including Smartload tables
โ with parent/child grouping and a Select All control. Column counts
are shown inline, and a searchable expanded modal is available for
large schemas.
Who benefits: Users exploring
unfamiliar data sources or large schemas
๐ค
Share by Link or Email
Report owners can share a Public report to up to 5 internal recipients
via email. Recipients receive a direct link to the report and open
it in a read-only, non-owner view showing live data according to
their permissions. Private reports cannot be shared via link โ the
link is disabled if a report is made Private.
Who benefits: Analysts sharing
results with stakeholders; teams collaborating on shared datasets
๐ง
Unsaved-Change Protection
The system detects unsaved changes and surfaces warning modals in
three scenarios: leaving the page with unsaved edits, missing mandatory
fields (name or data source), and attempting to save without re-running
after column changes. The Save button is disabled until the query
has been run against the latest column configuration.
Who benefits: Anyone building
complex reports who doesn't want to lose work
Finding Query Builder
Query Builder is accessed from the Analysis section of the Catalyst navigation menu โ the same location as today. Click Analysis in the left nav, then select Query Builder.
The Report Library
Opening Query Builder takes you to the report library โ your central hub for finding, managing, and acting on reports. Three tabs organize everything:
๐
My Reports
Full Control
Reports you've created, sorted by last modified date so your most
recent work stays at the top. You can edit, delete, share, download,
copy, and preview any report here. A count badge shows your total,
with a View All link when you have more than the default shown.
๐
Public Reports
View Only
Reports marked Public by their owners โ visible to all Query Builder
users. Filter by data source or owner, or search by report name.
You can preview, download, copy, or share these, but cannot edit
or delete them. A report count is shown with a filter badge.
๐
Recently Viewed
Quick Access
Reports you've opened recently, labeled with a "Last interaction:"
date. A shortcut back to work in progress or reports you return to
regularly. Common report actions are available directly from this
tab.
Searching for reports: Use the search bar (in My Reports and Public Reports) to filter by report name. Data source and owner dropdowns are also available in the Public Reports tab. Search is scoped to report names only โ not owner metadata.
Report Actions
Each report has action icons on the right. Owners see the full set; non-owners see a limited subset:
๐๏ธ
Preview
First 10 rows, inline modal
All users
๐ค
Share
Email to up to 5 internal users
All users
โฌ๏ธ
Download
Full dataset, Excel or CSV
All users
๐
Copy
Duplicate with "Copy" naming
All users
โ๏ธ
Edit
Modify columns, source, or query
Owner only
๐๏ธ
Delete
Permanently remove
Owner only
Creating a New Report
Click Add New from the report library. The creation screen has a left panel for configuration and a main area for your query and results. A three-step indicator at the top tracks your progress.
The short version
Set a name, choose a data source, pick your query mode (Columns Selector or SQL Generator), run the query, then save. Each step has options worth knowing about โ expand any step below for full detail.
Visibility
Public โ visible
to all Query Builder users.
Private โ visible
only to you. Sharing via link is disabled for Private
reports.
Report Name
Up to 50 characters. Inline validation prevents duplicates
and alerts you if the name exceeds the limit before you
try to save.
Data Source
Catalyst scenario data (Financial, Profitability) or
any Smartload-uploaded custom table. Columns load automatically
once a source is selected.
The Type toggle lets you
switch between two modes at any time within the same report.
โฐ
Columns Selector
Visual, no-code
Browse attributes, check the fields you want, and build
your output without writing anything. The attribute list uses
parent/child groupings โ expand a category to see all fields
within it. Use the Select All checkbox to grab every field
in a category, or open the Select Columns modal for a full-screen
view with search. The Run Query button only activates once
at least one column is selected.
Best for: Structured extracts, no-join queries,
users new to querying, repeatable reports
Tips
โ
Search the attribute list
โ type in the Columns search box to filter fields
by name. Useful when you know what you're looking
for but don't want to scroll through a large schema.
โ
Use Select All with caution
โ it grabs every field in the category. Good for exploration,
but pare back before saving. Many attributes have ID,
Short Description, and Name variants โ you usually only
need one.
โ
Open the Select Columns modal
for a wider view โ it shows the full attribute tree,
supports search and Select All, and stays in sync with
the left panel. Panel and modal selections are always
synchronized.
โ
Collapse/Expand All
controls how categories are displayed across both the
panel and the modal โ states stay in sync between both
views.
Changing columns on a saved report? The Save
button disables until you re-run the query. A tooltip reads:
"Please run query to enable saving."
AI
SQL Generator
AI-powered
Type your question in plain English โ the AI writes a SELECT
query based on your data source schema. The generated SQL
appears in the dark-theme editor below. The editor is fully
editable: adjust the generated code, replace it entirely,
or upload a saved SQL template using the upload icon. INSERT,
UPDATE, and DELETE statements are blocked โ the editor enforces
read-only SQL only. Your original prompt is saved with the
report so you can see what generated the query later.
Best for: Complex aggregations, cross-table
joins, custom logic, power users
How to use it
1
Type your question in plain English
Up to 1,200 characters. Be specific โ mention field
names, data sources, aggregations, grouping, and sort
order. The more precise your prompt, the better the
generated SQL.
2
Click Generate SQL
The AI produces a SELECT statement and populates the
SQL editor. INSERT, UPDATE, and DELETE are blocked โ
if the generated SQL contains them, an error message
explains why they were rejected.
3
Review and edit the SQL (optional)
Edit the generated code directly in the editor, or
discard it and write your own. You can also upload a
saved SQL file using the upload icon โ useful for reusing
queries from previous sessions or distributing templates
across your team.
4
Click Run Query
Results display in the data grid to the right. The
preview shows the first rows; downloading gives you
the full dataset. If the SQL has validation errors,
descriptive hints appear inline below the editor.
Note on table names: Browse the Columns Selector
first to see the exact field names in your environment, then switch
to SQL Generator and use those names in your prompt or SQL.
After running your query, use Filter
to add conditions that narrow results without modifying your columns
or SQL. Filters are saved with the report and applied on every future
run. Use Revert to undo unsaved
filter changes.
Saving
Click Save after running.
If columns or SQL changed since the last run, Save is disabled
until you re-run. A toast confirms success; duplicate names are
caught inline before saving.
Share & Download
Click Share/Download.
Choose Excel or CSV and click Download,
or enter up to 5 internal email addresses to send by email.
Files over 25MB can only be downloaded, not emailed.
Reports don't auto-refresh. Data reflects the last
time the query was run. Re-run before sharing if you need current
data.
Common SQL Examples
Ready-to-use prompts and SQL patterns for the most common Query Builder use cases. Expand any example to see the full prompt and generated SQL. Table and column names in your environment may differ โ use the Columns Selector to check exact field names first.
Prompt
"Show total gross sales grouped by customer name for the 2025 Actuals scenario, sorted highest to lowest"
Generated SQL
SELECT CustomerName, SUM(GrossSales) AS TotalGrossSales
FROM [dynamic].[ProfitabilityDetail]
WHERE Scenario = '2025 Actuals'
GROUP BY CustomerName
ORDER BY TotalGrossSales DESC
Prompt
"Show total gross sales, COGS, and quantity per sales channel"
Generated SQL
SELECT Channel,
SUM(CAST(GrossSales AS FLOAT)) AS TotalGrossSales,
SUM(CAST(COGS AS FLOAT)) AS TotalCOGS,
SUM(CAST(Quantity AS FLOAT)) AS TotalQuantity
FROM [dynamic].[ProfitabilityDetail]
LEFT JOIN [dynamic].[CustomerAttribute]
ON [dynamic].[ProfitabilityDetail].CustomerID = [dynamic].[CustomerAttribute].CustomerID
GROUP BY Channel
Prompt
"Show all journal entries posted between January and March 2025 with account number and amount"
Generated SQL
SELECT PostingDate, AccountNumber, JournalAmount, Description
FROM [dynamic].[FinancialJournalEntry]
WHERE PostingDate BETWEEN '2025-01-01' AND '2025-03-31'
ORDER BY PostingDate ASC
Prompt
"Show actuals vs. budget gross profit by department for 2025, with the variance amount and variance percentage"
Generated SQL
SELECT
a.Department,
SUM(a.GrossProfit) AS ActualsGrossProfit,
SUM(b.GrossProfit) AS BudgetGrossProfit,
SUM(a.GrossProfit) - SUM(b.GrossProfit) AS Variance,
CASE
WHEN SUM(b.GrossProfit) = 0 THEN NULL
ELSE ROUND(
(SUM(a.GrossProfit) - SUM(b.GrossProfit)) / ABS(SUM(b.GrossProfit)) * 100, 2
)
END AS VariancePct
FROM [dynamic].[ProfitabilityDetail] a
LEFT JOIN [dynamic].[ProfitabilityDetail] b
ON a.Department = b.Department
AND b.Scenario = '2025 Budget'
WHERE a.Scenario = '2025 Actuals'
GROUP BY a.Department
ORDER BY Variance ASC
Prompt
"Show all open accounts payable invoices with vendor name, invoice date, due date, and amount, for invoices due in the next 30 days"
Generated SQL
SELECT VendorName, InvoiceDate, DueDate, InvoiceAmount, Status
FROM [dynamic].[AccountsPayableDetail]
WHERE Status = 'Open'
AND DueDate BETWEEN GETDATE() AND DATEADD(day, 30, GETDATE())
ORDER BY DueDate ASC
Prompt
"Show the top 20 products by gross margin percentage for 2025 Actuals, including total sales and COGS"
Generated SQL
SELECT TOP 20
ItemDescription,
SUM(GrossSales) AS TotalSales,
SUM(COGS) AS TotalCOGS,
SUM(GrossSales) - SUM(COGS) AS GrossMargin,
ROUND(
(SUM(GrossSales) - SUM(COGS)) / NULLIF(SUM(GrossSales), 0) * 100, 2
) AS GrossMarginPct
FROM [dynamic].[ProfitabilityDetail]
WHERE Scenario = '2025 Actuals'
GROUP BY ItemDescription
ORDER BY GrossMarginPct DESC
Note on table names: The actual table and column names in your environment will differ. Use the Columns Selector to browse available fields first, then reference those exact names in your SQL Generator prompt.
Filter Operators Explained
Filters narrow results without modifying your columns or SQL. Each condition requires a field, an operator, and a value. Here's what each operator means and when to use it:
EqualsExact match
Matches a field that equals exactly one specified value. Case-sensitive for text fields.
Use when: You know the exact value โ e.g. Scenario = "2025 Actuals", Company = "ACME001"
Is In ListMultiple exact matches
Matches any value in a specified list. Equivalent to SQL's IN operator. More efficient than stacking multiple "Equals" conditions.
Use when: You want results for several known values โ e.g. Item Category is in ["Beer", "Wine", "Spirits"]
ContainsPartial text match
Matches any field value that includes the specified text anywhere in the string. Equivalent to SQL LIKE '%value%'. Useful when you don't know the exact value but know part of it.
Use when: Searching by partial name โ e.g. Item Number contains "900" to get all 900-series items
Caution: "Contains" can return unexpected results if the substring appears in unrelated fields. Switch to "Equals" or "Is In List" when you want exact control.
Greater / Less ThanNumeric threshold
Filters numeric fields above (>) or below (<) a value. Optionally inclusive (>= or <=). Works on dates too โ "PostingDate greater than 2025-01-01" returns all entries after that date.
Use when: Filtering by amount thresholds โ e.g. GrossSales > 10000 to see high-value transactions only
BetweenRange (inclusive)
Matches values within a defined start and end range, inclusive of both endpoints. Works for numeric values and dates. Equivalent to SQL's BETWEEN operator.
Use when: Extracting a time period โ e.g. CalendarDate between 2025-01-01 and 2025-03-31 for Q1 2025
Does Not Equal / Not In ListExclusion
Excludes matching values. The inverse of Equals and Is In List. Useful for removing test data, internal accounts, or specific scenarios from results.
Use when: Excluding known noise โ e.g. Scenario not in ["Test", "Draft", "Legacy"]
Example: Filtering 2025 Invoices by Customer and Item
To extract 2025 invoices for Acme Corporation containing 900-series items, stack three conditions:
Scenario equals "2025 Actuals"
Customer Name equals "Acme Corporation"
Item Number contains "900"
Exporting Your Data
The export format you choose determines both the file type and the maximum number of rows you can retrieve.
Excel (.xlsx)
100K
row maximum
Best for small to medium datasets, pivot tables, and formatted reports you'll work with in Excel
CSV
1M
row maximum
Best for large datasets, database imports, and programmatic processing
CSV Extended
50M+
rows (requires enablement)
Enterprise-scale extracts via the Profitability Actual Data Query Model
Need 50M+ Row Exports?
Contact EBM Support to enable the Profitability Actual Data Query Model for your organization. Once enabled, CSV exports scale to 50 million+ rows.
Apply conditions before running โ unfiltered large datasets run slowly
Test with a narrow date range first, then widen
Use "Is In List" when you need exact value matching
Save reports you'll run more than once
Name reports specifically โ include scenario, date range, or subject
Copy a Public report to customize it rather than building from scratch
In SQL Generator, be specific in your prompt โ mention field names and groupings
Avoid This
Selecting all available columns "just in case"
Running a query with no filter conditions on a large data source
Using "Contains" when an exact match operator would be more precise
Including redundant ID/Name/Description variants of the same field
Excel export for datasets over 100,000 rows
Vague report names like "Test", "My Query", or "Query1"
Writing INSERT, UPDATE, or DELETE in SQL Generator โ these are blocked
Troubleshooting
Find your symptom below. Each issue includes what's likely causing it and how to fix it.
Symptom
Query returns no results
Likely cause: Conditions are too restrictive or filter values don't match exactly what's stored โ including capitalization and spacing.
Fix: Remove conditions one at a time to find the culprit. Switch "Contains" to "Equals" to rule out partial-match issues.
Symptom
Query runs slowly
Likely cause: Too many columns selected, or no filter conditions limiting a large data source.
Fix: Reduce selected columns, narrow your date range, add more specific conditions. In SQL Generator, check for unnecessary broad intermediate results before aggregating.
Symptom
Export fails or times out
Likely cause: Dataset exceeds the format limit (100K rows for Excel, 1M for CSV).
Fix: Switch from Excel to CSV. If CSV still fails, narrow your criteria. Contact EBM Support to enable extended exports (50M+ rows).
Symptom
Unexpected data in results
Likely cause: "Contains" is matching partial text in unrelated records, or you're on the wrong data source.
Fix: Switch to "Equals" or "Is In List" for precise filtering. Verify data source is Financial vs. Profitability. In SQL Generator, review the WHERE clause.
Symptom
Save button is grayed out
Likely cause: Columns or SQL changed since the last run โ the system requires you to validate the new configuration before saving.
Fix: Click Run Query. The tooltip reads: "Please run query to enable saving." Save re-enables once the query completes successfully.
Symptom
Can't email โ file too large
Likely cause: Export file exceeds the 25MB email limit.
Fix: Download the file directly instead. To reduce size: apply tighter filter conditions or remove columns you don't need.
Frequently Asked Questions
No โ reports are ad hoc. They show data as of when the query was last run. To get current data, open the report and click Run Query again before reviewing or sharing results.
No โ sharing is restricted to internal users only. Email sharing validates addresses and blocks external recipients. You can download the report file and share it externally through other means.
Existing queries are being assessed and migrated to the new format. Most will be converted to SQL statements compatible with the new system. Complex queries that relied on legacy staging or landing tables may need attention โ the team will communicate directly if your queries are affected.
Yes โ any table uploaded to Smartload appears as a data source option in the Query Builder dropdown. No extra configuration is needed.
The Report Preview modal (from the report library) shows the first 10 rows. The in-report preview after running shows the first 1,000 rows. Downloading gives you the full dataset โ up to the format row limit (100K for Excel, 1M for CSV).
Yes โ download as Excel (.xlsx) or CSV and open in any tool you prefer. Reports don't sync automatically; re-run and re-export when you need fresh data. Future enhancements will include deeper Catalyst dashboard and analytic store integration.
The new Query Builder removes the barrier between wanting data and having it. Pick a data source, build your query visually or let AI write the SQL, apply filters, and share or download what you need โ all without a technical team in the loop. For Early Adopter participants: your feedback during this phase directly shapes the final release. Use the Support link above to report anything you notice.
Comments
0 comments
Please sign in to leave a comment.