Iframe embedding is available on Premium and Enterprise plans.
- Private embedding — for internal users with Cube accounts (e.g., embedding in Notion, Salesforce, internal tools)
- Signed embedding — for external/customer-facing applications using server-generated sessions
Embed with private embedding
To embed a dashboard for internal users:- Open your dashboard in Cube
- Click Share → Embed
- Copy the generated iframe code
Embed with signed embedding
Signed embedding must be allowed on the dashboard first: open the dashboard, click Share → Embed, and turn on Allow signed embedding. You can also toggle it without opening the UI using the Cube CLI:Pre-set dashboard filters via URL
You can pre-set dashboard filter values by adding URL parameters in the format?f_<semantic_view>.<dimension>=<JSON>. The <semantic_view> and <dimension>
must match the internal names (not display titles) of the semantic view and
dimension configured on the filter widget. If the filter type is omitted, it
defaults to equals.
Example:
Allow chart export
By default, embedded dashboards do not expose a download action on individual widgets. To let viewers download a chart widget as a CSV, PNG, or PDF file, add theallowExport=true query parameter to the embed URL:
allowExport is the single switch
for all three formats — there is no way to allow one format while blocking
another. Only the exact literal string true opts in: allowExport=1,
allowExport=TRUE, a bare ?allowExport, and omitting the parameter (the
default) all leave every download action hidden.
The CSV is generated client-side from the data already loaded into the
widget, so no additional query is issued. Inside an embed, allowExport —
not the viewer’s own Cube role — is the authority on whether the download
actions appear.
Show or hide the AI chat
Embedded dashboards show an AI chat (the agent panel and its launcher bubble) by default. You can control it in two ways:- Globally, in the UI. Toggle Show dashboard chat under Embed → Settings in the Cube Cloud console. This switch is account-wide — it turns the AI chat on or off for the entire embedded surface, i.e. every embedded dashboard.
- Per session, via the API. Pass
settings.showDashboardChatwhen you generate the session. A per-session value takes precedence over the global toggle —falsehides the chat for that session even when it is enabled account-wide, andtrueshows it even when it is disabled:
Show or hide header controls
By default, an embedded dashboard’s header shows its title, back button, and — when the viewer has permission — the Edit and Duplicate actions. Hide any of them individually with URL parameters on the embed iframesrc:
false
hides a control — =0, =False, =FALSE, and a bare ?showDashboardTitle
(no value) all leave it visible. Note this is the inverse of allowExport
above, where only the literal string true opts in.
These parameters are URL-only — they aren’t accepted in the Generate
Session
settings
object, unlike showDashboardChat, and they have no account-wide default
under Embed → Settings.showDashboardHeader=false overrides the other four: the whole bar
disappears regardless of their values. showDashboardEditButton can only
hide the Edit action; it can never show one to a viewer who lacks edit
permission.
These parameters are read from the URL the host loaded the iframe with and
stay pinned for the life of the embed, so they survive in-app navigation
(for example, from the home-page dashboard card, or after publishing a
draft).
Set the language
Embedded dashboards render their UI in the account’s default language, which you can override per embed by adding the?locale= query parameter: