> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Product updates

> Stay current with the latest Omni product updates, including new features, platform improvements, and bug fixes for 2026.

<Tip>
  **Want to be notified about new updates?** Click the **Subscribe** button and use the URL to set up an RSS feed in [Slack](https://slack.com/help/articles/218688467-Add-RSS-feeds-to-Slack) or an [RSS aggregator](https://feeder.co/).
</Tip>

<Update label="Week of October 5, 2026" rss={{title: "October 5, 2026", description: "Scheduled deliveries and alerts for workbooks, bulk chart editor upgrades with layer settings, AI model suggestions now generally available, and more"}}>
  **Administration**

  * Added an organization-level [**Full screen** setting](https://docs.omni.co/administration/settings/app-policy#full-screen).
  * You can now enter multiple email addresses one per line (as well as comma- or semicolon-separated) when [inviting users](https://docs.omni.co/administration/users/invite), with flags for malformed or duplicate addresses before you send. After sending, a results screen shows which invitations succeeded and which need attention, with actions like viewing the user or copying their sign-in link.
  * Added an [LLM settings](https://docs.omni.co/ai/settings/llm-settings) page where Organization Admins can approve specific providers and LLMs and set an organization default LLM and thinking level.

    **Note**: The [`analyze_configuration`](https://docs.omni.co/modeling/models/parameters/ai-settings/analyze-configuration) `model.yaml` parameter is deprecated and stops working on October 14, 2026. See [Migrating to LLM settings](https://docs.omni.co/modeling/models/parameters/ai-settings/analyze-configuration#migrating-to-llm-settings) for more information.
  * Granting or revoking a user or group's ability to switch a user attribute value is now recorded in audit logs with the [`UPDATE_USER_ATTRIBUTE_SELECTABLE_VALUES`](https://docs.omni.co/administration/audit-logs/event-types#selectable-values-updated) event.

  **AI**

  * Added a [**Full screen** app-level setting](https://docs.omni.co/visualize-present/apps/settings#full-screen) for Apps.
  * On an Omni-managed, 1M-context-window Claude or GPT model, the Omni Agent now keeps more conversation history before pruning and allows file uploads of up to 250,000 tokens (50,000 on other LLMs). See [`conversation_prune_length`](https://docs.omni.co/modeling/models/parameters/ai-settings/conversation-prune-length#behavior) for more information.
  * [AI model suggestions](https://docs.omni.co/ai/suggestions) are now available to every organization, no longer limited to a closed beta. Access requires Organization Admin permissions, Omni AI enabled, and a shared model.
  * You can now select an LLM and thinking level for eval runs.
  * Added support for the [Omni Agent](https://docs.omni.co/ai/queries) to propose creating a new SQL tab, in addition to writing or replacing SQL on the tab you're viewing.
  * Skills now have the same [sharing and organization options](https://docs.omni.co/ai/skills#share-access) as other Omni content.
  * [AI integrations](https://docs.omni.co/ai/chat#managing-ai-integrations) are now listed in a **Connectors** submenu in the Omni Agent's **Actions** menu.
  * Apps can now play video and audio from hosts added to an app's [Safe domains](https://docs.omni.co/visualize-present/apps/settings#safe-domains).
  * Removed the default "What can I ask?" and "Show me some data" chips that displayed on the Omni Agent.
  * You can now authenticate [Snowflake Cortex](https://docs.omni.co/ai/settings/model-providers/snowflake-cortex) with a Snowflake key pair in addition to a programmatic access token.
  * Fixed an issue where the Omni Slack Agent could appear unresponsive in direct messages when a workspace installed it without the optional `im:history` scope. The agent now directs users to `/omni ask` for private queries in that case, since Slack doesn't deliver regular DMs or DM thread replies without that scope. See [Omni Slack Agent](https://docs.omni.co/integrations/omni-slack-agent#optional-scopes).
  * Removed [**Sandbox** mode](https://docs.omni.co/ai/model-assistant#modeling-modes) from the Omni Agent in the Model IDE. Existing Sandbox preferences fall back to Review.
  * Added a [`cancelJob`](https://docs.omni.co/ai/mcp/tools#cancel-job) MCP tool, so an AI client can stop a running `askOmni` job.
  * You can now render a saved [app](https://docs.omni.co/visualize-present/apps) inline with live data from Claude Desktop, using the new `showApp` MCP tool. See [MCP tools](https://docs.omni.co/ai/mcp/tools#show-app) for details.

  **API**

  * Added [API endpoints for IP allowlist management](https://docs.omni.co/api/ip-allowlist/get-the-ip-allowlist).
  * The [Trigger schedule endpoint](https://docs.omni.co/api/schedules/trigger-schedule) now supports triggering workbook-based deliveries.
  * Added an optional `rejectIfViewExists` parameter to the [Create or update YAML files](https://docs.omni.co/api/models/create-or-update-yaml-files) API endpoint. When set to `true`, uploading a `.view` file now returns an error instead of merging into or duplicating an existing view already defined in the model.
  * The [Delete schedule endpoint](https://docs.omni.co/api/schedules/delete-schedule) now supports deleting workbook-based schedules.
  * The [Remove schedule recipients endpoint](https://docs.omni.co/api/schedule-recipients/remove-schedule-recipients) now supports removing recipients from workbook-based schedules.
  * Updated the [Get schedule endpoint](https://docs.omni.co/api/schedules/get-schedule) to return workbook-based deliveries.
  * The [Resume schedule endpoint](https://docs.omni.co/api/schedules/resume-schedule) now supports resuming workbook-based deliveries.
  * The [Pause schedule endpoint](https://docs.omni.co/api/schedules/pause-schedule) now supports pausing workbook-based deliveries.
  * You can now create [cross-model tabs](https://docs.omni.co/analyze-explore/cross-model-tabs#create-a-cross-model-tab-via-the-api) through the Documents API.
  * An organization API key can now pass `userId` to the [read](https://docs.omni.co/api/apps/read-app-content), [draft](https://docs.omni.co/api/apps/createreuse-draft-and-replace-app-content), [publish](https://docs.omni.co/api/documents-v2/publish-draft), and [list document queries](https://docs.omni.co/api/documents/list-document-queries) app APIs to act as that member instead of the key's creator.

    The MCP server's [app tools](https://docs.omni.co/ai/mcp/tools#apps) (`getApp`, `getAppDraft`, `putApp`, `patchApp`, `publishDraft`) and `listDocumentQueries` now forward the connection's impersonated user the same way, instead of always running as the API key or connected user.
  * The [List schedule recipients endpoint](https://docs.omni.co/api/schedule-recipients/list-schedule-recipients) now supports listing recipients of workbook-based deliveries.
  * The [Add schedule recipients endpoint](https://docs.omni.co/api/schedule-recipients/add-schedule-recipients) now supports adding recipients to workbook-based webhook deliveries.
  * Added a new endpoint that allows you to [run one of a document's saved queries directly](https://docs.omni.co/api/documents/run-a-saved-document-query) and returns the results, without requiring Restricted Querier access.
  * Updated the [Replace upload data endpoint](https://docs.omni.co/api/uploads/replace-upload-data) to keep the data types of columns already in the data input table, and return an error if a new value doesn't adhere to the existing column's data type.
  * Fixed an issue where the [Search Omni docs](https://docs.omni.co/api/ai/search-omni-docs) API could return a generic error instead of a `402` when the organization, the acting user, or that user's embed entity was over its AI credit limit.
  * Added `userId` and `membershipId` to the [Generate embedded SSO session](https://docs.omni.co/api/embed/generate-embedded-sso-session) endpoint's response, so you can identify the embed user it logs in as without a separate lookup.
  * The [List schedules](https://docs.omni.co/api/schedules/list-schedules) API now includes workbook-based deliveries.
  * Added support for listing, creating, and managing external users through SCIM, including their group memberships. Docs coming soon.
  * Added a [new endpoint](https://docs.omni.co/api/queries/read-query-results-by-offset) that reads a completed query job's result by byte offset, so a large result can be fetched in pieces or a dropped connection resumed.

  **Content**

  * Added quick filters to [content search](https://docs.omni.co/content/search#quick-filters). Select **All content** or **Recently updated** from the search dialog or the full search page to instantly sort results. Applying a `sort:` facet now also sorts results directly in the search dialog.
  * You can now immediately [restore discarded drafts](https://docs.omni.co/develop/drafts#archiving-drafts) from the discard confirmation by clicking **Undo**.

  **Dashboards**

  Fixed an issue where turning on [Wrap](https://docs.omni.co/visualize-present/dashboards/containers-items#stack-containers) for a vertical stack container could break a table tile's horizontal scrolling and frozen columns. Wrap now only applies to, and is only offered for, horizontal (row) stacks.

  **Deliveries & Alerts**

  * Organization Admins can now [transfer ownership of a delivery](https://docs.omni.co/administration/settings/deliveries#transfer-ownership) to another active organization member directly from the **Settings > Deliveries** page, either one at a time or for several selected deliveries at once.
  * You can now transfer ownership of a schedule for a workbook delivery, not just a dashboard delivery, using the [Transfer schedule ownership](https://docs.omni.co/api/schedules/transfer-schedule-ownership) API endpoint.
  * You can now set up [scheduled deliveries and alerts](https://docs.omni.co/share/deliveries) directly from workbooks.
  * You can now [preview dashboard downloads and deliveries](https://docs.omni.co/visualize-present/dashboards/download) before sending them.

  **Integrations**

  * Fixed an issue where [dbt environment variables](https://docs.omni.co/integrations/dbt/environments#add-variables) couldn't be saved with an empty value. Non-secret variables can now be left blank; secret variables still require a value.
  * Previously, the Snowflake Semantic View integration would skip importing an entire view if it contained a field with SQL that Omni couldn't parse. Omni now imports the rest of the view, skipping [only the problematic field](https://docs.omni.co/connect-data/snowflake-semantic-views/sync/trigger-sync#troubleshooting) and any fields that reference it.

  **Modeling**

  * Fixed an issue where a model relationship's [`join_to_view_as_label`](https://docs.omni.co/modeling/relationships/parameters/join-to-view-as-label#behavior) always overrode a joined view's label in a topic, even when the topic set its own view label or re-declared the relationship. Topic-level labels now take precedence over model-level ones, so topics can override a model relationship's label as expected.
  * Fixed an issue where using PostgreSQL's `#>` and `#>>` JSON path operators in a modeled field's `sql` definition caused a parse error, which could also break other fields that referenced it.
  * Fixed an issue where a dashboard or workbook filter could override the filters the Omni Agent wrote into a generated CTE query, changing the query's meaning. These AI-written filters are now marked [`exclude_from_bind_all`](https://docs.omni.co/modeling/filters/operators/exclude-from-bind-all) so they're preserved as written.
  * The [`query_all_views_and_fields`](https://docs.omni.co/modeling/models/parameters/ai-settings/query-all-views-and-fields) AI setting now defaults to `enabled`.
  * Fixed an issue where [shared model extensions](https://docs.omni.co/modeling/develop/shared-extensions) with spaces or punctuation in their name, like `HQ (Org View Only)`, failed to sync to Git.
  * Added a [Webhook Deliveries](https://docs.omni.co/integrations/git/webhook-deliveries) page to model settings, showing the status and outcome of each pull request webhook Omni has received for a model's Git repository.

  **Visualization**

  * You can now upgrade every eligible chart on a dashboard page to the new [layers chart editor](https://docs.omni.co/visualize-present/visualizations/layers/switch-editors#upgrade-every-chart-on-a-dashboard-page-at-once) in one step, instead of upgrading charts one at a time. Each chart is changed in place, so its tile keeps its position, filters, and controls.
  * Moved layer settings into each field on the [Y-axes](https://docs.omni.co/visualize-present/visualizations/layers#layer-settings).
  * Converting a chart to [Vega-Lite code](https://docs.omni.co/visualize-present/visualizations/types/custom) now shows a confirmation dialog first. The menu option for this has been renamed to **Convert to a Vega-Lite code chart…**.

  **Workbook**

  * Columns in [data input tables](https://docs.omni.co/analyze-explore/data-input-csvs#limitations) now retain their data types when the table is saved instead of inferring a type based on new data.
  * You can now choose a column's data type when uploading a CSV or XLSX file and when editing an existing [data input table's](https://docs.omni.co/analyze-explore/data-input-csvs) fields, and Omni converts the stored data to match.
  * Improved error reporting for [CSV uploads](https://docs.omni.co/analyze-explore/data-input-csvs) in workbooks. If a value doesn't match its column's inferred type, Omni now reports the row, column, and expected format instead of a generic error, for example: `Row 30,002: "2/13/2026" in day isn't a date in DD/MM/YYYY`.
  * Added a selection summary to workbook tables: selecting two or more cells shows a chip in the tab bar with **Sum**, **Average**, **Min**, **Max**, **Count**, or **Count numbers**, plus a button to copy the value.
</Update>

<Update label="Week of September 28, 2026" rss={{title: "September 28, 2026", description: "One-click chart labels, multi-user Slack routine delivery, AI summary expansion in downloads, and more"}}>
  **Administration**

  * Scheduled delivery and alert emails now render in the [recipient's locale](https://docs.omni.co/administration/localization#scheduled-email-notifications), and owner-only notices (failed delivery, task errors, recipient limit) render in the schedule owner's locale.
  * You can now let users switch their own [user attribute](https://docs.omni.co/administration/users/attributes/user-selected) value from the **File** menu on dashboards, workbooks, apps, reports, and the IDE. Admins can define which values a user or group can switch to from the user's or group's **Settings** tab.
  * `API_REQUEST` audit log events now include an [`actor`](https://docs.omni.co/administration/audit-logs/event-types#api-request-events) field identifying the Omni user associated with the API call.

  **AI**

  * You can now ask the Omni Agent to deliver a [routine](https://docs.omni.co/ai/routines) to several people at once, which creates a Slack group direct message of up to 8 people. You can also define this manually when creating or editing a routine.
  * You can now run a [skill](https://docs.omni.co/ai/skills#routine-run-skill) from a routine's prompt by typing its `/identifier`.
  * Added support for [running a saved skill](https://docs.omni.co/ai/skills#running-skills) on Slack, through the API, and with an MCP client by typing its `/identifier` anywhere in a prompt.
  * You can now ask the Omni Agent to create an [input column](https://docs.omni.co/analyze-explore/input-columns) by describing it in chat. The agent sets up the column's structure (name, data type, edit mode, and key columns); you or an app still enter the values.
  * [`validate_analysis`](https://docs.omni.co/modeling/models/parameters/ai-settings/validate-analysis) checks now always run as a guaranteed step after the AI writes its answer, rather than depending on the AI choosing to call a validation tool, so critical errors in an analysis are caught consistently across the browser, Slack, API, MCP, and scheduled sources.
  * The [Omni Agent](https://docs.omni.co/ai/queries) can now write or replace SQL directly on a SQL tab you're viewing.
  * You can now [download](https://docs.omni.co/visualize-present/apps/download) a published app as a PNG, PDF, Excel workbook, or zipped CSVs from **File > Download**. Scheduled app deliveries now also support PDF, Excel, and CSV formats.
  * You can now delete a saved [skill](https://docs.omni.co/ai/skills#deleting-skills) by asking the Omni Agent in Slack, the AI job API, or MCP.
  * Added a [**Verify changes**](https://docs.omni.co/administration/settings/app-policy#verify-changes) setting that controls whether the Omni Agent runs its post-edit verification check after a chat edit to a draft app.
  * You can now edit an existing [skill](https://docs.omni.co/ai/skills#editing-skills) by asking the Omni Agent, the Omni Slack Agent, or an MCP client. On Slack and MCP, the agent changes only what you explicitly asked for and won't guess if a request is ambiguous.
  * Apps can now request folder labels when calling the Omni API's [`/api/v1/folders`](https://docs.omni.co/visualize-present/apps#api-endpoints) endpoint with `include=labels`.
  * Added the [**Data Dictionary** app](https://docs.omni.co/library?item=data-dictionary) to the Library, a read-only browser for exploring your semantic model's domains, topics, fields, and join diagrams with global search capabilities.

  **API**

  * The [Create AI job](https://docs.omni.co/api/ai/create-ai-job) API now enforces a combined 16,000,000-byte limit on encoded attachment content, returning an error if exceeded. The existing 5-attachment and 50,000-token limits are unchanged.
  * Added a `recipients` field to Slack destinations in the [AI Routines API](https://docs.omni.co/api/ai-routines), matching the field used by the schedules API; the deprecated `recipientId` field still works. Slack destination responses now also include `channelIds` and `userIds`.
  * Users can read and change their own attributes with the [attribute switch APIs](https://docs.omni.co/api/user-attributes/list-switchable-attributes-for-the-current-user); admins can programmatically control the values users can set with the [Set switchable values API](https://docs.omni.co/api/user-attributes/set-switchable-values-for-a-user-or-group).
  * Fixed an issue where calling [Pick topic](https://docs.omni.co/api/ai/pick-topic) with a `userId` override could check AI credits and record usage against the API key holder instead of the overridden user.

  **Content**

  * Removed the Share dialog's **Settings** tab. Document settings, like [abilities](https://docs.omni.co/share#controlling-document-interactivity) and [identifiers](https://docs.omni.co/share#changing-document-urls-and-identifiers), are now reached only through **File > Document Settings**, or for apps, **File > Settings** or the gear icon.
  * Added a [`sort:` facet](https://docs.omni.co/content/search#refining-results-with-facets) to the full content search page, so you can set the sort order of results directly from the search box.

  **Deliveries & Alerts**

  * You can now expand AI summary tiles to show their full text in dashboard PDF and PNG downloads and scheduled deliveries, using the [`expandAiSummaries`](https://docs.omni.co/visualize-present/dashboards/download) option in the API or the **Expand scrollable content** option in the Omni UI. This option, along with table row expansion, is now also available with the **Fit page to dashboard** paper size, where the page grows to fit the expanded content instead of paginating.
  * You can now set up [Slack deliveries](https://docs.omni.co/share/deliveries/slack#channel-message) to users as a single group direct message instead of a separate direct message to each recipient.

  **Embedding**

  Added [`page:ready`](https://docs.omni.co/embed/events/page-ready) and [`dashboard:ready`](https://docs.omni.co/embed/events/dashboard-ready) events that fire when embedded content has finished loading, and messages sent while the page loads are now held and delivered after the ready event fires.

  **Integrations**

  You can now [view and un-ignore](https://docs.omni.co/integrations/dbt/ignore) ignored dbt sync issues. Select **Only ignored issues** from the dbt IDE's View menu to filter to them, then un-ignore a single issue, all issues in a file, or all issues in a directory.

  **Modeling**

  * [Hard refreshes](https://docs.omni.co/modeling/develop/schema-refreshes) can now be scoped to specific schemas or tables.
  * Updated the [`type: column` filter-only field parameter](https://docs.omni.co/modeling/templated-filters#type) to quote each part separately, so you can use schema-qualified table names like `schema.table` (now rendered as `"schema"."table"`).
  * Added an `else_raw_value` option to [`groups`](https://docs.omni.co/modeling/dimensions/parameters/groups), so values that don't match any group can keep their original value instead of falling back to an "Other" label. In the custom groups editor, filter-condition groups now have a "Keep original value when no group matches" toggle to match the model YAML parameter.
  * Added an optional [`mask_format`](https://docs.omni.co/modeling/dimensions/parameters/mask-unless-access-grants) property to `mask_unless_access_grants`, so masked dimension values can be shortened and given a prefix instead of always showing the full SHA-256 hash.
  * Input columns now use a stable warehouse table name by default on connections that support swapping tables (Postgres, Snowflake, and Databricks), instead of generating a new table on every save. You can also set your own [table name](https://docs.omni.co/analyze-explore/input-columns#adding-an-input-column) when creating an input column on these connections.

  **Visualization**

  * You can now add labels to a [chart layer](https://docs.omni.co/visualize-present/visualizations/layers#labels-and-totals) in one click.
  * The chart [layer panel](https://docs.omni.co/visualize-present/visualizations/layers#change-every-layer-at-once) is now always titled **Layers**, and shows a note explaining what a layer is when an axis has none yet. The bulk-edit menu for setting a value across every layer still only appears with two or more layers.
  * In the [layers editor](https://docs.omni.co/visualize-present/visualizations/layers#how-layers-work), both sides of a chart's dependent axis (for example, **Left-Axis** and **Right-Axis**) now always display, so you can drop a field onto the empty side directly instead of dragging to reveal it. The Swap axes button is also renamed **Rotate chart**.
  * Added a new [**Align with other axis** setting](https://docs.omni.co/visualize-present/visualizations/layers#align-zero-on-both-axes) to visualization layers, which allows you to align the zero line across multiple axes when you set a custom minimum or maximum value.

  **Workbook**

  * You can now [offset a row total or grand total reference](https://docs.omni.co/analyze-explore/calculations) down the rows in table calculations, for example `B2_ROW_TOTAL`, to compare a row's total with another row's total. This works both inside and outside a pivot.
  * CSV and XLSX downloads now label subtotal and grand total rows with `Total` in one dimension cell, matching what's shown in the results table. Applies to workbook and tile downloads, dashboard downloads, chat downloads, scheduled deliveries, and the [Run query](https://docs.omni.co/api/queries/run-query) and [Initiate dashboard or tile download](https://docs.omni.co/api/dashboard-downloads/initiate-download) API endpoints. See [Downloading results](https://docs.omni.co/analyze-explore/point-click-queries#downloading-results) for details. JSON downloads are unaffected.
  * BigQuery now supports [AI functions](https://docs.omni.co/analyze-explore/calculations/ai) for table calculations, joining Snowflake and Databricks.
  * Fixed an issue where filter suggestions showed "Couldn't load suggestions" for a dimension whose [`suggest_from_field`](https://docs.omni.co/modeling/dimensions/parameters/suggest-from-field) pointed to a view outside the topic, when the dashboard also had a filter-only parameter. The suggestion query now correctly starts from the suggested field's own view.
</Update>

<Update label="Week of September 21, 2026" rss={{title: "September 21, 2026", description: "External users, conditional routines, Omni Agent web search, and more"}}>
  **External users**

  Added support for [external users](https://docs.omni.co/administration/users/external-users), who can log in to Omni like any other user, but only have access to what you explicitly give them. This is useful when you want to give partners, contractors, or clients access to specific content in your Omni organization.

  **Conditional routines**

  Routines can now run only [when a condition you specify is met](https://docs.omni.co/ai/routines#creating-routines), instead of delivering a response on every scheduled run. Omni checks the condition on a schedule you define and delivers a result only when it's true.

  **Omni Agent web search**

  The Omni Agent can now [search the web](https://docs.omni.co/ai/settings/features#web-search). When enabled, the agent uses an AWS-managed search connector to search the web for real-time information. Currently available for Omni organizations deployed in AWS United States or EU regions.

  **Administration**

  * Added a [**Chat on right side**](https://docs.omni.co/ai/settings/features#chat-on-right-side) organization setting that sets the default side for the split-view AI chat panel. Users can still override the default for themselves, or admins can override it for specific users with the `omni_chat_on_right_side` [user attribute](https://docs.omni.co/administration/users/attributes).
  * You can now override the sender name and address on deliveries and alerts for an individual user from their [settings page](https://docs.omni.co/administration/users/settings#custom-email-sender), when your organization has [custom email sender](https://docs.omni.co/share/deliveries/email/whitelabel) enabled.
  * Added a **Printing and dialogs** toggle to [Settings > Apps](https://docs.omni.co/administration/settings/app-policy#printing-and-dialogs), letting Organization Admins turn off browser printing (`window.print()`) and JavaScript dialogs (`alert`, `confirm`, `prompt`) for every app in the organization.

  **AI**

  * Updated the **Inspect** panel in the app builder to show the query that powers a selected element in an app, or indicate when the element is static and doesn't have an associated query.
  * You can now download dashboards as paged PDFs through MCP. The [`startDashboardDownload`](https://docs.omni.co/ai/mcp/tools#start-dashboard-download) tool accepts a new `format` parameter (`png` or `pdf`), with PDF output rendered as letter-size, landscape pages so large dashboards stay readable, plus optional print settings like paper size and orientation.
  * You can now drill into a drillable row or field in an app's table to see the underlying data, in standalone apps, embedded apps, and homepage apps.
  * Updated the **Inspect** panel in the app builder to allow you to click an element in a draft app and view its markup.
  * You can now expand an app's source code into a resizable drawer that docks to the bottom of the editor, instead of switching to a separate tab in the side panel.
  * Fixed an issue where an [eval](https://docs.omni.co/ai/evals#how-the-judge-scores) prompt could pass the accuracy judge even when the AI gave no response. Prompts whose job completes with no answer and no tool call are now automatically scored as a fail.
  * You can now create, find, update, and delete [routines](https://docs.omni.co/ai/routines#routines-in-embedded-applications) from chat in application-mode embeds, for organizations with the required permissions enabled.

  **API**

  * Added `controlBar` settings (`collapsible`, `defaultExpanded`, `fixed`) to the [v2 documents API](https://docs.omni.co/api/documents-v2/create-document), so you can read and update a dashboard's control bar configuration through the API. These settings now also carry over when exporting and importing dashboards between instances.
  * Updated the v2 documents API reference so the read and eight write endpoints under `/v2/documents/{documentId}` return a 404 when the identifier names a draft instead of a published document.
  * Added a `containerPages` parameter to the [dashboard download](https://docs.omni.co/api/dashboard-downloads/initiate-dashboard-or-tile-download) and [schedule](https://docs.omni.co/api/schedules/create-schedule) API endpoints, so you can select which page(s) of an advanced-layout dashboard to render in PDF, PNG, CSV, and XLSX downloads and deliveries.
  * Added a `draftOf` field to the [Get document state](https://docs.omni.co/api/documents-v2/get-document-state) and [Get draft state](https://docs.omni.co/api/documents-v2/get-draft-state) API responses. When the read identifier names a draft, `draftOf.identifier` returns the published document that draft belongs to.
  * Fixed an issue where removing a schedule recipient by [user ID](https://docs.omni.co/api/schedule-recipients/remove-schedule-recipients) could also remove other embed users who shared the same delivery email address. Removing by ID now removes only that recipient; use `emails` to remove everyone delivered to a given address.
  * Added endpoints that allow you to [update](https://docs.omni.co/api/user-attributes/update-a-user-attribute-definition) and [delete](https://docs.omni.co/api/user-attributes/delete-a-user-attribute-definition) user attribute definitions.
  * You can now create custom [user attribute](https://docs.omni.co/api/user-attributes/create-user-attribute) definitions via the API with `POST /v1/user-attributes`.
  * Added the [Bulk delete email-only users](https://docs.omni.co/api/schedule-recipients/delete-email-only-users-in-bulk) endpoint, which lets you delete up to 100 email-only users in a single request.
  * Fixed an issue where the [`Update schedule`](https://docs.omni.co/api/schedules/update-schedule) API reference incorrectly stated that omitted properties keep their current values. The endpoint replaces the full schedule configuration, so omitted optional properties reset to their defaults, except `timezoneOverride`, which is retained when query timezone overrides are enabled.

  **CLI**

  Renamed the CLI commands for [app endpoints](https://docs.omni.co/api/apps) — for example, `v2-put-app` is now `put-app` — by dropping the unnecessary `v2` from their underlying API operation names.

  **Content**

  * The content search dialog now shows up to 25 matches, with a way to see the full result set: press **Enter** with no result highlighted, or click the full-screen button in the dialog's footer, to open the [`/search`](https://docs.omni.co/content/search) page with your current search text and facets applied.
  * The **All** sidebar item has been retired. To find all content you have permission to access, use [content search](https://docs.omni.co/content/search) instead.
  * You can now search for apps using the [content search API](https://docs.omni.co/api/content/search-dashboards-and-apps) and the Omni AI agent's search tool.
  * Fixed an issue where the [Request Access](https://docs.omni.co/share#requesting-document-access) form could appear for embed and email-only users, who don't have permission to submit a request. The form is now shown only to standard members.
  * You can now search for a destination folder by name in the Move and Save dialogs, instead of only browsing. Search results show each folder's full path. See [Moving folders](https://docs.omni.co/content/organize#moving-folders) and [Saving a new workbook](https://docs.omni.co/analyze-explore/workbook-basics#saving-a-workbook) for more information.
  * You can now select a different dashboard or app than the organization default to show on your homepage.
  * You can now search for an owner by name when filtering deliveries on the [Delivery settings](https://docs.omni.co/administration/settings/deliveries) page.
  * Content search now keeps its query and facets in the URL. If you open a result and use your browser's back button, search reopens with the same [query and facets](https://docs.omni.co/content/search#accessing-search) you had applied. Closing the search dialog clears this state.

  **Deliveries & Alerts**

  * You can now schedule app deliveries as PNGs to email destinations. Additional delivery enhancements coming soon.

  **General UI**

  The action-first **+ New** menu is now available in the sidebar, allowing you to quickly create chats, apps, dashboards, workbooks, skills, and routines with a single click.

  **Integrations**

  * Added a visual indicator in the dbt IDE's file list that shows which dbt files already have a matching Omni view, making it easier to tell matched models from unmatched ones without opening the **Sync** page.
  * Added support for connecting [Microsoft Fabric](https://docs.omni.co/connect-data/setup/microsoft-fabric) warehouses and lakehouses to Omni.

  **Modeling**

  * In the model IDE, [branch actions](https://docs.omni.co/content/develop/branch-mode) in the **Model** menu now nest under a single **Branch** submenu, whether or not the model already has a branch.
  * Shared extension models now let you choose a [branch workflow](https://docs.omni.co/modeling/develop/shared-extensions/settings#branch-workflow) — develop with the parent model's branches, or independently — and this choice, along with **Allow exploration**, can be set right when you create the extension.
  * Cleaned up the model IDE's **Model** menu, including adding an **Advanced** submenu that contains **Git settings**, **Extension settings**, etc.
  * Added support for **AED** (UAE Dirham) in [named currency formats](https://docs.omni.co/modeling/models/format-values#currency-formats).
  * Added explicit [`is_empty`](https://docs.omni.co/modeling/filters/operators/is-empty) and `not_is_empty` filter kinds for string fields in model YAML, so an is-empty filter round-trips correctly instead of being written as `is: ""`.
  * Fixed a bug where an aggregate table declared with a topic could be read with its row-level access filters canceled out, returning unfiltered data instead of applying the topic's `access_filters`.
  * Added support for [custom calendars](https://docs.omni.co/modeling/models/custom-calendars#properties) to define their own timeframes, such as a retail selling day or season, beyond the standard year/quarter/month mappings.
  * Added a [`default_custom_calendar`](https://docs.omni.co/modeling/models/default-custom-calendar) model parameter, which applies a calendar to every timestamp dimension that doesn't already specify one. Set `custom_calendar: none` on a dimension to keep it on the Gregorian calendar instead.
  * Fixed an issue where a topic's joins in [Model mode](https://docs.omni.co/modeling/develop/model-generation#model-mode) (and a branch's Merged mode) showed the full inherited join tree instead of just what that layer changed, which could overwrite and pin the joins inherited from the shared model. These layers now show `added_joins` and `removed_joins` instead of `joins`. See [joins](https://docs.omni.co/modeling/topics/parameters/joins#model-mode-added_joins-and-removed_joins) for details.

  **Visualization**

  Added a [guide about creating custom GeoJSON](https://docs.omni.co/guides/visualizations/combine-geojson-files-with-ai) by combining other GeoJSON files using AI, hosting it, and using it in Omni to map custom regions.
</Update>

<Update label="Week of September 14, 2026" rss={{title: "September 14, 2026", description: "dbt integration on Trino-based connections, routines in embedded instances, MCP server tools for app management, and more"}}>
  **Administration**

  Organization Admins can now disable specific delivery destination types, such as email, Slack, or Amazon S3, to prevent them from being used in new dashboard and report deliveries.

  **AI**

  * Added [tools to the MCP server](https://docs.omni.co/ai/mcp/tools#apps) that allow external agents to read, edit, and publish the HTML behind an app's draft: `getAppDraft`, `putApp`, `patchApp`, and `publishDraft`.
  * Added a [`getApp`](https://docs.omni.co/ai/mcp/tools#get-app) MCP server tool, which lets AI tools read a published app document's HTML source and sandbox settings.
  * In addition to a skill's exact handle or creator, you can now also search for a skill by a word from its description when using the `listSkills` MCP tool.
  * You can now explore and view the workbook behind query regions in apps. Click a query region's context menu to view these options.
  * Added a [`listSkills`](https://docs.omni.co/ai/mcp/tools#list-skills) tool to Omni's MCP server, so MCP clients can find a saved skill and read its instructions.
  * The Omni Agent can now switch between models within a single turn in [cross model workbooks and apps](https://docs.omni.co/analyze-explore/cross-model-tabs).

  **API**

  * Deprecated the v1 [`GET`](https://docs.omni.co/api/dashboard-filters/get-dashboard-filters-and-controls) and [`PATCH /dashboards/{id}/filters`](https://docs.omni.co/api/dashboard-filters/update-dashboard-filterscontrols) endpoints. Read and update dashboard filters and controls with the v2 [Patch draft](https://docs.omni.co/api/documents-v2/patch-draft) and [Publish draft](https://docs.omni.co/api/documents-v2/publish-draft) endpoints.
  * Omni APIs (`/api`, `/mcp`, `/scim`) now respond with a `503` maintenance message when Omni is undergoing maintenance.
  * Fixed an issue where the [Wait for query results](https://docs.omni.co/api/queries/wait-for-query-results) endpoint could forward malformed job IDs. Requests with an invalid `jobIds` or `job_ids` value now return a `400` error.
  * Fixed an issue where a dashboard migrated between Omni instances via the [export](https://docs.omni.co/api/content-migration/export-dashboard) and [import](https://docs.omni.co/api/content-migration/import-dashboard) APIs could lose its custom color palette, causing charts to render blank or fall back to default colors. Custom palettes are now carried in the export/import payload and matched to an existing palette or created in the destination organization on import.
  * The [dbt configuration](https://docs.omni.co/api/dbt/get-dbt-configuration) API now returns a `publicKey` field containing the SSH deploy key for connections that use SSH authentication.
  * You can now search skills by name, handle, or description with the new `q` parameter on the [List skills](https://docs.omni.co/api/skills/list-skills) API endpoint.
  * Updated the [Query run API's](https://docs.omni.co/api/queries/run-query#body-cache) `cache` parameter to accept `Standard`, `SkipRequery`, `SkipCache`, `SkipCacheAndRebuildExtracts` values.
  * Added [API endpoints](https://docs.omni.co/api/color-palettes/create-custom-color-palette) for creating, listing, updating, and deleting custom chart color palettes.

  **Content**

  You can now open [content search](https://docs.omni.co/content/search#accessing-search) from more places: a **Search** field appears in the sidebar on pages without a header search bar (such as document pages), and the `Command + /` (Mac) or `Control + /` (Windows) shortcut opens search from any page.

  **Deliveries & Alerts**

  Fixed an issue where alerts with [**Use cached results if available**](https://docs.omni.co/share/deliveries#use-cached-results-if-available) enabled checked their condition against stale cached results, which could cause "results changed," "results stayed the same," or "results present/missing" alerts to fire incorrectly or not at all. Alert condition checks now always run fresh.

  **Embedding**

  * You can now use [Routines](https://docs.omni.co/ai/routines) in embedded Omni instances.
  * Added a new [`shareButton`](https://docs.omni.co/embed/setup/url-parameters/uiSettings#hide-the-share-button) `uiSetting` for embedded instances. Setting it to `false` hides sharing options across the embed session.

  **Integrations**

  * Added support for [Omni's dbt integration](https://docs.omni.co/integrations/dbt) on Trino-based connections, including Starburst Galaxy.
  * You can now select [dbt 2.0 as the **dbt Version** for a connection](https://docs.omni.co/integrations/dbt#what-dbt-platforms-and-versions-does-omni-support). Existing connections on **Auto** stay on the previous version until Omni deems 2.0 stable; you must select it explicitly to use it sooner. Not available for Athena or StarRocks connections.
  * Added support for Databricks result downloads on Azure workspaces whose storage account sits behind a private endpoint. If you use Azure PrivateLink, provide your storage account name so Omni can set up the [extra private endpoint](https://docs.omni.co/connect-data/databricks-privatelink) needed for large query results.
  * Added support for generating [dbt exposures](https://docs.omni.co/integrations/dbt/exposures) from published apps, in addition to dashboards.
  * Added an optional **Account Identifier** field for [Snowflake connections](https://docs.omni.co/connect-data/setup/snowflake) using Host & Port, for cases where key-pair authentication needs the account identified explicitly, such as connecting through a proxy, tunnel, or PrivateLink.
  * You can now sync a shared model's non-isolated extensions along with the parent model when it's linked to git. Editing one of these extensions directly follows the same Branch Mode and commit/PR rules as editing the parent model. Extensions with **Use isolated branches** enabled are unaffected.

  **Modeling**

  * Added a new [`unrelated_dimension_handling`](https://docs.omni.co/modeling/composite-topics/parameters/unrelated-dimension-handling) parameter to composite topics, which lets you select a dimension that belongs to only one topic and choose how the other topics' measures behave: fill them with `null` on a single row, or `repeat` them across every value.
  * Added a new [`default_topic_hidden_unless_access_grants`](https://docs.omni.co/modeling/models/default-topic-hidden-unless-access-grants) model parameter to set a default topic-visibility rule for every topic in a model.
  * You can now use [`hidden_unless_access_grants`](https://docs.omni.co/modeling/composite-topics/parameters/hidden-unless-access-grants) on composite topics to hide them from users who don't satisfy specific access grants.

  **Visualization**

  Added a [`Zoom on scroll`](https://docs.omni.co/visualize-present/visualizations/types/map#zoom-on-scroll) setting to point and region maps. When turned off, scrolling over the map scrolls the page instead of zooming, while the map's zoom buttons still work.

  **Workbook**

  * Added support for applying a calculation's custom column total (Sum, Average, Min, Max, or Count) before the row limit, even when the calculation itself has no range reference. You can toggle this from the column header menu or from the total cell's **Total calculation** menu. See [`calcs_default_pushdown`](https://docs.omni.co/modeling/models/calcs-default-pushdown) for the model-level default.
  * [Cross model tabs](https://docs.omni.co/analyze-explore/cross-model-tabs) are now generally available to all organizations.
</Update>

<Update label="Week of September 7, 2026" rss={{title: "September 7, 2026", description: "Composite topics in the API, undo/redo for sidebar navigation, Skills API endpoints, and more"}}>
  **Administration**

  * Added support for undoing and redoing changes to the [custom navigation sidebar editor](https://docs.omni.co/administration/settings/sidebar#undoing-and-redoing-changes).
  * Added a **Use routines** permission for [custom model roles](https://docs.omni.co/administration/users/custom-roles#permissions-reference).
  * Added support for controlling whether [apps can load map tiles at the organization level](https://docs.omni.co/administration/settings/app-policy#map-providers).
  * You can now sort the **Users** page's Standard and Embed tables by [last login](https://docs.omni.co/administration/users#standard-and-embed-users), with the most recent logins shown first.
  * Omni's built-in [sidebar](https://docs.omni.co/administration/settings/sidebar) groups (Home, Personal, Shared, and All) are now fixed in place: they can't be reordered, removed, or added to, though you can still rename their items, change icons, or reset them to defaults. Custom groups can still be added, reordered, and hold links or content.

  **AI**

  * Pagination is now supported in apps.
  * Fixed an issue where the Omni Agent couldn't save AI-created apps or dashboards for users whose [personal content](https://docs.omni.co/administration/users/settings#personal-content) is disabled. These saves now go to the organization's shared Hub or the user's embed entity shared folder instead, and the agent reports a clear message if no save destination is available.
  * Fixed an issue where AI usage by Omni staff troubleshooting an organization counted against that organization's AI credit totals.
  * You can now ask the Omni Agent to find and open your existing [routines](https://docs.omni.co/ai/routines#finding-routines-from-chat) from chat.

  **API**

  * Added support for serving composite topics from the topic endpoints in the API.
  * Added experimental [Skills](https://docs.omni.co/api/versioning#skills) API endpoints.
  * Fixed an issue where the deprecated [`POST /v1/documents`](https://docs.omni.co/api/documents/create-document) endpoint rejected an explicit `null` value for `resultConfig`; it now accepts an object or `null`. This endpoint and [`GET /v1/documents/{documentId}`](https://docs.omni.co/api/documents/get-dashboard-document) also now document previously-undocumented fields the API already accepted, including `filterConfig`, `metadata`, `aiConfig`, and `metadataVersion`.
  * Each action in the [Stream AI job results](https://docs.omni.co/api/ai/stream-ai-job-results) response now includes a `status` and an `isError` field, giving a consistent way to check the outcome of each step the AI took.
  * Added an endpoint that [allows you to apply targeted changes to an existing app draft](https://docs.omni.co/api/apps/edit-app-content-on-a-draft) without resending the HTML body. This endpoint is currently in development and may change.
  * You can now download a draft dashboard using the [dashboard download API](https://docs.omni.co/api/dashboard-downloads/initiate-download).
  * Added an endpoint to [remove an app from a document draft](https://docs.omni.co/api/documents/remove-app-from-a-draft). This endpoint is in development and may change.
  * You can now create a published app document in a single request by adding an `app` field to the [Create document API](https://docs.omni.co/api/documents-v2/create-document), instead of creating a draft, writing the app, then publishing separately.
  * Added an endpoint that allows you to programmatically [rotate a shared model's Git webhook signing secret](https://docs.omni.co/api/model-git-configuration/rotate-webhook-secret).

  **Content**

  * You can now add multiple [`label:`](https://docs.omni.co/content/search#refining-results-with-facets) facets to a single content search, for example `label:Marketing label:Verified`. Content matching any of the applied labels is returned.
  * You can now name your organization's **Personal** and **Shared** spaces by setting the group's title in [Settings > Sidebar](https://docs.omni.co/administration/settings/sidebar#add-groups).

  **Integrations**

  * For Databricks connections on Unity Catalog, schema refreshes now automatically populate the `tags` parameter on views and dimensions from the [warehouse's table and column tags](https://docs.omni.co/connect-data/databricks-unity-catalog-integration).
  * You can now specify a [workgroup for Athena connections](https://docs.omni.co/connect-data/setup/athena).
  * Added sync status information to the dbt environment settings page that shows when the environment's metadata was last updated, along with the git branch and commit it synced from.

  **Modeling**

  * Omni now automatically unnests Postgres columns that are arrays of a composite (row) type into structured dimensions. No configuration is required; see [`parent_field`](https://docs.omni.co/modeling/dimensions/parameters/parent-field) for how these fields are generated. Existing Postgres connections may see new fields appear after their next schema refresh.
  * Added a new [`hidden_unless_access_grants`](https://docs.omni.co/modeling/topics/parameters/hidden-unless-access-grants) parameter for topics, which hides a topic from the topic picker for users who don't satisfy the listed access grants, without blocking data access to it.
  * Added a [`schedule`](https://docs.omni.co/modeling/models/cache-policies#param-schedule) property to `cache_policies`, letting a cron expression reset the cache automatically instead of relying on a scheduled dashboard run. Currently applies to shared models only; shared extension support coming soon.
</Update>

<Update label="Week of August 31, 2026" rss={{title: "August 31, 2026", description: "Dashboard PNG exports from MCP clients, apps general availability, custom calendars in models, and more"}}>
  **Administration**

  * Added support for [customizing the main navigation](https://docs.omni.co/administration/settings/sidebar) in Omni.
  * Skills can now be enabled and disabled at the [organization level](https://docs.omni.co/ai/settings/features#skills).
  * Omni now supports Canada Central, UAE North, and Southeast Asia cloud regions for Azure deployments.

  **AI**

  * You can now [download a dashboard as a PNG file](https://docs.omni.co/ai/mcp/tools#start-dashboard-download) directly from an MCP client, using three new tools: `startDashboardDownload`, `checkDashboardDownload`, and `fetchDashboardDownload`.
  * Apps are now generally available.
  * Chat now defaults to the [Standard model tier](https://docs.omni.co/ai/chat#selecting-an-ai-model-tier) when no model or organization tier is configured, rather than starting on Smartest.
  * Added the [**Allow clipboard copy**](https://docs.omni.co/visualize-present/apps/settings#clipboard-copy) app setting, which grants an app's iframe permission to copy text or values to the user's clipboard.
  * Apps are now enabled by default in embedded Omni instances.
  * The Omni Agent can now automatically identify and fix console errors when modifying an app in draft mode.
  * Organization Admins will now receive [email notifications](https://docs.omni.co/ai/settings/usage#org-notifications) when AI credit usage reaches 75% and 100% of organization-level thresholds.
  * Renamed the Dashboard Agent to [Chat with Content](https://docs.omni.co/ai/dashboard-assistant).

  **API**

  * You can now set a folder's organization-wide role and/or turn on [AccessBoost](https://docs.omni.co/api/folder-permissions/update-folder-permission-settings) for that access using the API, without naming individual users or groups.
  * Added API endpoints to [read, create, and replace](https://docs.omni.co/api/apps) an app's HTML and settings on a document draft, so apps can be built and updated programmatically before publishing. These endpoints are currently in development and may change.
  * Added an [endpoint to read a document's published app content](https://docs.omni.co/api/apps/read-app-content), including its HTML and sandbox settings. This endpoint is still in development and may change.
  * Fixed an issue where the document and folder permissions APIs let a user-scoped API key enable [AccessBoost](https://docs.omni.co/share#boosting-permissions-with-accessboost) without the required permission. These endpoints now enforce the same organization and per-user AccessBoost provisioning rules as the Omni UI.
  * Added an endpoint that [moves a shared or shared extension model to the trash](https://docs.omni.co/api/models/archive-shared-or-extension-model).
  * Added support for v2 documents APIs to recognize app documents.
  * The [List document queries endpoint](https://docs.omni.co/api/documents/list-document-queries) no longer requires that a document have a dashboard.
  * Removed the deprecated v1 document write endpoints.
  * You can now use the [Create AI job endpoint](https://docs.omni.co/api/ai/create-ai-job#dashboard-creation-and-publishing) to create and publish dashboards.

  **Content**

  Apps can be embedded using the [Share dialog](https://docs.omni.co/share#sharing-content-externally).

  **Dashboards**

  Updated the [cross-filtering documentation](https://docs.omni.co/visualize-present/dashboards/filter-interactivity#cross-filtering) to correctly describe how tiles appear when a focused cross-filter can't be used.

  **Embedding**

  * Removed the `hideHeader` and `hideNavigation` settings from the `uiSettings` embed URL parameter.
  * Added the ability for [embed users to provision AccessBoost](https://docs.omni.co/share#accessboost-in-embedded-omni) when the appropriate organization settings are enabled.
  * Released v1 of the Omni Embed SDK, which includes a new signing format for standard SSO. This format replaces the deprecated v0 format, which will be unsupported after October 1, 2026, and removed by January 1, 2027. See [Migrating to the v1 embed signing format](https://docs.omni.co/embed/setup/standard-sso/migrate-to-latest) for more information.

  **General UI**

  * Clicking **Develop** now opens the model IDE directly for organizations with only one model, skipping the model list. Organizations with multiple models, or a model with shared extensions, still see the list as before.
  * Dashboards and apps now have a **Model** menu, which you can use to access the underlying model.

  **Integrations**

  * [Snowflake semantic views](https://docs.omni.co/connect-data/snowflake-semantic-views) now import as topics on a schema refresh, with their logical tables, relationships, metrics, filters, and AI instructions. See the [limitations](https://docs.omni.co/connect-data/snowflake-semantic-views/limitations) for what doesn't import.
  * Added a **Models** tab to the connection settings page, listing the shared models scoped to that connection.

  **Modeling**

  * Added support for [`required_access_grants`](https://docs.omni.co/modeling/composite-topics/parameters/required-access-grants) on composite topics.
  * Added support for custom calendars, so a model can define its own year, quarter, month, and week boundaries from a calendar table in the warehouse (for example, a retail 4-5-4 calendar) instead of using the Gregorian calendar. Docs coming soon.
  * You can now specify `week_start_day` configuration option at the [topic](https://docs.omni.co/modeling/topics/parameters/week-start-day) and [dimension](https://docs.omni.co/modeling/dimensions/parameters/week-start-day) level.

  **Workbook**

  * The AI input option will no longer display in empty workbook tabs.
  * Added **List** and **Count distinct** as quick aggregations options for date fields.
</Update>

<Update label="Week of August 24, 2026" rss={{title: "August 24, 2026", description: "Omni Agent improvements for workbook navigation and dashboard editing, user memory support in AI chat, CLI v1.2 release, Korean localization, and more"}}>
  **Omni Agent memory support**

  Users can now [save information as personal context](https://docs.omni.co/ai/chat#memory) to use with the Omni Agent. Organization Admins can enable and disable this feature in **AI Hub > General > Features**.

  **Improved Omni Agent workbook editing**

  Previously, the Omni Agent would auto-apply generated queries and charts to the active tab when used in workbooks. Now new queries and charts will be first shown in chat, so the active tab isn't overwritten.

  **Omni CLI v1.2**

  [Omni CLI v1.2](https://github.com/exploreomni/cli/releases/tag/v1.2.0) is out, with a few new capabilities and a round of fixes to output and help-text accuracy. See the **CLI** section below for a detailed look at what's in the release.

  **Administration**

  * Added support for [Canada, UAE, and Southeast Asia cloud regions](https://docs.omni.co/administration/security/cloud-regions) for Azure-based deployments.
  * Added Korean (ko-KR) [localization support](https://docs.omni.co/administration/localization).
  * Added a `connection_id` property to the [`QUERY_EXECUTE` audit log event](https://docs.omni.co/administration/audit-logs/event-types#query-execution-events).
  * [Connection Admin permissions](https://docs.omni.co/administration/users/permissions-reference#modeling) are now required to rename a shared model or shared model extension.
  * You can now view per-user AI credit usage in the [**AI Hub > General > Credit usage** tab](https://docs.omni.co/ai/settings/usage#user-entity-usage).
  * You can now set the per-user default AI credit limit cap from the [**AI Hub > General > Credits** tab](https://docs.omni.co/ai/settings/usage#per-user-default).

  **AI**

  * You can now edit dashboards using the [MCP Server](https://docs.omni.co/ai/mcp/tools#ask-omni), [Omni Slack Agent](https://docs.omni.co/integrations/omni-slack-agent#editing-dashboards), or [Create AI job API](https://docs.omni.co/api/ai/create-ai-job#dashboard-creation-and-publishing).
  * You can now navigate between workbook tabs by asking the Omni Agent.
  * Added the [Open to buy app](https://docs.omni.co/library?q=buy\&item=open-to-buy) to the Library.

  **API**

  * Added a [`cache` parameter](https://docs.omni.co/api/dashboard-downloads/initiate-download#body-cache) to the Download dashboard endpoint.
  * Added user impersonation support to the [Search dashboards API](https://docs.omni.co/api/content/search-dashboards#parameter-user-id).
  * Added the [Search Omni docs API](https://docs.omni.co/api/ai/search-omni-docs) to the REST API reference.

  **CLI**

  * `--body` now accepts `@path/to/file.json` to read a request body from a file, or `-` to read it from stdin, and validates it as JSON client-side before sending.
  * `--schema` is now available on every command, printing that command's arguments, flags, request body, and response shape without making an API call. See [output formats](https://docs.omni.co/developers/cli/commands#api-commands) for examples.
  * Required query parameters are now validated before a request is sent, and a `--query key=value` escape hatch is available for parameters not yet reflected in the CLI's generated flags.
  * Fixed several correctness issues: `-p`/`--profile` is now honored by `config login` and `config logout`, broken configs and unknown profiles no longer get misreported as a missing API token, stdout stays clean on failed requests, unrecognized subcommands now error instead of doing nothing, and flag names and help text are more reliably in sync with the generated commands.

  **Embedding**

  Added an [organization-level setting](https://docs.omni.co/embed/admin/security#user-credit-usage) that allows you to opt in to showing embed users their AI credit usage.

  **Integrations**

  Added a guide about [embedding dbt health tiles](https://docs.omni.co/guides/dashboards/dbt-data-health-tiles) into Omni dashboards.

  **Modeling**

  Added support for specifying [cache policies](https://docs.omni.co/modeling/composite-topics/parameters/cache-policy) on composite topics.
</Update>

<Update label="Week of August 17, 2026" rss={{title: "August 17, 2026", description: "Embedded apps, Databricks query tagging, forecasting control in models, and more"}}>
  **Apps can now be embedded**

  [Apps can be embedded](https://docs.omni.co/visualize-present/apps/index#embedding-apps) in your own product with the same SSO embed flow used for dashboards and workbooks.

  **Administration**

  * Added an [**AI credit usage** section](https://docs.omni.co/administration/users/your-account#ai-credit-usage) to the **Your Account** page.
  * Moved organization-level settings for apps to [**Settings > Apps**](https://docs.omni.co/administration/settings/app-policy).

  **AI**

  * You can now [delete an AI Routine](https://docs.omni.co/ai/routines#deleting-routines) while chatting with the Omni Agent, as long as the routine is currently open alongside the chat.
  * Added support to the MCP [`askOmni` tool](https://docs.omni.co/ai/mcp/tools#ask-omni) that allows targeting a specific branch.
  * Added a [`listBranches`](https://docs.omni.co/ai/mcp/tools#list-branches) tool to the MCP server.

  **API**

  Deprecated the [Transfer document ownership API](https://docs.omni.co/api/documents/transfer-document-ownership) and updated to demote existing `OWNER` users to `MANAGER` upon successfully transferring ownership to the named user.

  **This endpoint will continue to function**, but use the [Document permissions](https://docs.omni.co/api/document-permissions/grant-document-permissions) APIs to manage document ownership going forward.

  **Content**

  * Added the ability to undo access removal in the [**Share** content dialog](https://docs.omni.co/share#assigning-access-roles-to-content).
  * Users can now be assigned the [**Owner** role](https://docs.omni.co/share#ownership) from a document's **Share** dialog.

  **Dashboards**

  If you attempt to navigate away from dashboard settings before saving, Omni will now prompt you for confirmation so you don't lose your changes.

  **Deliveries & Alerts**

  Added a notice to the [**Slack** scheduling form](https://docs.omni.co/integrations/omni-slack-agent#optional-scopes-2) that explains when Omni deliveries will be sent as secure, expiring links instead of file attachments.

  **Embedding**

  * Embedded apps now emit an [`app:event`](https://docs.omni.co/embed/events/app-event) event when the app's code calls `omni.emit`.
  * Embedded apps now emit an [`app:filter-changed` event](https://docs.omni.co/embed/events/app-filter-changed) when a filter on one of its queries is changed after the app loads.
  * Added a [`showHeader`](https://docs.omni.co/embed/setup/url-parameters/uiSettings#param-show-header) option to the embed `uiSettings` URL parameter.
  * Embedded apps and dashboards now emit a [`size`](https://docs.omni.co/embed/events/size) event when the iframe loads or is resized.
  * Embedded apps and dashboards now emit a [`fullscreen:changed`](https://docs.omni.co/embed/events/fullscreen-changed) event when the fullscreen state changes.
  * Added support for programmatically controlling embedded content's fullscreen state with the [`fullscreen:set`](https://docs.omni.co/embed/events/fullscreen-set) event.

  **Integrations**

  * Omni now tags Databricks queries with Omni identifiers.
  * Updated the [dbt environment form](https://docs.omni.co/integrations/dbt/environments) to better explain how values are copied from a project's `profiles.yml` file.
  * Added support for wildcards and exclusions in the **Include Other Databases** connection setting.
  * Refreshed the [dbt integration docs](https://docs.omni.co/integrations/dbt) and added a [dbt metadata reference](https://docs.omni.co/integrations/dbt/metadata-reference) describing what metadata can be synced into Omni.

  **Modeling**

  Forecasting can now be disabled in a model's [`ai_settings.disabled_tools`](https://docs.omni.co/modeling/models/parameters/ai-settings/disabled-tools).
</Update>

<Update label="Week of August 10, 2026" rss={{title: "August 10, 2026", description: "Default filters on composite topics, dashboard query stopping, full screen dashboard preview editing, and more"}}>
  **Administration**

  * Omni will now prompt for confirmation when updating the **Delivery personalization** setting. Additionally, changing this setting will now add an [audit log entry](https://docs.omni.co/administration/audit-logs/event-types#delivery-personalization-updated).
  * Added the ability to manage a user's group memberships directly from the [**Groups** tab on the user's settings page](https://docs.omni.co/administration/users/groups#user-profile-group).
  * Added [**Create Apps**](https://docs.omni.co/administration/users/custom-roles#permissions-reference) as a granular permission for custom roles.

  **AI**

  * Apps now respect formatting applied to workbook fields, such as currency or decimal places.
  * AI credit usage can now be viewed in the AI Hub in the **Credit tracking** tab.
  * Fixed an issue where apps were not correctly identifying totals and subtotals in query results.
  * [Default discrete and continuous chart palettes](https://docs.omni.co/visualize-present/apps/styling#charts) can now be used in charts in apps.
  * The Omni Agent can now create composite topics.
  * The Omni Agent now uses the settings in [`ai_settings.build_configuration`](https://docs.omni.co/modeling/models/parameters/ai-settings/build-configuration) to create dashboards instead of inferring them from the prompt context.
  * Updated the [Library](https://docs.omni.co/library) with several new apps:
    * [Omni Migration Tracker](https://docs.omni.co/library?q=migr#omni-migration-tracker)
    * [Survivor](https://docs.omni.co/library?q=survi#survivor-app)
    * [Reorder planner](https://docs.omni.co/library?q=reor#reorder-planner)
    * [Marketing channel performance and forecast](https://docs.omni.co/library?q=marketing#marketing-channel-performance-and-forecast)
    * [dbt health and data lineage](https://docs.omni.co/library?q=dbt#dbt-health-and-data-lineage)
    * [Guided Omni tour](https://docs.omni.co/library?q=guid#omni-the-guided-tour)
    * [Signal desk](https://docs.omni.co/library?q=signal#signal-desk)

  **API**

  Added an [`explorable`](https://docs.omni.co/api/models/list-models#parameter-explorable) filter option to the List models API.

  **Content**

  * Personal content that has been shared with you is now visible in the [**Shared with me** page](https://docs.omni.co/content/navigate).
  * Added the ability to [share personal content](https://docs.omni.co/share#organization) with an entire organization.
  * The **Shared with me** page now displays the highest-level folder you have access to instead of adding an item for each subfolder. Click a folder to access subfolders.

  **Dashboards**

  * Added the ability to [stop dashboard queries](https://docs.omni.co/administration/running-queries#dashboard-queries).
  * [Dashboard preview mode](https://docs.omni.co/visualize-present/dashboards/preview-mode#entering-preview-mode) now supports full-screen editing.

  **Deliveries & Alerts**

  * The [email recipient domain allowlist](https://docs.omni.co/share/deliveries/email/domain-allowlist) now accepts up to 1,000 email domains.
  * Added a guide about [personalization for email deliveries](https://docs.omni.co/share/deliveries/email/personalization) to the docs.

  **Embedding**

  Added support for setting [entity AI credit limits](https://docs.omni.co/embed/setup/url-parameters/entityAiCreditLimit) through an embed URL parameter.

  **Integrations**

  * Renamed the **Development** page in the dbt IDE to [**Sync**](https://docs.omni.co/integrations/dbt/syncing-dbt).
  * Added guides for [managing dbt environments](https://docs.omni.co/integrations/dbt/environments) and [debugging dbt sync issues](https://docs.omni.co/integrations/dbt/debugging-sync-issues) to the dbt docs.

  **Modeling**

  * Added support for [`default_filters`](https://docs.omni.co/modeling/composite-topics/parameters/default-filters) on composite topics.
  * The `@` prefix is no longer required for [SQL references in shared measures](https://docs.omni.co/modeling/composite-topics/parameters/shared-measures).
  * Added documentation explaining how to use sketch-based approximate aggregates (such as HyperLogLog and APPROX\_PERCENTILE) with [aggregate awareness routing](https://docs.omni.co/analyze-explore/performance/aggregate-awareness#using-sketch-based-approximate-aggregates) in Snowflake, BigQuery, and Databricks.
  * Added a guide for [customizing filter suggestions](https://docs.omni.co/guides/modeling/filter-suggestions).

  **Workbook**

  Changes in [spreadsheet tabs](https://docs.omni.co/analyze-explore/spreadsheet-tabs#saving-your-work) are now autosaved.
</Update>

<Update label="Week of August 3, 2026" rss={{title: "August 3, 2026", description: "Full-screen presentation mode for content, searchDashboards MCP tool for AI, delivery personalization modes, and more"}}>
  **Administration**

  * [Localization settings](https://docs.omni.co/administration/localization) are now available in all Omni instances.
  * Added the ability for admins to customize the label of the SAML login button on the login page.
  * Added the ability to filter user attributes by value on the [**User attributes**](https://docs.omni.co/administration/users/attributes#assigning-attributes-to-users) page.
  * Organization Admins can now [impersonate pending user invites](https://docs.omni.co/administration/users/impersonate#impersonating-a-pending-invite).
  * Added the [**Trash visibility window** general setting](https://docs.omni.co/administration/settings#trash-visibility-window), which controls how long archived content is visible in the **Trash**. Content older than the retention window is automatically hidden.
  * Added additional event types to the [Audit log event types](https://docs.omni.co/administration/audit-logs/event-types) reference.
  * Added a new [**Opt out of product announcements** setting](https://docs.omni.co/administration/settings#opt-out-of-product-announcements) that lets Organization Admins disable in-app product announcements from Omni.

  **AI**

  * Added a new [`searchDashboards` MCP tool](https://docs.omni.co/ai/mcp/tools#search-dashboards). Enable or disable in **AI Hub > MCP** with the [**Content access**](https://docs.omni.co/ai/settings/mcp#content-access) setting.
  * Added [**Navigation** settings](https://docs.omni.co/visualize-present/apps/settings#navigation) to apps, allowing you to control how Omni apps open links.
  * Added the ability to use the Omni Agent to build an app directly within your current workbook.
  * Fixed an issue where the Omni Agent would overwrite workbook tabs when generating new queries or applying updates to existing queries.
  * When hard caps are defined for AI usage, Organization Admins must now [enable overage billing](https://docs.omni.co/ai/settings/usage#hard-cap) to continue using AI features.

  **Deliveries & Alerts**

  Updated the organization-level [**Delivery personalization**](https://docs.omni.co/administration/content-permissions#delivery-personalization) content permission setting to use three modes: **Per delivery**, **Always**, and **Never**.

  **General UI**

  * Added a full-screen presentation mode for apps, dashboards, and workbooks that hides the interface and displays content in full screen.
  * You can now sort **My documents** in the content library, and your sort preference will be remembered for future sessions.

  **Integrations**

  * Field names that contain Unicode characters are now supported for connections created after August 3, 2026. For connections created before this date, Unicode field names are disabled to prevent breaking existing content. Contact support if you need to enable this feature for older connections.
  * Added dbt environment management capabilities to the modeling IDE.
  * Updated the [Dynamic connection environments guide](https://docs.omni.co/connect-data/dynamic-environments) to include information about environment resolution order and multi-value user attribute behavior.
  * Updated the [Amazon Redshift setup guide](https://docs.omni.co/connect-data/setup/redshift#connecting-to-redshift-datashares) to include information about connecting to Redshift datashares.

  **Modeling**

  * Added support for disabling dashboard generation through the [`ai_settings.disabled_tools`](https://docs.omni.co/modeling/models/parameters/ai-settings/disabled-tools) model-level setting.
  * Added a new [`bind_outer_context`](https://docs.omni.co/modeling/query-views/parameters/bind-outer-context) parameter to query views, which will resolve `is_selected`, `is_filtered`, and `in_query` template variables against the outer query instead of the view's own query.

  **Visualization**

  Added an option to revert relabeled table visualization fields to the label defined in the model.
</Update>

<Update label="Week of July 27, 2026" rss={{title: "July 27, 2026", description: "AI credit controls for embed entity groups and per-user limits, AI Evals support on Azure, legend positioning in map visualizations, and more"}}>
  **Administration**

  [AI credit controls for embed entity groups](https://docs.omni.co/embed/admin/ai-credits) are now generally available.

  **AI**

  * Fixed an issue where the Workload Identity Federation (WIF) role prefix wasn't properly configured across all AI-calling services, which could cause authentication failures when using [Google Gemini Enterprise Platform (Vertex)](https://docs.omni.co/ai/settings/model-providers/google-vertex-ai) as a custom AI model provider.
  * AI Evals are now supported for [Omni instances hosted on Azure](https://docs.omni.co/administration/security/cloud-regions).
  * Added the ability to [inspect and annotate elements](https://docs.omni.co/visualize-present/apps/inspect) in Apps.
  * Apps will now persist their state to shareable URL parameters, allowing you to share specific views of apps with other users.

  **API**

  * Added an endpoint for [bulk adding and removing folder labels](https://docs.omni.co/api/folder-labels/bulk-update-folder-labels).
  * Added an endpoint for [retrieving an embed entity group's AI credit usage](https://docs.omni.co/api/ai-credit-usage/read-individual-entity-groups-ai-credit-usage).
  * Added a new API endpoint that allows you to [replace data in an uploaded dataset](https://docs.omni.co/api/uploads/replace-upload-data).
  * Added support for `.composite_topic` file names in model YAML endpoints.
  * Added an endpoint for [retrieving individual users' AI credit usage](https://docs.omni.co/api/ai-credit-usage/read-individual-users-ai-credit-usage).

  **Content**

  Added type filters to the [**My Activity** page](https://docs.omni.co/content/activity) to help you narrow down activity records by type, and removed the classic view option.

  **Dashboards**

  * Added a **Mapping** tab to the properties panel for dashboard query tiles. This centralized tab allows you to map filters and controls to the query.
  * Increased the [maximum number of queries allowed in an app](https://docs.omni.co/visualize-present/apps/index#limitations) from the previous limit to 100.
  * [Embedded dashboards will now use the new dashboard editor by default](https://docs.omni.co/visualize-present/dashboards/containers-items#requirements). Reach out to Omni support if you need to disable this for your instance.

  **Embedding**

  * Added [`dashboardGeneratedAt`](https://docs.omni.co/embed/setup/url-parameters/uiSettings#param-dashboard-generated-at) and [`tileRanTimestamp`](https://docs.omni.co/embed/setup/url-parameters/uiSettings#param-tile-ran-timestamp) as embed URL [`uiSettings`](https://docs.omni.co/embed/setup/url-parameters/uiSettings) options.
  * Per-user AI credit limits can now be set through the [`userSettings` embed URL parameter](https://docs.omni.co/embed/setup/url-parameters/userAttributes#manage-ai-credit-limits).

  **General UI**

  Personal appearance preferences (theme and display settings) will now persist across sessions.

  **Integrations**

  * Added instructions for [GitHub App authentication](https://docs.omni.co/integrations/git/setup/github#github-app) to the GitHub integration setup guide.
  * Added instructions for authenticating a dbt git repository with the Omni GitHub App to the [dbt setup guide](https://docs.omni.co/integrations/dbt/setup#github-app).

  **Modeling**

  * Added [`default_group_by`](https://docs.omni.co/modeling/models/default-group-by) as a model-level parameter. This allows you to control how measureless queries in the model are grouped by default.
  * Updated the [Content Validator documentation](https://docs.omni.co/modeling/develop/content-validator#suppressing-validator-issues) with information about automatic issue suppression in the model IDE.

  **Visualization**

  Added the ability to position and hide the legend in map visualizations.
</Update>

<Update label="Week of July 20, 2026" rss={{title: "July 20, 2026", description: "AI-powered semantic model generation now generally available, GitHub App authentication for dbt connections, AI Routines creation from chat, and more"}}>
  **Administration**

  * Added support for [Arabic (ar-SA) localization](https://docs.omni.co/administration/localization#locale).
  * Added a [**Chat panel side** user setting](https://docs.omni.co/administration/users/your-account#chat-panel-side), which allows you to select your preferred side for the AI chat panel.
  * Added support for [Thai (th-TH) localization](https://docs.omni.co/administration/localization#locale).
  * Added support for [Simplified Chinese (zh-CN) localization](https://docs.omni.co/administration/localization#locale).
  * Updated the [Authentication settings reference](https://docs.omni.co/administration/settings/authentication) to reflect the recent change to per-method sign in toggles.

  **AI**

  * Added support for [enabling and disabling AI integrations](https://docs.omni.co/ai/chat#managing-ai-integrations) in the chat interface.
  * AI Routines can now be created from chat.
  * Added persistence of [app filter values to URL parameters](https://docs.omni.co/visualize-present/apps/index#filters).
  * Dashboards returned in AI chat search results or in Slack responses will now be hyperlinked.
  * AI-powered semantic model generation is now generally available.
  * Updated the [AI context management guide](https://docs.omni.co/modeling/develop/ai-optimization) to reflect the current order of context pruning in Omni.

  **API**

  * Added `fileUploadId` to the Documents v2 endpoints, allowing you to access file upload identifiers for source tabs.
  * Added APIs that allow you to change a tile's query model binding.
  * Added a `workbookUrl` parameter to the [Run query API](https://docs.omni.co/api/queries/run-query#body-workbook-url) that, when set, tells the API to return an ephemeral workbook URL in successful responses.
  * Updated the Connections APIs to return full connection details when creating and updating connections.
  * Added a `model_extension_id` property to the `queryPresentations` schema used in Documents v2 endpoints, which identifies a query tile's bound query model and is returned on read (omitted for linked-type tiles).
  * Added support for including image and PDF attachments in requests made to the [Create AI job API](https://docs.omni.co/api/ai/create-ai-job).
  * Added a new API endpoint to update embed entity-group AI credit limits. **This feature is still in development.**
  * Added support for entity-group default credit limits on the AI credit-controls endpoints. **This feature is still in development**.
  * Added a new API endpoint that allows you to retrieve a list of embed entity-group AI credit limits. **This feature is still in development.**
  * The [Create AI job endpoint](https://docs.omni.co/api/ai/create-ai-job) now uses the supplied `branchId` parameter as the modeling write target, allowing you to specify which branch model changes should be written to instead of automatically creating a new branch.
  * Updated the Document permission APIs to include all currently supported document abilities.
  * Revamped API documentation with reorganized navigation by resource area, a new landing page, and a per-endpoint [versioning reference](https://docs.omni.co/api/versioning).

  **Content**

  * Apps can now be rendered as homepage content.
  * Added a [new setting that allows you to configure the root folder](https://docs.omni.co/content/organize#scoping-folder-navigation-with-breadcrumb-roots) displayed in the breadcrumb navigation for folders.
  * Added support for [displaying a specified dashboard on users' homepages](https://docs.omni.co/content/navigate#custom-homepage-dashboard).

  **Dashboards**

  Added documentation for per-dashboard container [mobile behavior overrides](https://docs.omni.co/visualize-present/dashboards/containers-items#mobile-behavior).

  **Integrations**

  * Added GitHub App authentication as an option when setting up dbt connections.
  * Added support for exclusion patterns in the [**Include schemas**](https://docs.omni.co/connect-data/schema-restriction) and [**Offloaded schemas**](https://docs.omni.co/connect-data/offloading-schemas) connection settings.
  * Added support for using a GitHub app to authenticate a GitHub repository to Omni.
  * Added a new guide explaining how to [safely rename a git-connected shared model's display name](https://docs.omni.co/guides/modeling/rename-git-connected-shared-model).
  * Added support for using your own [SSH deploy keys with Git and rotating them with the API](https://docs.omni.co/guides/api/rotate-ssh-deploy-keys).
  * Updated the [SSH tunnels guide](https://docs.omni.co/connect-data/ssh-tunnels#maintaining-host-keys) to include information about maintaining host keys.

  **Modeling**

  * Added a new [`required_fields`](https://docs.omni.co/modeling/measures/parameters/required-fields) parameter to measures, allowing you to specify fields that must be included in a query when a particular measure is used.
  * Added a [Level of Detail (LOD) comparison guide](https://docs.omni.co/guides/patterns/level-of-detail-build-comparison) to help you understand the differences between LOD expressions and when to use each one.

  **Users & permissions**

  Added **View SQL** as a granular permission to [custom roles](https://docs.omni.co/administration/users/custom-roles#permissions-reference).

  **Visualization**

  * Added support for referencing pivot values in Markdown visualizations using Mustache.
  * Fixed an issue where faceting was not working correctly for multi-measure (trellis) charts.
</Update>

<Update label="Week of July 13, 2026" rss={{title: "July 13, 2026", description: "AI model suggestion generation endpoints, mobile dashboard settings, OAuth for database connections, and more"}}>
  **Administration**

  Added support for [UK and Australia regions](https://docs.omni.co/administration/security/cloud-regions) to Azure deployments.

  **AI**

  * Added a new **AI calculations** setting in **AI Hub > General > Features**. When enabled, AI calculations will run on Omni's hosted model instead of using Snowflake or Databricks native functions. **This feature is still in development**.
  * Updated the [Forecasting with AI](https://docs.omni.co/ai/forecasting) documentation to clarify that the Omni Agent uses an internal statistical library and does not have access to the web.
  * Added documentation for [per-user AI credit limits](https://docs.omni.co/ai/settings/usage#user-level-credit-controls).
  * Added documentation for setting up [Google Gemini Enterprise Agent Platform (formerly Vertex AI)](https://docs.omni.co/ai/settings/model-providers/google-vertex-ai) as a BYO LLM provider.

  **API**

  * Added an endpoint for [manually triggering an AI model suggestion run](https://docs.omni.co/api/ai-model-suggestions/generate-model-suggestions).
  * Added an endpoint for [retrieving the status of a specific model suggestion generation run](https://docs.omni.co/api/ai-model-suggestions/get-status-for-a-generation-run).
  * Added an endpoint for [retrieving the status of the latest model suggestion generation run](https://docs.omni.co/api/ai-model-suggestions/get-the-latest-generation-run).
  * Added an [endpoint](https://docs.omni.co/api/documents/remove-dashboard-from-document) that allows you to remove the dashboard from a document.
  * Added a `workbookModelId` field to responses from the Documents v2 APIs.
  * Added support to the API for supplying your own git SSH deploy keys.
  * Added an [API endpoint](https://docs.omni.co/api/ai-credit-controls/set-individual-users-ai-credit-limits) to update individual users' AI credit limits.
  * Added a new [API endpoint](https://docs.omni.co/api/ai-credit-controls/list-individual-users-ai-credit-limits) for retrieving individual users' AI credit limits.
  * Removed invalid `createdAt` and `updatedAt` fields from the [List Folders API response](https://docs.omni.co/api/folders/list-folders).
  * Added a [guide for migrating Looker dashboards to Omni](https://docs.omni.co/guides/migrations/looker-to-omni-skill).

  **Dashboards**

  * Added a **Mobile** setting to the dashboard properties panel. This setting controls how a specific dashboard container behaves when viewed on mobile.
  * Added a [**Control manages field order** setting](https://docs.omni.co/visualize-present/dashboards/controls#multi-field-reordering) to multi-field picker controls. When enabled, dashboard viewers can reorder fields in a chart by the order they select them.
  * Added a [**Safe Domains** setting](https://docs.omni.co/visualize-present/apps/settings#safe-domains) to Apps, enabling app editors to extend the app’s security model by specifying additional trusted hosts for loading images, scripts, stylesheets, fonts, and network connections.
  * Added support using [`data:` and `blob:` image URLs](https://docs.omni.co/visualize-present/apps/index#security) in Apps.
  * Added documentation for the [**Allow map providers** App setting](https://docs.omni.co/visualize-present/apps/settings#allow-map-providers).

  **Deliveries & Alerts**

  * Added [Mustache template](https://docs.omni.co/share/deliveries/dynamic-content) support to the **Path** field for Amazon S3 deliveries.
  * Updated the [Deliveries overview](https://docs.omni.co/share/deliveries#use-cached-results-if-available) to include information about the **Use cached results if available** setting.

  **Embedding**

  Added support for limiting AI credit usage for specific embed entity groups.

  **General UI**

  * Added support for setting a default dashboard to display on Omni users' homepages.
  * Added support to [the in-app search](https://docs.omni.co/content/search#param-hub) for restricting results to Hub/published content.

  **Integrations**

  * Added support for importing [Snowflake semantic view filters](https://docs.omni.co/connect-data/snowflake-semantic-views/sync/metadata-reference) as filter dimensions.
  * [OAuth for database connections](https://docs.omni.co/connect-data/oauth/index) is now generally available.
  * Added support for [Workload Identity Federation as an authentication method](https://docs.omni.co/connect-data/setup/bigquery-workload-identity) for BigQuery database connections.
  * Updated the [Git settings documentation](https://docs.omni.co/integrations/git/settings) to reflect the names of settings currently in the Omni UI.
  * Updated the [Git troubleshooting guide](https://docs.omni.co/integrations/git/troubleshooting#merging-a-pr-reverted-changes-from-another-branch) to explain how merging stale pull requests can overwrite changes from other branches in your shared model, including symptoms, causes, and prevention strategies.
  * Updated the [Dynamic connection environments guide](https://docs.omni.co/connect-data/dynamic-environments) to include information about how connection base roles should be configured.

  **Modeling**

  * Added [`allow_ctes`](https://docs.omni.co/modeling/models/parameters/ai-settings/allow-ctes) and [`allow_custom_fields`](https://docs.omni.co/modeling/models/parameters/ai-settings/allow-custom-fields) to the model-level [`ai_settings`](https://docs.omni.co/modeling/models/parameters/ai-settings) parameter. These settings control whether the Omni Agent can generate CTEs and custom fields. **Omni does not recommend disabling these settings - see the docs for more information.**
  * Added support for suppressing Content Validator issues by adding `!suppress(issue_slug)` comments on properties or objects.
  * Updated the [schema refresh documentation](https://docs.omni.co/modeling/develop/schema-refreshes#requiring-branches-for-schema-refreshes) to clarify that a connection can only have a single model when **Branch-based schema refresh** is enabled.
  * Added [documentation explaining the scope of join aliases](https://docs.omni.co/modeling/views/alias#alias-scope) created with `join_to_view_as` and `join_from_view_as`, including a troubleshooting guide for common errors when referencing these aliases outside their intended scope.

  **Visualization**

  * Added support for [pinning color values to min/mid/max values](https://docs.omni.co/visualize-present/visualizations/configuration/color#gradient-color-scale-values) in gradient color scales.
  * Updated the [Markdown Dashboard tile anchors guide](https://docs.omni.co/showcase/visualizations/dashboard-tile-anchors#linking-to-another-dashboard-with-filters-and-controls-retained) to include information about passing filters and controls through cross-dashboard Markdown links.

  **Workbook**

  * Input columns now support boolean (Yes/No) as a data type.
  * Added documentation for [Top N fields](https://docs.omni.co/analyze-explore/custom-fields/top-n) and [Top N controls](https://docs.omni.co/visualize-present/dashboards/controls#top-n-limit).
</Update>

<Update label="Week of July 6, 2026" rss={{title: "July 6, 2026", description: "Slack support for AI routines, in-app MCP settings, and more"}}>
  **Slack for AI routines!**

  Slack is now supported as an [AI routine destination](https://docs.omni.co/ai/routines).

  **Omni Agent floating avatar access**

  The Omni Agent is now accessible by clicking the floating avatar in workbooks and dashboards. In embedded instances, the agent is still accessed using the ✨ (sparkle) icon in the sidebar.

  **Administration**

  * Added per-method sign-in settings to the **Settings > Authentication** page. This allows you to enable and disable specific authentication methods for your instance.
  * Added documentation for the SAS token access option for [Azure audit logs](https://docs.omni.co/administration/audit-logs/azure-blob-storage).

  **AI**

  * Added the **Chat in navigation** setting to **AI Hub > General > Features**, which allows you to control whether the standalone AI chat is accessible from the main navigation in Omni.
  * [Apps](/visualize-present/apps) can now dynamically filter their own queries, enabling interactive drill-downs — for example, clicking an element to filter the underlying data — with loading indicators while results refresh.
  * Added support for user default credit limits on the AI credit controls endpoints. **This feature is currently in development.**
  * Draft Apps will now display [Access Warnings](https://docs.omni.co/visualize-present/apps/index#access-warnings).
  * Added support for Google Vertex AI as a bring-your-own LLM (BYO-LLM) provider.
  * Updated the design of the AI dashboard search tile for improved usability and visual consistency.
  * Added AI credit limit control to the **User Details** page, allowing you to set and manage AI credit allocations for individual users. **This feature is currently in development.**
  * Added settings for [MCP tools](https://docs.omni.co/ai/mcp/tools) to [**AI Hub > MCP**](https://docs.omni.co/ai/settings/mcp).
  * MCP server access is now governed by the **MCP server** setting in **AI Hub > General > Features**, rather than being tied to the **Personal tokens** setting. See [MCP Authentication](https://docs.omni.co/ai/mcp/authentication) for more information.
  * Added [documentation for styling apps](https://docs.omni.co/visualize-present/apps/styling) using Omni's design system CSS variables and custom theme styles.

  **API**

  * Removed an invalid `GET /connection-environments endpoint` from the API documentation.
  * Added the [Rename document identifier endpoint](https://docs.omni.co/api/documents-v2/rename-document-identifier), which allows you to programmatically update document identifiers.
  * Updated the [Get document state (v2) endpoint](https://docs.omni.co/api/documents-v2/get-document-state) to correctly retrieve the specified document's published state. Previously, the API would return the document's draft state.
  * The [Get document state](https://docs.omni.co/api/documents-v2/get-document-state) and [Get draft state](https://docs.omni.co/api/documents-v2/get-draft-state) endpoints now include the document's `modelId` in responses.

  **Dashboards**

  * The Dashboard Agent can now create dashboard controls.
  * Added the ability to [unlink and detach metadata](https://docs.omni.co/visualize-present/dashboards/charts#detaching-and-hiding-query-text-items) from query tiles in dashboards.

  **General UI**

  Added a **Word wrap** toggle to the **View** menu in the IDE.

  **Integrations**

  * Added support for [default warehouse routing](https://docs.omni.co/connect-data/oauth/snowflake/index#warehouse-configuration) to the Snowflake OAuth integration.
  * Added additional scenarios and troubleshooting instructions to the [Git integration troubleshooting guide](https://docs.omni.co/integrations/git/troubleshooting).

  **Modeling**

  * Added support for agent-specific AI context via the `omni_agent` Mustache namespace, allowing you to customize AI behavior on a per-agent basis. See [Optimize models for Omni AI](https://docs.omni.co/modeling/develop/ai-optimization#model-specific-context) for more information.
  * Added support for `@{constant_name}` references in `ai_context` fields for models, topics, views, and sample queries, allowing you to dynamically reference constants in your semantic model's AI context configuration. See [Optimize models for Omni AI](https://docs.omni.co/modeling/develop/ai-optimization#use-constants-for-reusable-ai-context) for more information.
  * [Composite topics](https://docs.omni.co/modeling/composite-topics/index) are now available in all Omni instances. **Note**: Composite topics are still in beta and [we want your feedback](https://docs.omni.co/modeling/composite-topics/index#roadmap)!
  * Added Finnish (`fi_FI`) as a [`default_numeric_locale`](https://docs.omni.co/modeling/models/default-numeric-locale) option.
  * [Sample queries](https://docs.omni.co/modeling/composite-topics/parameters/sample-queries) can now be saved to composite topics.
  * Added a new [`always_join_all_topics`](https://docs.omni.co/modeling/composite-topics/parameters/always-join-all-topics) parameter to composite topics. This allows you to control whether all topics are included in the `FULL OUTER JOIN` or only those with selected fields.
  * Fixed an issue where composite topics were not respecting the `fields` parameter, allowing access to fields that should have been restricted.
  * Added Portuguese (`pt_PT`) as a [`default_numeric_locale`](https://docs.omni.co/modeling/models/default-numeric-locale) option.
  * Added documentation for the [`fields`](https://docs.omni.co/modeling/composite-topics/parameters/fields) composite topic parameter.
</Update>

<Update label="Week of June 29, 2026" rss={{title: "June 29, 2026", description: "AccessBoost for Apps, HTTPS deploy-token authentication for dbt, filter suggestions in dashboard properties, and more"}}>
  **All about Apps!**

  * AccessBoost now applies to queries in [Apps](/visualize-present/apps).
  * System and custom application theme settings are now available as CSS variables for use in [Apps](/visualize-present/apps).
  * Diff blocks will now display code changes made when [editing an App](https://docs.omni.co/visualize-present/apps#edit-an-app).

  **AI**

  Added support for implementing AI model tier-specific context with the `omni_llm` Mustache reference. See the [AI context management guide](https://docs.omni.co/modeling/develop/ai-optimization#model-specific-context) for more information and examples.

  **API**

  * Updated the [Stream AI job results API](https://docs.omni.co/api/ai/stream-ai-job-results) to include all query results in responses.
  * Dashboards can now be upgraded to the new layout experience using the [API](https://docs.omni.co/api/documents/upgrade-dashboard-layout).
  * API keys can now be [rotated](https://docs.omni.co/api/authentication#rotate).

  **Dashboards**

  Suggestions for filters will now display in the **Filter properties** panel when adding filters to dashboards.

  **dbt**

  HTTPS deploy-token authentication is now supported for connecting to dbt repositories.

  **Deliveries & Alerts**

  Email deliveries can now be restricted to a [list of allowed email domains](https://docs.omni.co/share/deliveries/email/domain-allowlist).

  **Embedding**

  * Added a warning to the [`mode` embed URL parameter documentation](https://docs.omni.co/embed/setup/url-parameters/mode#param-mode) cautioning against generating `SINGLE_CONTENT` and `APPLICATION` mode embed sessions for the same user simultaneously, as this can result in inconsistent behavior.
  * Added documentation for the automatic merge behavior that occurs when an [email-only user is converted to an embed user](https://docs.omni.co/administration/users/email-only#merging-email-only-users-with-embed-users).

  **Integrations**

  [Amazon Athena connections](https://docs.omni.co/connect-data/setup/athena) now support table/CSV uploads.

  **Modeling**

  * [Composite topics](https://docs.omni.co/modeling/composite-topics) now support selective field inclusion and exclusion, allowing you to control which fields from referenced topics appear in the composite topic.
  * Added a guide for [creating dynamic pivot query views](https://docs.omni.co/guides/patterns/dynamic-pivot-query-view).

  **Workbook**

  * Added documentation that clarifies how Omni handles URLs when [working with unsaved analyses](https://docs.omni.co/analyze-explore/workbook-basics#unsaved-analyses-and-url-behavior).
  * You can now add dashboard-level filters to [workbook queries with a single click](https://docs.omni.co/analyze-explore/queries/filters#adding-dashboard-filters-to-workbook-queries).
</Update>

<Update label="Week of June 22, 2026" rss={{title: "June 22, 2026", description: "AI-powered visualization annotations now generally available, apps enabled by default for new organizations, Notion external AI context integration, and more"}}>
  **AI annotation support**

  AI-powered visualization annotations are now generally available.

  **Notion integration for AI context**

  The [external AI context integration for Notion](https://docs.omni.co/integrations/ai/notion) is now available.

  **Domain allowlist for email deliveries**

  Added support for [restricting email deliveries](https://docs.omni.co/share/deliveries/email/domain-allowlist) to specific domains.

  **AI**

  [Apps](https://docs.omni.co/visualize-present/apps) are now enabled by default for Omni organizations created after June 25, 2026.

  **API**

  * Added support for workbook-only documents to the [Create documents (v2) API](https://docs.omni.co/api/documents-v2/create-document).
  * Added a [new API endpoint](https://docs.omni.co/api/who-am-i/get-current-identity-and-permissions) that returns information about the currently authenticated user.
  * Added a [new API](https://docs.omni.co/api/ai-model-suggestions/dismiss-a-suggestion) that allows you to dismiss AI model suggestions.
  * Added the ability to manually trigger an AI routine in Omni and using the [API](https://docs.omni.co/api/ai-routines/run-ai-routine-now).
  * Added a [new API](https://docs.omni.co/api/ai-model-suggestions/list-ai-generated-suggestions) that allows you to retrieve a list of AI suggestions for a model.
  * Added two new APIs that allow you to [retrieve](https://docs.omni.co/api/ai-credit-controls/get-ai-credit-controls) and [update](https://docs.omni.co/api/ai-credit-controls/update-ai-credit-controls) your organization's AI credit control settings.
  * Added a [new API](https://docs.omni.co/api/ai-model-suggestions/enable-model-ai-suggestions-schedule) that allows you to enable a daily schedule for AI model suggestions.
  * Added a [new API](https://docs.omni.co/api/ai-model-suggestions/restore-a-dismissed-suggestion) that allows you to restore a previously dismissed AI model suggestion.
  * Added a [new API](https://docs.omni.co/api/ai-model-suggestions/disable-model-ai-suggestions-schedule) that allows you to disable the schedule for AI model suggestions.
  * Added a [new API](https://docs.omni.co/api/ai-model-suggestions/delete-a-suggestion) that allows you to permanently delete an AI model suggestion.
  * Added new endpoints that allow you to [create](https://docs.omni.co/api/ai-routines/create-an-ai-routine) and [update](https://docs.omni.co/api/ai-routines/update-an-ai-routine) AI Routines.
  * Added support for overriding a connection environment to the [Run query API](https://docs.omni.co/api/queries/run-query#body-connection-environment-id).

  **Dashboards**

  * Added a [placeholder layout item](https://docs.omni.co/visualize-present/dashboards/placeholders) to help you wire-frame dashboard layouts before adding actual content.
  * Added the ability to [lock dashboard containers](https://docs.omni.co/visualize-present/dashboards/containers-items#lock-container).

  **Embedding**

  Added support for [per-user OAuth authentication for embed users](https://docs.omni.co/embed/customization/vanity-domains#per-user-oauth-support) through vanity domain redirects.

  **Integrations**

  Added a new guide for setting up [OAuth authentication with Databricks](https://docs.omni.co/connect-data/oauth/databricks).

  **Modeling**

  * Added support for `timeframes` and `timeframe_metadata` in [shared dimensions](https://docs.omni.co/modeling/composite-topics/parameters/shared-dimensions) within composite topics.
  * Dynamic shared extensions can now be scoped to the active connection environment.

  **Visualization**

  Added the ability to set [column widths in tables](https://docs.omni.co/visualize-present/visualizations/types/table#field-options) by specifying a pixel value.

  **Other**

  Refactored the AI credits page to provide better account-level visibility and management of your AI usage.
</Update>

<Update label="Week of June 15, 2026" rss={{title: "June 15, 2026", description: "Spacer and divider dashboard elements, AI file uploads and Notion integration, embedding display controls, and more"}}>
  **Administration**

  Added an **Apps** setting to **Settings > General**, allowing Organization Admins to control whether users can use apps.

  **AI**

  * You can now upload `.lkml`, `.xml`, and `.html` files to AI chats.
  * Added support for connecting to Notion databases through the Model Context Protocol (MCP) client integration. Reach out to support for more information.
  * Added bulk actions for ignoring, restoring, and deleting suggestions from the AI suggestions page.

  **API**

  * Added a new optional **pretty** query parameter to the v2 document `GET` endpoints to request formatted JSON responses with 2-space indentation.
  * Corrected the deprecation date for the v1 Update document endpoints to July 31, 2026 and updated the deprecation headers in 200 responses.
  * Updated the OpenAPI spec to correctly indicate that the `summary` property in v2 document endpoints is optional and automatically filled when not provided.

  **Dashboards**

  Added **Spacer** and **Divider** inline layout elements to the dashboard builder.

  **Embedding**

  * Added a [`documentBreadcrumb` property](https://docs.omni.co/embed/setup/url-parameters/uiSettings#param-document-breadcrumb) to the `uiSettings` embed parameter, which allows you to control the display of folder paths in embedded content.
  * Added a [`dashboardChartContextMenu` property](https://docs.omni.co/embed/setup/url-parameters/uiSettings#param-document-chart-context-menu) to the `uiSettings` embed parameter, which allows you to control the display of context menus on embedded dashboard tiles.

  **Workbook**

  Added a search field to the **Switch topic** picker.

  **Other**

  Added a [timezone override picker](https://docs.omni.co/visualize-present/dashboards/timezone-override) for downloads and schedules.
</Update>

<Update label="Week of June 8, 2026" rss={{title: "June 8, 2026", description: "Publish draft document API endpoint, sketch-based approximate aggregates in routing, map viewport configuration, and more"}}>
  **AI**

  AI-powered suggestions are now generally available.

  **API**

  * Added a new [Publish draft document](https://docs.omni.co/api/documents-v2/publish-draft) endpoint.
  * Added a new optional `deleteViewsAndTopicsMissingFromSource` parameter to the [Migrate model API](https://docs.omni.co/api/models/migrate-a-model) that controls how views and topics are handled during migration.
  * Added `createdAt` and `updatedAt` fields to responses from Connection APIs.
  * Added support for passing `userId` as a query parameter when using the Run query API.

  **Dashboards**

  * The **Subtitle** and **Description** fields now remain visible in the properties panel for query-linked dashboard containers.
  * AI buttons on dashboards now open the chat interface in a split-view panel.

  **Integrations**

  Added validation in dbt settings to reject reserved git branch names.

  **Modeling**

  Added support for sketch-based approximate aggregates in aggregate awareness routing.

  **Visualization**

  * Added support for storing an initial map viewport in the map visualization configuration.
  * Added support for setting a fixed minimum and maximum range for display bars in tables.
</Update>

<Update label="Week of June 1, 2026" rss={{title: "June 1, 2026", description: "Calculation pushdown for range references, dynamic top-n parameterization in modeling, simplified Slack integration setup, and timezone overrides in embed URLs"}}>
  **Administration**

  Added documentation for [Azure Blob Storage](https://docs.omni.co/administration/audit-logs/azure-blob-storage) as an audit log destination.

  **AI**

  Custom dashboard identifiers can now be used when using the AI chat interface to search for dashboards.

  **Calculations**

  Added the [**Calculation pushdown** feature](https://docs.omni.co/analyze-explore/calculations/index#evaluating-calculations-before-or-after-row-limits), which allows calculations with range references to evaluate against your full dataset before row limits are applied. Previously, calculations only evaluated on the rows returned after the limit.

  **Dashboards**

  * Added documentation for using [query metadata items](https://docs.omni.co/visualize-present/dashboards/charts#inserting-query-metadata-items), which allow you to display query info such as name and subtitle, in dashboards.
  * Added info about the [**Add inside selection** option](https://docs.omni.co/visualize-present/dashboards/containers-items#from-the-catalog) in dashboard catalogs to the docs.

  **Embedding**

  * Added support for specifying a [timezone override](https://docs.omni.co/embed/setup/url-parameters/timezone) in embed login URLs.
  * Updated the [embed best practices](https://docs.omni.co/embed/best-practices#scheduled-deliveries-and-embed-user-entities) to include guidance for multi-entity users, dynamic shared extensions, and setting up deliveries.

  **Integrations**

  * The [Slack integration](https://docs.omni.co/integrations/ai/slack) no longer requires organization-level configuration before users can utilize it.
  * Improved visibility of schema, table, and view permission requirements for [Snowflake semantic views](https://docs.omni.co/connect-data/snowflake-semantic-views) in the documentation.

  **Modeling**

  * Added a new [`n` parameter](https://docs.omni.co/modeling/dimensions/parameters/dynamic-top-n#query-time-parameterization) to the `dynamic_top_n` modeling parameter, which allows you to dynamically control the number of results returned in queries.
  * Added a [`disabled_tools` property](https://docs.omni.co/modeling/models/parameters/ai-settings/disabled-tools) to the model AI settings that allows you to specify which AI tools should be unavailable to users in your semantic model.

  **Visualization**

  Added five new [Markdown column examples](https://docs.omni.co/showcase) to the visualization showcase: **User profile**, **Pills**, **Star rating**, **Location with national flag**, and **Status indicator**.

  **Workbook**

  * Added support for using fields included in access filters as mapping keys in [input columns](https://docs.omni.co/analyze-explore/input-columns).
  * Added the ability to [promote Markdown](https://docs.omni.co/visualize-present/visualizations/types/table-field-display#customizing-markdown-templates-in-the-workbook) to your workbook directly from the table configuration settings.

  **Other**

  Added support for personal content as a membership-level system attribute.
</Update>

<Update label="Week of May 25, 2026" rss={{title: "May 25, 2026", description: "AI Hub and Markdown columns are now generally available, AI skills with required access grants, and more"}}>
  **AI Hub is now available!**

  Check out the [AI Hub](https://docs.omni.co/administration/ai-hub) documentation to learn more.

  **Markdown columns are now available!**

  See the [dimension](https://docs.omni.co/modeling/dimensions/parameters/markdown) and [measure](https://docs.omni.co/modeling/measures/parameters/markdown) documentation for more information.

  **AI**

  * Added [optional scope configuration display](https://docs.omni.co/integrations/omni-slack-agent#optional-scopes-2) to the Slack integration settings in the **Integrations** view sidebar.
  * Added a guide for setting up Omni MCP Server with [Microsoft Copilot (Copilot Studio)](https://docs.omni.co/ai/mcp/microsoft-copilot).

  **API**

  * Added a new [Delete connection](https://docs.omni.co/api/connections/delete-connection) API.
  * Fixed an issue where [trigger requests](https://docs.omni.co/api/schedules/trigger-schedule) were incorrectly accepted for paused schedules. The API now properly rejects these requests.
  * Added a new [List document favoriters](https://docs.omni.co/api/document-favorites/list-document-favoriters) endpoint.
  * Added the `isDeferralEnabled` property to the [dbt environment APIs](https://docs.omni.co/api/dbt/create-dbt-environment).
  * Added a [guide](https://docs.omni.co/guides/api/bulk-update-model-yaml) about using the API to perform bulk updates to model files.
  * Updated the [Create model endpoint reference](https://docs.omni.co/api/models/create-model) to include all parameters from the public OpenAPI spec.

  **Dashboards**

  * Added support for dynamic filter dashboard controls, allowing dashboard viewers to add their own filters to published dashboards without the filter being predefined by the dashboard creator.
  * Added a [preview mode](https://docs.omni.co/visualize-present/dashboards/preview-mode) for dashboards. **Note**: This feature is not available for classic dashboards.

  **Embedding**

  Updated the [embedding documentation](https://docs.omni.co/embed/best-practices#send-connection-roles-on-every-embed-request) to clarify that you should send `connectionRoles` on every embed request.

  **Integrations**

  Fixed an issue where Snowflake external OAuth scope was incorrectly converted to lowercase.

  **Modeling**

  * Added support for [viewing the history for individual model files](https://docs.omni.co/modeling/develop/history#viewing-file-history) to the IDE.
  * Added support for gating [AI skills](https://docs.omni.co/ai/skills) with required access grants.
  * Added documentation for the [`dynamic_shared_extensions`](https://docs.omni.co/modeling/models/dynamic-shared-extensions) modeling parameter.

  **Visualization**

  Added text formatting controls to the [**Single Record** visualization](https://docs.omni.co/visualize-present/visualizations/types/single-record#text-formatting).

  **Workbook**

  Added support for `is like` filters in the workbook UI. Use the [`sql_like`](https://docs.omni.co/modeling/filters/operators/sql-like) filter operator to achieve the same result with YAML.
</Update>

<Update label="Week of May 17, 2026" rss={{title: "May 17, 2026", description: "Support for compute routing, drilling in calculated fields, OAuth for the Omni CLI, and more"}}>
  **Specify compute resources for jobs**

  Added a new [`compute_routing`](https://docs.omni.co/modeling/models/compute-routing) model property that allows you to specify different compute resources for different types of jobs.

  **Drilling in calculated fields**

  Added support for drilling through from calculated fields that contain plain references to dimensions or measures.

  **OAuth for the Omni CLI**

  Added OAuth authentication support for the CLI. You can now use `omni config login <profile>` to authenticate with your Omni workspace. See the [CLI authentication documentation](https://docs.omni.co/developers/cli/authentication#oauth-authentication) for details.

  **Administration**

  * Updated documentation to clarify the differences between the dashboard-level [**View As**](https://docs.omni.co/visualize-present/dashboards/view-as) and Omni-level **Impersonate user** features, including when to use each.
  * Updated [documentation](https://docs.omni.co/administration/chart-palettes/omni) to remove "Omni" branding from built-in chart palette names for white-labeling purposes. Palette IDs remain unchanged for backward compatibility.

  **AI**

  * Updated documentation for the Omni Slack Agent to include a new [Slack permissions section](https://docs.omni.co/integrations/omni-slack-agent#optional-scopes) that lists required and optional scopes with their impacts on deliveries and the agent.
  * Fixed the [Features and shared data table in the AI security documentation](https://docs.omni.co/ai/security#features-and-shared-data) to correctly indicate that **Chat** and **Blank workbook topic picking** share current query metadata. Previously, these features were incorrectly marked as not sharing this data.

  **API**

  * Added a new [`GET /api/v1/documents/{identifier}/drafts`](https://docs.omni.co/api/documents/list-document-drafts) endpoint to retrieve draft versions of a document.
  * Renamed the [AI agent actions API endpoint](https://docs.omni.co/api/models/get-model-ai-agent-actions) from `ai_agent_actions` to `ai-agent-actions`. The full endpoint is now `/api/v1/models/{modelId}/ai-agent-actions`.
  * Updated the API documentation to include the `alwaysScopeViewNames` and `inferRelationshipsFromColumnNames` connection parameters in the [Create connection](https://docs.omni.co/api-reference/connections/create-connection) request body.
  * Added documentation for the [Update users](https://docs.omni.co/api/users/update-user) and [Update user groups](https://docs.omni.co/api/user-groups/update-user-group) endpoints. Also added the `jobId` field to the [Refresh schema endpoint's 200 response](https://docs.omni.co/api/models/refresh-schema#response-job-id).

  **Dashboards**

  * Container elements with attached queries no longer display the **Flow** and **Style** tabs in the builder, as these settings are not applicable to query-attached containers.
  * Added a selection-scope banner to the **Add** menu and **Catalog** popover that appears when a non-page-root container is selected, letting you know that new items will be added inside the selected container. The banner includes a **Clear selection** button to deselect the container and place new items at the page root instead.
  * Added a duplicate action for containers and content items in advanced dashboard layouts.
  * Added a **Dynamic size** option for KPI numbers in advanced layouts, allowing you to automatically scale text based on available space.
  * Added documentation for the [timezone picker](https://docs.omni.co/visualize-present/dashboards/timezone-override) that lets viewers override the query timezone for a single dashboard or workbook page.

  **General UI**

  Added a [searchable model picker](https://docs.omni.co/analyze-explore/workbook-basics#creating-a-new-workbook) when creating a new workbook from the **+ New** button.

  **Integrations**

  * [BigQuery connections](https://docs.omni.co/connect-data/setup/bigquery) will now perform dataset-level scans when a connection's **Included datasets** setting includes wildcards. This fixes an issue where the connector would scan project metadata to discover schemas, which would cause permission errors when users didn't have the BigQuery Project Metadata permissions.
  * Added [inline error detection in the dbt IDE](https://docs.omni.co/integrations/dbt/semantic-layer#troubleshooting) that displays semantic-layer validation problems directly in the code editor.
  * Added a setup guide for connecting to [Starburst Galaxy](https://docs.omni.co/connect-data/setup/starburst-galaxy), a managed Trino database service.
  * Updated the S3 resource ARN for [Amazon Athena](https://docs.omni.co/connect-data/setup/athena) query results to reference only the specific bucket instead of all buckets on the account.
  * Added documentation about using `sql_preamble` to work around Starburst Galaxy's `query_max_stage_count` limit to the [database troubleshooting guide](https://docs.omni.co/connect-data/troubleshooting).
  * Added support for [Snowflake external OAuth with Microsoft Entra ID](https://docs.omni.co/connect-data/oauth/snowflake/external-entra).

  **Modeling**

  * Added a [`target` option](https://docs.omni.co/modeling/dimensions/parameters/links#param-target) to dimension and measure `links` in your semantic model, allowing you to specify how linked content should open.
  * Added support for **Fully-resolved** as a first-class IDE mode.
  * Added support for [aggregate awareness across joins](https://docs.omni.co/analyze-explore/performance/aggregate-awareness), allowing you to leverage pre-aggregated data more effectively when querying across related tables.
</Update>

<Update label="Week of May 10, 2026" rss={{title: "May 10, 2026", description: "Refreshes for schema refreshes, lots of API updates"}}>
  **Support hard/soft refresh in scheduled refreshes & through the API**

  Added support for hard and soft refresh options in [scheduled refreshes](https://docs.omni.co/modeling/develop/schema-refreshes#on-a-schedule) and through the [API](https://docs.omni.co/api/schema-refresh-schedules/create-schema-refresh-schedule).

  **Configurable session length for non-embed sessions**

  Added a new organization-level [Session length](https://docs.omni.co/administration/settings#general) setting. This allows you to define how long user sessions remain active before requiring re-authentication.

  **Administration**

  Added a [**Default connection** setting](https://docs.omni.co/ai/settings/features#default-connection) to **AI Hub > General > Features**, which allows you to set a default connection for the Omni Agent.

  **AI**

  * Updated the [Omni Agent guide](https://docs.omni.co/ai/chat#creating-dashboards) to include information about agentic dashboard creation.
  * Added information about AI summary caching to the [AI credit tracking FAQ](https://docs.omni.co/ai/settings/usage).

  **API**

  * Added a new [`GET /api/v1/ai/branding` endpoint](https://docs.omni.co/api/ai/get-ai-agent-branding) that allows you to retrieve branding configuration for AI features.
  * Added a new [`GET /api/v1/ai/conversations/{conversationId}`](https://docs.omni.co/api/ai/get-conversation) endpoint that allows you to retrieve details about a specific AI conversation.
  * Added a new `GET /api/v1/models/{modelId}/ai_agent_actions` that allows you to retrieve AI agent actions configured for a specific model.
  * Added a new [`GET /api/v1/ai/conversations` endpoint](https://docs.omni.co/api/ai/list-ai-conversations) that allows you to retrieve a user's AI conversations.
  * Added a new [`GET /api/v1/connections/{id}` endpoint](https://docs.omni.co/api/connections/get-connection) that allows you to retrieve details about a specific database connection.
  * Updated the [Update user endpoint](https://docs.omni.co/api/users/update-user) documentation to reflect support for updating an existing user's email address. Previously, the email field was read-only and had to match the user's existing email address.

  **Dashboards**

  * Added a per-page user timezone override widget that allows you to change the timezone for a specific dashboard or workbook page without affecting your global timezone setting.
  * Added support for tile-align presets when configuring content items in the dashboard builder.
  * Improved zoom behavior in the advanced dashboard layout to provide smoother panning and zooming interactions when working with larger dashboards.
  * Added a [context menu to the page switcher](https://docs.omni.co/visualize-present/dashboards/page-navigation#navigating-in-edit-mode) while editing dashboards.

  **General UI**

  * Fixed an issue where folder-specific role descriptions were not displaying correctly in the **Roles** management interface when sharing folders.
  * Removed "Omni" branding from built-in color palette names.

  **Integrations**

  * Fixed an issue where a Snowflake external OAuth scope for Microsoft Entra ID was not properly qualified, which could cause authentication failures when using Entra OAuth with Snowflake connections.
  * Added [documentation](https://docs.omni.co/integrations/dbt/virtual-schemas#common-questions) explaining how `omni_dbt` virtual schema names are derived from dbt model custom schema configurations.
  * Updated the [Snowflake Privatelink documentation](https://docs.omni.co/connect-data/snowflake-privatelink) to clarify differences between AWS and Azure implementations.

  **Modeling**

  Added support for patch-based merging of [AI context](https://docs.omni.co/modeling/models/ai-context) configurations in non-base model layers.

  **Workbook**

  Added an **Edit view** drawer that allows you to modify [database](https://docs.omni.co/modeling/views/edit) and [query views](https://docs.omni.co/modeling/query-views/edit) in a workbook.
</Update>

<Update label="Week of May 3, 2026" rss={{title: "May 3, 2026", description: "Lots of dashboard editor updates, new Modeling Agent skills, new API key management tools, and more"}}>
  **AI**

  * Added support for enabling the AI to query outside topics when using the [MCP Server](https://docs.omni.co/ai/mcp). This is enabled by adding `X-MCP-Query-All-Views: true` to the Omni MCP server's configuration.
  * Added the ability to [provide feedback on Slack Agent responses](https://docs.omni.co/integrations/omni-slack-agent#providing-response-feedback) directly from Slack, allowing you to rate whether the agent's answer was helpful.
  * Added a new Modeling Agent skill that allows you to generate semantic models based on your [Snowflake or Postgres query history](https://docs.omni.co/ai/model-assistant#suggest-model-from-query-history).

  **API**

  Added support for enabling and disabling individual Personal Access Tokens (PATs) and MCP PATs in [Omni](https://docs.omni.co/api/authentication#enabling-and-disabling-pats) and through the [API](https://docs.omni.co/api/api-tokens/enable-or-disable-api-token). Organization Admin permissions are required.

  **Content**

  Added [branch content links](https://docs.omni.co/content/develop/branch-mode#publishing-and-merging-branches) to GitHub and GitLab pull request descriptions for branches that contain draft content, making it easier to preview changes before merging.

  **Dashboards**

  <Note>
    The following updates are applicable only to advanced layout dashboards.
  </Note>

  * Added support for [multiple selections](https://docs.omni.co/visualize-present/dashboards/advanced-filters#working-with-string-filters) to string filter button groups for advanced dashboard layouts.
  * Added a new dashboard setting that allows you to [fix the filter and control bar](https://docs.omni.co/visualize-present/dashboards/settings#fixed-control-bar) to the top of advanced layout dashboards.
  * Added an **Edit** context menu item to dashboard elements when the properties panel is closed, allowing you to quickly access editing options without opening the panel.
  * Added the ability to select which pages to include when [downloading](https://docs.omni.co/visualize-present/dashboards/download) or [scheduling](https://docs.omni.co/share/deliveries) dashboards. Applicable only to advanced layout dashboards.
  * Added the ability to insert query metadata (name, subtitle, description) into query items on advanced layout dashboards.
  * Added documentation for using [dynamic page name references](https://docs.omni.co/visualize-present/dashboards/page-navigation#dynamic-labels) (`{{page.<KEY>.name}}`) in advanced layout page navigation.

    Also split the documentation for advanced layouts into smaller, more focused pages covering [containers and items](https://docs.omni.co/visualize-present/dashboards/containers-items), [pages](https://docs.omni.co/visualize-present/dashboards/pages), [page navigation](https://docs.omni.co/visualize-present/dashboards/page-navigation), and [filter display options](https://docs.omni.co/visualize-present/dashboards/advanced-filters).

  **Deliveries & Alerts**

  Added an [**Alert condition types** section](https://docs.omni.co/share/deliveries#alert-condition-types) to the deliveries and alerts documentation.

  **Integrations**

  * Added an **Enable deferral** option to the dbt environment settings. When enabled, unbuilt models in the dbt dev environment will fall back to the production build.
  * Added visual highlighting to distinguish between development and production virtualized views when using dbt deferral environments. These views will have an orange icon in the IDE.
  * Added a step-by-step guide for [previewing dbt changes in Omni](https://docs.omni.co/guides/modeling/preview-dbt-changes).

  **Modeling**

  * Fixed an issue where topics with an ignored [`base_view`](https://docs.omni.co/modeling/topics/parameters/base-view) were being included in model validation and shown in the topic picker. Now, topics with an ignored `base_view` will be correctly excluded from validation and the topic picker.
  * Added examples to the [`always_where_sql`](https://docs.omni.co/modeling/topics/parameters/always-where-sql) topic modeling parameter.

  **Workbook**

  Added documentation for the beta [input columns](https://docs.omni.co/analyze-explore/input-columns) feature.
</Update>

<Update label="April 26, 2026" rss={{title: "April 26, 2026", description: "Tools for managing AI context usage, APIs for managing API tokens, new localization options, and more"}}>
  **Administration**

  * Added a confirmation dialog when you disable the **Custom email sender** setting in **Settings > Deliveries > Email**. Previously, toggling off immediately disabled the custom sender configuration, which could happen accidentally.
  * Fixed an issue where the `source` field in `QUERY_CONTEXT` audit log events was being corrupted by FireLens metadata injection. The `source` field is retained for backwards compatibility, but you should migrate your audit log filters to use the new [`query_source` field](https://docs.omni.co/administration/audit-logs/event-types).
  * Added Portuguese (Portugal) as a [supported localization option](https://docs.omni.co/administration/localization).
  * Added Norwegian Bokmål and Swedish as [supported localization options](https://docs.omni.co/administration/localization).

  **AI**

  * Updated the [**Start a new chat** indicator](https://docs.omni.co/ai/chat#managing-long-conversations) to trigger at 75% of the session's [token limit](https://docs.omni.co/modeling/models/parameters/ai-settings/conversation-prune-length) instead of 50%.
  * Added an indicator to the [**New chat** button](https://docs.omni.co/ai/chat#managing-long-conversations) that appears when your conversation is consuming a significant portion of the model's context window.
  * Updated the [Workbook inspector guide](https://docs.omni.co/analyze-explore/workbook-inspector#ai-messages) to include information about the **AI messages** section, which displays information about active AI workbook sessions.

  **API**

  * Added a new [`POST /api/v1/models/{modelId}/git/commit` API endpoint](https://docs.omni.co/api/model-git-configuration/create-or-update-a-pull-request-for-a-model-branch) that allows you to push a branch's model contents to git and create or update a pull request programmatically.
  * Added a new [`PUT /api/v1/api-keys/{id}` endpoint](https://docs.omni.co/api/api-tokens/enable-or-disable-organization-api-token) to enable or disable organization-level API tokens.
  * Added a [`DELETE /api/v1/api-keys/{id}` endpoint](https://docs.omni.co/api/api-tokens/delete-api-token) that allows you to revoke API tokens.
  * Added a new [`GET /api/v1/api-keys/{id}` endpoint](https://docs.omni.co/api/api-tokens/list-api-tokens) that allows you to retrieve details about a single API token.
  * Fixed the OpenAPI schema for the [`POST /api/v1/connections` endpoint](https://docs.omni.co/api/connections/create-connection) to include 13 missing fields that were accepted by the API but not documented, including `inferRelationshipsFromForeignKeys`, `authenticationType`, `awsRoleArn`, and others.
  * Fixed the [`GET /api/v1/models/{modelId}/dbt-exposures` endpoint](https://docs.omni.co/api/dbt/get-dbt-exposures) to accept the `cursor` query parameter for pagination.
  * Added a `fullyResolved` parameter to the [Get model YAML](https://docs.omni.co/api/models/get-model-yaml) and [Update model YAML](https://docs.omni.co/api/models/create-or-update-yaml-files) endpoints.

  **Content**

  Added support for restoring archived documents when following a [direct link](https://docs.omni.co/content/archive-restore#restore-from-direct-link).

  **Dashboards**

  * Added drag-to-resize functionality for items within column stack layouts on [advanced layout dashboards.](https://docs.omni.co/visualize-present/dashboards/advanced-layout)
  * Added support for using `{{page.KEY.name}}` tokens in inline page switcher option labels in advanced layouts for dashboards. These tokens expand to the page's current name at render time and automatically update when the page is renamed, allowing you to combine custom text with dynamic page references.
  * Added a [guide on dashboard best practices](https://docs.omni.co/guides/dashboards/dashboarding-best-practices) to help you design and organize dashboards effectively.

  **Embedding**

  * Fixed an issue where Markdown links in dashboards weren't respecting the [`NO-EMBED-LINK-REWRITE` parameter](https://docs.omni.co/embed/customization/link-content#opt-out-of-link-rewriting). Links tagged with this parameter will now pass through verbatim instead of being rewritten through `/embed/link`.
  * Fixed an issue where [voice mode wasn't available for the Omni Agent](https://docs.omni.co/embed/limitations#omni-agent-voice-mode) in embedded Omni instances. You can now include `allow=microphone` in iframe permissions to enable voice mode in embed scenarios.

  **Integrations**

  * Added an [**Always Scope View Names** setting](https://docs.omni.co/connect-data/view-name-generation) to connections that forces generated view names to include schema and catalog prefixes even for tables in the default schema or catalog.
  * Added documentation about how Omni uses [dbt deferrals and constraints](https://docs.omni.co/integrations/dbt/deferrals-constraints) for model metadata and testing.
  * Added documentation for [dbt Virtual Schemas](https://docs.omni.co/integrations/dbt/virtual-schemas), which allow you to decouple your modeling logic from physical database locations and use the `omni_dbt` prefix for dynamic environment switching.
  * Added information about required database user permissions to the [Databricks connection setup guide](https://docs.omni.co/connect-data/setup/databricks).
  * Added a dedicated [schema refresh guide](https://docs.omni.co/integrations/dbt/schema-refresh) for the dbt integration.
  * Added documentation about the [dbt health check](https://docs.omni.co/integrations/dbt/health-check), which is useful for debugging dbt model issues in Omni.
  * Added a dedicated guide about [pulling dbt metadata](https://docs.omni.co/integrations/dbt/metadata) into Omni.

  **Modeling**

  * You can now selectively ignore specific global filters in a `level_of_detail` by using the `cancel_query_filter: true` flag within the `filters` map. This works on both [dimension](https://docs.omni.co/modeling/dimensions/parameters/level-of-detail) and measure `level_of_detail` definitions.
  * Added explicit by-name mapping for [`materialized_query`](https://docs.omni.co/modeling/views/parameters/materialized-query) fields.
  * Users with Modeler permissions can now refresh schemas on single-model connections.
  * Omni-generated [query view names](https://docs.omni.co/analyze-explore/saved-views) now have "smarter" default names, along with adding a `_1`, `_2`, etc. suffix when a collision is detected. This fixes an issue where importing tabs across workbooks could silently cause data corruption when query view names collided.
  * Added instructions for [deleting topics](https://docs.omni.co/modeling/topics/index#deleting-topics) in Omni's model IDE.
  * Added a guide that explains how to [preview dbt changes in Omni](https://docs.omni.co/guides/modeling/preview-dbt-changes) before merging to production.

  **Workbook**

  * Added a [format quick-pick menu](https://docs.omni.co/analyze-explore/point-click-queries#formatting-number-and-date-columns) to the results table format bar that replaces the previous **Number** button.
  * Added a [keyboard shortcut](https://docs.omni.co/getting-started/keyboard-shortcuts) (`⇧ + ⌥ + ⌘ + F` on Mac, `⇧ + ⌥ + ⌃ + F` on Windows/Linux) to collapse or expand all items in the workbook's field browser.
  * Added a context menu to the topic header in the workbook field browser. You can now right-click the topic switch button or the vertical-dots icon to access options for editing the topic or jumping to the topic definition in the IDE.
</Update>

<Update label="April 19, 2026" rss={{title: "April 19, 2026", description: "AI integration release, new UI localization options, AI context management, and more!"}}>
  **Administration**

  * Added a new [**Duplicate** content permission](https://docs.omni.co/administration/content-permissions#default-document-abilities) that controls duplication document and workbook tab duplication across your organization. Reach out to Omni support to have this feature enabled.
  * Added Vietnamese (vi-VN) as a [supported locale](https://docs.omni.co/administration/localization) in Omni.
  * Added Italian (it-IT) as a [supported locale](https://docs.omni.co/administration/localization) in Omni.
  * Updated the [Best practices](https://docs.omni.co/getting-started/best-practices) guide to reflect current guidance on modeling in Omni, managing content, and more.

  **AI**

  * Updated the default AI model tier for the model building agent from Sonnet to Opus, so the modeling subagent and related tools use a more capable model by default. Organization-level overrides in **AI settings** take precedence over this default.
  * [External AI context integrations](https://docs.omni.co/integrations/ai/index) are now available.
  * Added a [`conversation_prune_length` parameter](https://docs.omni.co/modeling/models/parameters/ai-settings/conversation-prune-length) to model-level `ai_settings` that lets you tune how aggressively Claude prunes conversation context. See the [Tuning Omni AI for cost and quality guide](https://docs.omni.co/guides/ai/tuning-cost-quality) for additional information about this new parameter.
  * AI chat on the homepage is now available to all organizations.
  * Added a guide for [tuning AI cost and quality settings](https://docs.omni.co/guides/ai/tuning-cost-quality), which provides three starting profiles—cost-optimized, balanced, and max-quality—along with guidance on customizing them for your use case.

  **API**

  * Added a new [`PATCH /api/v1/models/{modelId}` endpoint](https://docs.omni.co/api/models/rename-model) that allows you to programmatically rename models.
  * Added `includeSchemas` parameter to the [`GET /api/v1/models/:modelId/yaml` endpoint](https://docs.omni.co/api/models/get-model-yaml) to retrieve only a specified schema's views, reducing payload size.
  * Added a new [`GET /api/v1/models/:modelId/schemas`](https://docs.omni.co/api/models/list-model-schemas) endpoint that returns a list of all available schema names in your model.
  * Added a new [`GET /api/v1/api-keys` endpoint](https://docs.omni.co/api/api-tokens/list-api-tokens) that lists API tokens in your organization, filterable by type.
  * Added support for specifying a custom document identifier to the [`POST /api/v1/documents`](https://docs.omni.co/api/documents/create-document) and [`PATCH /api/v1/documents/:identifier`](https://docs.omni.co/api/documents/update-document) endpoints.
  * Restricted Queriers can now create [Personal Access Tokens](https://docs.omni.co/api/authentication#token-types).

  **Dashboards**

  * Added support for reordering, relabeling, and customizing page tabs in advanced dashboard layouts.
  * Updated the [advanced layout documentation](https://docs.omni.co/visualize-present/dashboards/advanced-layout) to reflect the new behavior for adding queries to dashboards. Now, when a new query is added to a dashboard, it will automatically be placed on the first page in a named stack container.

  **Embedding**

  Updated the embed [`entity` parameter](https://docs.omni.co/embed/setup/url-parameters/entity) documentation to reflect that entities are limited to 64 characters.

  **Integrations**

  * Added a per-connection **Auto-generate relationships** setting that lets you control whether Omni infers relationships from foreign keys, column names, both, or neither during schema refresh.
  * Added [slash command](https://docs.omni.co/integrations/omni-slack-agent#using-slash-commands) support to the Omni Slack Agent. This update also removes the **Home** tab. The settings previously in this tab can now be set using slash commands.
  * Added support for specifying multiple catalogs (databases) in Redshift connections.
  * Added documentation for the [Google Calendar](https://docs.omni.co/integrations/ai/google-calendar) and [Google Drive](https://docs.omni.co/integrations/ai/google-drive) AI integrations. See the [Google setup guide](https://docs.omni.co/integrations/ai/google-setup) for help setting up these integrations.
  * Added documentation for [External AI integrations](https://docs.omni.co/integrations/ai/index), including setup guides for [Slack](https://docs.omni.co/integrations/ai/slack) and [GitHub](https://docs.omni.co/integrations/ai/github) integrations.
  * Updated the [Omni Slack Agent documentation](https://docs.omni.co/integrations/omni-slack-agent#scoping-responses) to clarify that the agent enforces the same permissions and access controls as the rest of Omni, including access grants, user attributes, and connection-level permissions.
  * Added a [guide about dbt and Git workflows](https://docs.omni.co/integrations/dbt/git-workflows) in Omni, including guidance on managing changes with Omni's SDLC controls.

  **Modeling**

  * Added support for view-scoped tag filtering in topic fields using the [`view_name:tag:tag_name` directive syntax](https://docs.omni.co/modeling/topics/parameters/fields).
  * Updated the [`ai_chat_topics`](https://docs.omni.co/modeling/models/ai-chat-topics) documentation to specify that the parameter only affects topic visibility in AI search results. Topics not included can still be accessed through direct queries, since the AI runs with the same permissions as the user.
  * Added documentation for the [`parent_field` dimension](https://docs.omni.co/modeling/dimensions/parameters/parent-field) property, which allows you to specify the parent field for nested dimensions and control how labels are displayed in hierarchies.
  * Updated the [Data input documentation](https://docs.omni.co/analyze-explore/data-input-csvs) to clarify that topics created from uploads automatically receive empty `required_access_grants` at creation time, making them exempt from model-level `default_topic_required_access_grants`.
  * Added a [guide explaining how to use templated filters for advanced date flexibility patterns](https://docs.omni.co/guides/modeling/date-flexibility-templated-filters), giving your end users more control over date filtering options.

  **Workbook**

  Added a [**Remove unused** button](https://docs.omni.co/modeling/develop/promotion#removing-unused-objects-from-the-workbook) in the workbook model changes panel that identifies and removes extension objects (fields, views, topics, relationships) that aren't referenced by any query in the workbook.
</Update>

<Update label="April 12, 2026" rss={{title: "April 12, 2026", description: "New git integration authentication option, AI topic creation documentation, and lots of quality of life improvements"}}>
  **Rotate git webhook secrets**

  Added a [**Rotate secret** button to the model git settings](https://docs.omni.co/integrations/git/settings#webhook-secret) that allows you to generate a new webhook secret without unlinking and re-linking your git repository.

  **HTTPS-token based authentication for git integrations**

  Added HTTPS token-based authentication for [git connections](https://docs.omni.co/integrations/git/setup/index), allowing you to use GitHub fine-grained personal access tokens and GitLab project access tokens.

  **Get started with AI-guided topic creation!**

  Added documentation for the [AI-guided quickstart workflow](https://docs.omni.co/modeling/topics/quickstart), which can help you create your first topic from business questions.

  **Administration**

  * Added [Portuguese (Brazil) locale support](https://docs.omni.co/administration/localization).
  * Renamed **Token Tracking** to **Credit Tracking** throughout the application and documentation to better reflect the billing model.

  **AI**

  * Added a [**Home** tab to the Omni Slack Agent](https://docs.omni.co/integrations/omni-slack-agent#managing-your-settings) that provides a persistent surface for account management and settings directly in Slack.
  * Improved agentic follow-up performance by carrying the topic from conversation history, so the AI no longer needs to rediscover it on each turn. Also added validation to the [Create AI job endpoint](https://docs.omni.co/api/ai/create-ai-job) to return a `404` error if you provide an invalid or restricted `topicName`, instead of silently failing at runtime.
  * Added setup instructions for [Claude Code Cloud](https://docs.omni.co/ai/mcp/claude-code) to the MCP documentation.
  * Added clarification about user chat access to the [Omni Agent guide](https://docs.omni.co/ai/chat#sharing-chat-sessions).

  **API**

  * Added optional `find` and `find_type` query parameters to the content validator API endpoint. See the [API documentation](https://docs.omni.co/api/content-validator/validate-content) for details on the new parameters and their usage.
  * Added documentation for the [**Create draft** endpoint](https://docs.omni.co/api/documents/create-draft), which allows you to create a draft for a document.
  * Added clarification to the [**Find and replace content** endpoint reference](https://docs.omni.co/api/content-validator/find-and-replace-content#body-only-in-workbook-id) that the endpoint's `only_in_workbook_id` parameter expects a workbook UUID, not a URL slug.

  **Content**

  Added an **Allow users to copy values to the clipboard** toggle in the [embed share modal](https://docs.omni.co/share#customize-embed-content). When enabled, this includes the `clipboard-write` permission in the generated iframe snippet, allowing users to copy values directly within embedded dashboards without requiring manual iframe HTML edits.

  **Dashboards**

  * New queries are now automatically added to the first page of a dashboard when using advanced layouts.
  * Chart settings can now be [edited inline in the properties panel](https://docs.omni.co/visualize-present/dashboards/advanced-layout#editing-charts) when working with advanced layout dashboards.
  * Added a [**Wrap** toggle](https://docs.omni.co/visualize-present/dashboards/advanced-layout#layout-types) to the stack container properties panel in advanced layouts, allowing you to control whether flex items wrap to new lines when they exceed the container width.

  **Embedding**

  Added information about keyboard shortcuts being unsupported for embedded Omni instances to the [Embed limitations](https://docs.omni.co/embed/limitations#keyboard-shortcuts).

  **Modeling**

  * Fixed an issue where embed users couldn't query uploaded CSVs when the model had `default_topic_required_access_grants` set. CSV upload topics now explicitly set empty required access grants at creation time, overriding the model default.
  * Added documentation for the [`default_timeframes`](https://docs.omni.co/modeling/models/default-timeframes) model parameter, which allows you to specify default timeframes for dimensions in your semantic model.
  * Added documentation for the [**Allow exploration** setting](https://docs.omni.co/modeling/develop/shared-extensions/settings) in shared extension models, which controls whether users can create analyses using that extension.
  * Corrected the values of the [`duration` parameter](https://docs.omni.co/modeling/dimensions/parameters/duration) to be singular.
  * Added documentation for the field-level [`extends` parameter](https://docs.omni.co/modeling/dimensions/parameters/extends), which allows you to inherit properties from dimensions in other views.
  * Updated the documentation for the [`sample_queries`](https://docs.omni.co/model/sample-queries) parameter to include the `desc` field in `sort` entries.
  * Clarified the behavior of `many-to-many` relationships in the [`reversible` parameter reference](https://docs.omni.co/modeling/relationships/parameters/reversible).
</Update>

<Update label="April 5, 2026" rss={{title: "April 5, 2026", description: "Slack Agent in beta, model default overrides, topic visualization, reusable custom formats for modeling"}}>
  **Omni Slack Agent now in beta**

  Get AI-powered answers from your semantic model without ever leaving Slack. See [the docs](https://docs.omni.co/integrations/omni-slack-agent) for more information, or reach out to Omni support if you're interested in participating in the beta.

  **Override model defaults in the Omni Agent**

  The new [model tier selector](https://docs.omni.co/ai/chat#selecting-an-ai-model-tier) lets you choose between **Smarter**, **Standard**, and **Faster** AI model options, overriding the default setting from your AI settings.

  **Visualize your topics**

  The new [**Diagram tab** in the workbook topic editor](https://docs.omni.co/modeling/topics/setup#visual-review-diagram) displays a visual representation of a topic's structure — including its views, joins, dimensions, and measures — allowing you to build and maintain topics with ease.

  **Define reusable custom formats**

  The new model-level [`custom_formats`](https://docs.omni.co/modeling/models/custom-formats) parameter allows you to define custom formats once and reference them in fields throughout the model. See the [Formatting values guide](https://docs.omni.co/modeling/models/format-values) for more information, including use cases and examples.

  **Administration**

  Added an organization-level toggle in **Settings > Organization > Preferences** that allows org admins to [opt out of easter eggs](https://docs.omni.co/administration/settings#preferences).

  **AI**

  * Renamed **AI Assistant** to **Omni Agent** throughout the application.

  **API**

  * Added a new API endpoint [`GET /api/v1/models/{modelId}/dbt-exposures`](https://docs.omni.co/api/dbt/get-dbt-exposures) that returns dbt exposures for a model by analyzing which dbt models are referenced by dashboards.
  * Added an optional `queryAllViews` parameter to the [`POST /api/v1/ai/generate-query` endpoint](https://docs.omni.co/api/ai/generate-a-query) that respects your model's [`query_all_views_and_fields` AI setting](https://docs.omni.co/modeling/models/parameters/ai-settings/query-all-views-and-fields).
  * Added an optional `branchId` field to the [`POST /api/v1/query/run` endpoint](https://docs.omni.co/api/queries/run-query) so you can target a specific model branch when running queries via the API.

  **Dashboards**

  * Moved the Advanced layout page **Key** field from the **Properties** panel into an **Advanced settings** dialog, accessible via the 3-dot menu.
  * Added a new [**Timeframe** filter control](https://docs.omni.co/visualize-present/dashboards/advanced-layout#timeframe-filter-control) for date fields on advanced layout dashboards.

  **Embed**

  Added a new [`appearance:mode` inbound embed event](https://docs.omni.co/embed/events/appearance-mode) that allows parent applications to switch the embedded Omni session's color scheme between dark, light, or system mode using `postMessage`.

  **Modeling**

  Added a `markdown` parameter to [dimensions](https://docs.omni.co/modeling/dimensions/parameters/markdown) and [measures](https://docs.omni.co/modeling/measures/parameters/markdown) that lets you define mustache templates to render field values as markdown in table columns.

  **Workbooks**

  Added [keyboard shortcut](https://docs.omni.co/getting-started/keyboard-shortcuts#workbook-shortcuts) support to toggle between chart and results views in the workbook query options panel. You can now use **Option+Click** on Mac or **Alt+Click** on Windows on the chart/results toggle button, or use **Shift+Alt+1** to toggle results and chart with options open.

  **Documentation**

  * Added documentation for the [Omni CLI](https://docs.omni.co/developers/cli) and [Agent Skills](https://docs.omni.co/developers/agent-skills) to the **Developers** section of the docs.
  * Added documentation about creating [statistical forecasts and projections](https://docs.omni.co/ai/forecasting) with AI.
  * Updated the [Omni Agent documentation](https://docs.omni.co/ai/chat#sharing-chat-sessions) to include information about sharing chat sessions.
  * Added a [troubleshooting section](https://docs.omni.co/ai/mcp/claude-code#troubleshooting) to the Claude Code MCP guide.
  * Added an [Authentication settings reference](https://docs.omni.co/administration/settings/authentication) to the Admin section of the docs.
  * Added documentation about managing [user-specific account settings](https://docs.omni.co/administration/users/your-account) to the Admin section of the docs.
  * Added a [new best practices guide](https://docs.omni.co/ai/eval-design-guide) about building effective eval sets to measure and improve Omni AI query generation accuracy.
  * Added **Common questions** sections to the dbt [category page](https://docs.omni.co/integrations/dbt/index#common-questions) and [setup guide](https://docs.omni.co/integrations/dbt/setup#common-questions).
</Update>

<Update label="March 29, 2026" rss={{title: "March 29, 2026", description: "Emoji support, dbt APIs, new embed events, and more"}}>
  **Administration**

  * [Custom emoji rendering](https://docs.omni.co/administration/settings/emoji) is now fully available across the app.
  * Added organization-level control over [emoji mode](https://docs.omni.co/administration/settings/emoji) for query tab names.
  * Added [custom branding asset support](https://docs.omni.co/administration/themes/application#branding-assets) to application themes.
  * Improved the [label editing experience](https://docs.omni.co/content/organize#label-options) by consolidating the **Verified** and **Home page** options into the **Edit label** dialog as checkboxes.
  * Added two new customizable colors to the [Application theme settings](https://docs.omni.co/administration/themes/application#styles) — **Action border** and **Action text** — that control the appearance of outline and transparent buttons.

  **AI**

  * Added support for navigating prompt history in the Blobby chat input using the **Up** and **Down** arrow keys.
  * Added an **Optimize topic for AI** skill to the Model IDE's AI assistant that automatically appears as a clickable option.
  * Added support for pie, donut, and heatmap visualizations to the AI Assistant.

  **API**

  * Added a new [`GET /api/v1/connections/{connectionId}/dbt/environments` endpoint](https://docs.omni.co/api/dbt/list-dbt-environments) that allows you to list all dbt environments for a connection.
  * Added a [`DELETE /api/v1/connections/{connectionId}/dbt/environments/{environmentId}` endpoint](https://docs.omni.co/api/dbt/delete-dbt-environment), allowing you to programmatically delete dbt environments.

  **Content**

  * When you hover over a label, you can now see who applied it and when. This [metadata](https://docs.omni.co/content/organize#viewing-label-information) appears in label tooltips across detail pages, content listings, search results, and the curation popover.
  * When you save an analysis without a name, Omni now automatically suggests a meaningful title and description.

  **Dashboards**

  * Added support for multi-page PDF pagination on advanced layout dashboards.
  * Updated advanced layouts so that [page navigation](https://docs.omni.co/visualize-present/dashboards/advanced-layout#page-navigation-for-viewers) is now automatically added to the first and second pages when a new page is added.

  **Embed**

  * Added two new embed events: [`sidebar:open`](https://docs.omni.co/embed/events/sidebar-open) fires when users click the mobile menu button, and [`navigation:home`](https://docs.omni.co/embed/events/navigation-home) fires when users click the logo or home header link in embedded Omni instances.
  * Added support for opting out of embed link rewriting by including [`NO-EMBED-LINK-REWRITE`](https://docs.omni.co/embed/customization/link-content#opt-out-of-link-rewriting) in dashboard URLs.

  **Integrations**

  * Added support for [Redshift Serverless as a PrivateLink option](https://docs.omni.co/connect-data/redshift-privatelink).

  **UI**

  * Moved the **My activity** navigation link into the **Personal** section, positioned after **My documents**. Previously, this link was located in the bottom navigation group alongside **All** and **Trash**.
  * Added [chat sessions](https://docs.omni.co/content/activity#chat-sessions) to the **My Activity** page. You can now see your chat session history interleaved with your exploration history, making it easy to navigate back to sessions as needed.
  * Added a new "Omni 1984" theme that recreates the classic 1-bit Macintosh aesthetic from the early 1980s.

  **Workbooks**

  * Renamed **Query Fields** to **Tab-only fields** in the model browser, and updated context menus for tab-only views and fields.
</Update>

<Update label="March 22, 2026" rss={{title: "March 22, 2026", description: "API, Dashboards, Modeling, and Workbooks updates"}}>
  **Administration**

  Added Workload Identity support for GCS audit log delivery, allowing you to send audit logs to your GCS bucket without sharing service account keys.

  **AI**

  Improved the `searchOmniDocs` tool in Model Context Protocol by switching to Omni's AI-powered documentation search. The tool now accepts a question instead of a URL, and uses the same intelligent page selection, token limiting, and answer synthesis as the in-app documentation search feature.

  **API**

  Added a new API endpoint to [update dbt environments](https://docs.omni.co/api/dbt/update-dbt-environment).

  **Content**

  * Added support for document descriptions across the API and UI. You can now add an optional description (up to 1024 characters) when creating documents, update descriptions via the **Rename** dialog or API endpoints.
  * Added color and description fields to labels. These changes are fully supported in the API for creating, updating, and retrieving labels.

  **Dashboards**

  Added a multi-select dropdown control for string filters in the advanced layout.

  **Embedding**

  Added a new [`ai:chat-start` embed event](https://docs.omni.co/embed/events/ai-chat-start) that fires when an AI chat session begins, either when the chat route loads or when the workbook AI drawer opens.

  **Integrations**

  Added per-user OAuth for Databricks query execution with optional personal access token (PAT) or OAuth admin support for schema refresh. You now only need to register a single OAuth application in Databricks instead of two — per-user authentication handles queries, while schema refresh uses either a PAT or an OAuth admin's token for credentials.

  **Modeling**

  * Added an optional **Group remaining values** toggle to dynamic Top N grouping in workbooks. When disabled, only the top N values are displayed instead of aggregating remaining values into an **Other** row. Use the [`dynamic_top_n.else`](https://docs.omni.co/modeling/dimensions/parameters/dynamic-top-n#param-else) parameter to achieve this result in model YAML.
  * Added pattern matching support to [`ai_chat_topics`](https://docs.omni.co/modeling/models/ai-chat-topics) so you can now use the same inclusion and exclusion syntax as the topic-level `fields` parameter.
  * Added a [`faceting` property to dimensions](https://docs.omni.co/modeling/dimensions/parameters/faceting) that lets you control how suggestion queries are filtered.

  **Workbooks**

  Fixed the **Import Tab** dialog to accept full widget URLs in addition to query IDs. Previously, you could only paste raw query IDs; now you can paste complete URLs and the dialog will extract the query ID automatically.
</Update>

<Update label="March 15, 2026" rss={{title: "March 15, 2026", description: "API, Dashboards, Modeling, and Workbooks updates"}}>
  **API**

  * Added an API for [creating dbt environments on connections](https://docs.omni.co/api/dbt/create-dbt-environment), allowing you to programmatically manage dbt environments.
  * Added an API that allows you to programmatically [set the active dbt environment on a branch](https://docs.omni.co/api/dbt/set-dbt-environment-on-model-branch), allowing you to automate dbt environment configuration in CI/CD pipelines before triggering schema refreshes.

  **Dashboards**

  * Added [undo and redo controls](https://docs.omni.co/visualize-present/dashboards/advanced-layout#undoing-and-redoing-layout-changes) for advanced layout dashboards.
  * Removed the redundant AI chat toggle from the **Edit dashboard** toolbar. You can now manage AI chat settings exclusively through the **Document Settings** dialog in published dashboards.

  **Modeling**

  * Added support for dynamic user attribute references in three model properties:

    * [`fiscal_month_offset`](https://docs.omni.co/modeling/models/fiscal-month-offset)
    * [`week_start_day`](https://docs.omni.co/modeling/models/week-start-day)
    * [`default_numeric_locale`](https://docs.omni.co/modeling/models/default-numeric-locale)

    Using Mustache references (`{{'{{omni_attributes.attribute_reference}}'}}`), you can reference user attributes and the values will be resolved at query time using the user's metadata.
  * Added a [`tags`](https://docs.omni.co/modeling/topics/parameters/tags) topic parameter, allowing you to categorize and organize topics similar to how you can tag fields and views.
  * Added a **Go to connection** option to the **Model** menu in the model IDE.

  **Workbooks**

  * Added support for applying data formatting to Excel downloads.
</Update>

<Update label="March 8, 2026" rss={{title: "March 8, 2026", description: "AI, Administration, API, Dashboards, and Embedding updates"}}>
  **AI**

  * Added support for [custom model identifiers](https://docs.omni.co/ai/settings/model-providers/openai) in OpenAI-compatible endpoints, allowing you to bring your own models (BYOM) for providers like Ollama and Azure OpenAI.
  * You can now ask the [AI chat assistant to generate map visualizations](https://docs.omni.co/ai/visualizations#supported-visualization-types) for geographic questions. When you ask questions like *"show me orders by state on a map,"* the AI will create region maps (choropleths) or point maps as appropriate for your data.
  * Renamed [AI workflows](https://docs.omni.co/ai/skills) to "skills" throughout Omni. Existing model files using `workflows:` will continue to work without changes.

  **Administration**

  * Added a confirmation dialog when disabling [personal access tokens](https://docs.omni.co/api/authentication#token-types).

  **API**

  * Added `onlySharedWithMe` as a new filter option to the [List folders API](https://docs.omni.co/api/folders/list-folders) to retrieve only folders that have been explicitly shared with you via folder permits, excluding folders you own.
  * Added `onlySharedWithMe` as a new filter option to the [List documents API](https://docs.omni.co/api/documents/list-documents) to retrieve only documents that have been explicitly shared with you via documents permits, excluding documents you own.

  **Dashboards**

  * [Cross-filtering](https://docs.omni.co/visualize-present/dashboards/filters#cross-filtering) is now generally available. You can use cross-filtering to filter data across multiple dashboard tiles by clicking on values in your visualizations.
  * Added a [button toggle control type](https://docs.omni.co/visualize-present/dashboards/advanced-layout#displaying-single-select-options-as-buttons) for single selection string filters, allowing you to display filter options as clickable buttons instead of a dropdown. **Available for **[**Advanced Dashboard layouts**](https://docs.omni.co/visualize-present/dashboards/advanced-layout)** only.**

  **Embedding**

  * Added support for generic embed integrations like FullStory and LogRocket. You can now configure integration credentials in **Settings > Embed > Integrations**.
  * Added support for creating multiple [embed secrets](https://docs.omni.co/embed/admin/secrets) in an Omni instance.
</Update>

<Update label="March 1, 2026" rss={{title: "March 1, 2026", description: "AI, Administration, and Integrations updates"}}>
  **AI**

  * Added a new `opus` model tier so you can set `model: opus` in your model's [`ai_settings`](https://docs.omni.co/modeling/models/parameters/ai-settings) to use Claude Opus 4.6.
  * Updated the [`ai_settings.query_all_views_and_fields`](https://docs.omni.co/modeling/models/parameters/ai-settings/query-all-views-and-fields) parameter to accept `enabled | disabled | default` values instead of `true | false`. This allows you to control whether the AI queries all views and fields when generating SQL.
  * Updated the [`ai_settings` parameter](https://docs.omni.co/modeling/models/parameters/ai-settings) to accept a per-category YAML configuration system. You can now define AI model and thinking preferences for different task categories directly in your semantic model YAML.

  **Administration**

  * Added a **Last login** column to [Settings > Users](https://docs.omni.co/administration/users), so you can see when each user last logged in.
  * Added a new **combined view** to the [**My activity**](https://docs.omni.co/content/activity) page that deduplicates activity by workbook or model and groups entries into time-period sections.

  **Integrations**

  * Added support for creating PrivateLink connections to [Redshift provisioned clusters](https://docs.omni.co/connect-data/redshift-privatelink).
  * Added support for [Snowflake External OAuth](https://docs.omni.co/connect-data/oauth/snowflake#external-oauth), allowing you to authenticate via external identity providers like Okta, Azure AD, or Ping Identity.
  * Added the ability to assign a dbt environment to a specific user when creating or editing environments in Omni.
</Update>

<Update label="February 22, 2026" rss={{title: "February 22, 2026", description: "AI, API, Dashboards, Integrations, Modeling, Visualizations, and Workbooks updates"}}>
  **AI**

  * Added support for uploading Markdown (`.md`) files to AI chat. Previously, Markdown files had to be renamed as `.txt` files to be valid uploads.

  **API**

  * Fixed the merge branch API endpoint to restrict the [`force_override_git_settings` parameter](https://docs.omni.co/api/model-branches/merge-a-branch#body-force-override-git-settings) to Connection Admin and above roles; other users will receive a `403 Forbidden` response. Previously, Modelers could use this parameter via API or PAT to bypass PR-required and git-follower protections, even though they cannot modify git settings in the UI.
  * Added a `force` query parameter to the [Delete folder](https://docs.omni.co/api/folders/delete-folder) endpoint that enables you to recursively delete folders containing documents and sub-folders.
  * Added a `POST /api/v1/uploads` endpoint that allows you to upload a CSV file to create a new data source.

  **Dashboards**

  * Markdown tiles and visualizations now include a `prefers-dark` class name when you're viewing in dark mode, allowing you to write custom CSS that targets light and dark mode separately.

  **Integrations**

  * Added support for Databricks Lakebase as a new database connection type.

  **Modeling**

  * Added search and filter functionality for branches. You can now search branches by name in the **Branches** table, and when you have 10 or more branches in the IDE, a **Search branches...** option appears in the branch selector dropdown to help you quickly find the branch you need.

  **Visualizations**

  * Added support for Markdown columns in table visualizations, which allow you to format and style cell content using Markdown syntax. **Note**: This feature is still in development and is not yet available in-app.
  * Added percentage tooltips to [Sankey charts](https://docs.omni.co/visualize-present/visualizations/types/sankey). You can now enable the **Show percentages** toggle in the Sankey editor's tooltip settings to display percentage breakdowns in your chart tooltips. Additionally, the node tooltip label has been renamed from **Total** to **Value** for clarity.

  **Workbooks**

  * Added a new **Multi-Field Filter** control type that allows you to create `OR` filters across multiple fields in workbooks. You can now build queries like `Country is USA OR Gender is Female` by clicking the **+ Field** button in filter popovers. **Note**: This feature is still in development.
</Update>

<Update label="February 15, 2026" rss={{title: "February 15, 2026", description: "AI, API, Dashboards, Integrations, Modeling, Visualizations, and Workbooks updates"}}>
  **AI**

  * Added an organization-wide [**MCP server** setting](https://docs.omni.co/ai/settings/features) to **AI Hub > General > Features** that controls whether users can authorize external AI tools to connect via OAuth. When disabled, new OAuth approval requests are rejected and existing MCP grants are blocked from making tool calls. This setting defaults to enabled.
  * Added the ability for Blobby to search the official Omni docs. This new tool is available in the Query Helper, [AI Assistant](https://docs.omni.co/ai/chat), and Dashboard Assistant.

  **API**

  * Added a new [`GET /api/v1/uploads` endpoint](https://docs.omni.co/api/uploads/list-uploads) that allows you to list uploaded CSVs (data input tables).
  * Added `url` fields to document, query, and folder API responses, giving you direct links to any piece of content in the Omni UI.

  **Dashboards**

  * Added the ability to select built-in color palettes (such as "Omni Blues", "Omni Threes", and "Omni") as default palettes in the [dashboard theme editor](https://docs.omni.co/visualize-present/dashboards/theming), in addition to custom palettes.

  **Integrations**

  * Added [Databricks PrivateLink](https://docs.omni.co/connect-data/databricks-privatelink) support for both Azure and AWS infrastructure. You can now create private connections to Databricks workspaces using native Private Endpoints on Azure and VPC Interface Endpoints on AWS.

  **Modeling**

  * Added Australian Dollar (AUD) currency formatting options to the dimension and measure [`format`](https://docs.omni.co/modeling/dimensions/parameters/format) parameter.

  **Visualizations**

  * Added a [**Funnel** visualization type](https://docs.omni.co/visualize-present/visualizations/types/funnel), which you can now use to visualize data flowing through sequential steps.

  **Workbooks**

  * Added YAML views and copy buttons to the [workbook inspector](https://docs.omni.co/analyze-explore/workbook-inspector), making it easy to view and copy query and visualization configuration in the sample query YAML format.
</Update>

<Update label="February 8, 2026" rss={{title: "February 8, 2026", description: "AI, Administration, Dashboards, and Integrations updates"}}>
  **AI**

  * Added Claude Opus 4.5 and 4.6 to the [list of available models](https://docs.omni.co/ai/settings/model-providers) when configuring a bring-your-own LLM with Anthropic as your provider.
  * Added the ability to paste images directly into the AI chat input from clipboard across all surfaces (chat page, dashboard, and workbook). Note that this feature currently works in Chrome and Safari, but not in Firefox.

  **Administration**

  * Fixed an issue on the **Users** page where a crash would occur for organizations with large numbers of users.

  **Dashboards**

  * Added a **Cross-filtering** setting in dashboard settings that allows you to enable or disable [cross-filtering](https://docs.omni.co/visualize-present/dashboards/filters#cross-filtering) on a per-dashboard basis.
  * Added new [dashboard metadata variables](https://docs.omni.co/visualize-present/mustache-reference#dashboard-metadata) to Markdown tiles:

    * `{{'{{metadata.createdAt}}'}}`
    * `{{'{{metadata.createdBy}}'}}`
    * `{{'{{metadata.lastUpdatedAt}}'}}`

    You can now reference these variables in your text tile templates to display when the dashboard was created, who created it, and when it was last updated.

  **Integrations**

  * Added support for enabling and disabling the [dbt Semantic Layer integration](https://docs.omni.co/integrations/dbt/semantic-layer) with the **Enable semantic layer** setting in the dbt settings.
  * Added a [quick connect feature](https://docs.omni.co/connect-data/setup/quick-connect) that lets you paste a connection string URI (for example, `postgresql://user:pass@host:5432/db`) to automatically create a database connection.
</Update>

<Update label="January 25, 2026" rss={{title: "January 25, 2026", description: "AI, API, Modeling, Visualizations, and Workbooks updates"}}>
  **AI**

  * Added Snowflake Cortex as an [AI model provider](https://docs.omni.co/ai/settings/model-providers/snowflake-cortex). You can now use Claude models hosted on Snowflake Cortex for AI features in Omni.
  * Added [OAuth 2.1 support for MCP clients](https://docs.omni.co/ai/mcp/authentication) like Claude and ChatGPT. Users can now authenticate AI assistants with Omni through a standard OAuth flow instead of manually copying API keys.
  * Added [Sankey chart generation to AI visualization capabilities](https://docs.omni.co/ai/visualizations).
  * Auto Learn is now in beta. When enabled, administrators can review and approve AI-generated modeling suggestions directly from chat conversations with the [AI Assistant](https://docs.omni.co/ai/chat) and [Dashboard Assistant](https://docs.omni.co/ai/dashboard-assistant).

  **API**

  * Added credential update support to the [`PATCH /api/v1/connections/{id}` endpoint](https://docs.omni.co/api/connections/update-connection). You can now programmatically rotate passwords, BigQuery service account keys, and Snowflake RSA private keys.
  * Promoted YAML model API routes from `/api/unstable/` to `/api/v1/`. The following endpoints are now stable:
    * `GET /api/v1/models/{modelId}/yaml`
    * `POST /api/v1/models/{modelId}/yaml`
    * `DELETE /api/v1/models/{modelId}/yaml`
  * Added new parameters to the Schedules API. Organization API keys can now create schedules on behalf of another user using the `userId` query parameter on `POST /api/v1/schedules`. The `GET /api/v1/schedules` endpoint now returns an `ownerId` field (membership ID) for each schedule.
  * Updated the List Folders API to return only folders that users have permission to access when using Personal Access Tokens (PAT). PAT users now see the same folder visibility through the API as they do in the UI. Organization-scoped API keys retain full access to all folders.
  * Added a `408 Timeout` response to the [Run Query API](https://docs.omni.co/api/queries/run-query).

  **Modeling**

  * Added [isolated branches support for model extensions](https://docs.omni.co/modeling/develop/shared-extensions/extension-branches). Extension models can now have their own independent branches that are separate from the parent shared model.

  **Visualizations**

  * Improved Sankey chart error handling. The technical error message for [cyclic data](https://docs.omni.co/visualize-present/visualizations/types/sankey#troubleshooting) is now translated to a user-friendly message: `"Sankey does not support cycles or paths that loop back to previous nodes."`

  **Workbooks**

  * Renamed some workbook menu items to improve clarity and avoid confusion with the model promotion workflow:
    * [**Promote to workbook**](https://docs.omni.co/analyze-explore/calculations#promote-table-calculations) for table calculations is now **Add to workbook**
    * **Promote as workbook defaults** for colors is now **Save to workbook**
</Update>

<Update label="January 18, 2026" rss={{title: "January 18, 2026", description: "API, Dashboards, Embedding, Integrations, and Visualizations updates"}}>
  **API**

  * The [Query APIs](https://docs.omni.co/api/queries/run-query) are now enabled by default. This includes endpoints for running semantic queries (`POST /api/unstable/query/run`) and waiting for query results (`GET /api/unstable/query/wait`).
  * Added an `identifier` query parameter to the [GET /api/v1/schedules](https://docs.omni.co/api/schedules/list-schedules) endpoint for filtering schedules by dashboard identifier.
  * Added missing POST endpoints for connections, models, and schedules to the public OpenAPI spec. Also added SCIM embed user endpoints for programmatic management of embed users. Access the spec at `https://<your-omni-instance>/api-explorer`

  **Dashboards**

  * Added an **Inspect** option to the dashboard chart menu that opens the workbook with the inspector panel pre-opened, providing quick access to SQL debugging info including query SQL, cache status, and execution details.

  **Embedding**

  * Added support for [Safari 26.2's CHIPS (Cookies Having Independent Partitioned State) partitioned cookies](https://docs.omni.co/embed/limitations#safari) in embedded dashboards. Safari 26.2+ users now skip the Storage Access API handshake flow, providing a smoother embed experience. Vanity domain embeds continue to use the existing Storage Access API flow.
  * Added `dashboardId` to the [`status` embed event](https://docs.omni.co/embed/events/status) payload, allowing embedded dashboard consumers to identify which dashboard emitted the event.

  **Integrations**

  * Added the ability to choose a [starting point for new Omni branches](https://docs.omni.co/content/develop/branch-mode#creating-branches): from the shared model, another branch, or a specific model version.
  * Multiple models can now share a single [git repository](https://docs.omni.co/integrations/git) with one webhook handling all associated models. When a pull request event occurs, all linked models are processed sequentially.

  **Visualizations**

  * Released the [Sankey diagram visualization](https://docs.omni.co/visualize-present/visualizations/types/sankey) for showing flow and distribution between categories.
</Update>

<Update label="January 4, 2026" rss={{title: "January 4, 2026", description: "AI, Administration, API, Integrations, Modeling, Visualizations, and Workbooks updates"}}>
  **AI**

  * Added an AI-powered cron expression generator to help create custom schedules for dashboard refreshes and schema refreshes.

  **Administration**

  * Users with **Editor** permissions can now delete empty folders they created. Previously, only users with Manager permissions could delete folders.

  **API**

  * Added a `lastLogin` timestamp to the SCIM user API endpoints (`GET /api/scim/v2/Users` and `GET /api/scim/v2/Users/:id`). This enables programmatic identification of inactive users for cleanup.
  * Added API endpoints for managing dashboard filters and controls:
    * [`GET /api/v1/dashboards/:identifier/filters`](https://docs.omni.co/api/dashboard-filters/get-dashboard-filters-and-controls) - Retrieve filter and control configuration
    * [`PATCH /api/v1/dashboards/:identifier/filters`](https://docs.omni.co/api/dashboard-filters/update-dashboard-filterscontrols) - Update filter values, control settings, and display order
  * Added a `GET /api/v1/documents/:identifier` endpoint that returns document configuration in a format compatible with `PUT` for round-trip editing.
  * Added `PUT /api/v1/documents/:identifier` endpoint to programmatically update dashboard documents.
  * Extended `PUT /api/v1/documents/:identifier` endpoint with `filterConfig` and `filterOrder` support for setting dashboard filter configuration via API.
  * Extended the `PUT /api/v1/documents/:identifier` endpoint with query presentations support.
  * Extended the [Run query API](https://docs.omni.co/api/queries/run-query) to allow unlimited pivoted query results when the result format is set to CSV or XLSX.
  * Added `POST /api/v1/documents/:identifier/duplicate` endpoint to programmatically duplicate published documents.
  * Added a `PATCH /api/v1/documents/{identifier}/labels` endpoint for bulk adding and removing labels from a document in a single atomic operation.
  * Added support for the `**` (recursive wildcard) pattern in the List folders API endpoint. Use `GET /api/unstable/folders?path=folder/**` to retrieve all nested child folders under a given path.

  **Integrations**

  * Added a **Problems** page for dbt integrations that displays validation issues and errors in your dbt models.

  **Modeling**

  * Added a new "merged" model editing mode for branch models. This allows users to edit branch models merged with the shared model, enabling the ability to unignore items from the shared model while working in a branch.

  **Visualizations**

  * Added a **Sum** sorting option for stacked charts that sorts segments by their total value across all stacks.

  **Workbooks**

  * Added **Count True** and **Count False** quick aggregation options for boolean fields. These options count rows where the boolean field is true or false, respectively.
  * Added the ability to use links defined in the model file when using the **Display as link** option in tables. Note: Changing a link label in the model will break existing references.
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.