Back to Cube

Dashboards

docs-mintlify/embedding/iframe/dashboards.mdx

1.7.74.9 KB
Original Source
<Info> Iframe embedding is available on [Premium and Enterprise plans](https://cube.dev/pricing). </Info>

Embed any dashboard into your application using an iframe. Dashboards can be embedded with either authentication mode:

  • 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:

  1. Open your dashboard in Cube
  2. Click ShareEmbed
  3. Copy the generated iframe code

Then paste the iframe code into your application:

html
<iframe
  title="Dashboard"
  src="https://your-account.cubecloud.dev/embed/dashboard/YOUR_DASHBOARD_PUBLIC_ID"
  width="100%"
  height="800"
></iframe>

Users will be prompted to sign in with their Cube credentials when accessing the embedded dashboard. See Private embedding for details on the auth model and integration examples (Notion, Salesforce).

Embed with signed embedding

To embed a dashboard for external/customer-facing applications, generate a session on your backend and pass the session ID into the iframe:

html
<iframe
  title="Dashboard"
  src="https://your-tenant.cubecloud.dev/embed/dashboard/YOUR_DASHBOARD_PUBLIC_ID?session=YOUR_SESSION_ID"
  width="100%"
  height="800"
></iframe>

See Signed embedding for the full session generation flow, API key setup, and a complete working example.

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:

text
https://your-tenant.cubecloud.dev/embed/dashboard/YOUR_DASHBOARD_PUBLIC_ID?session=YOUR_SESSION_ID&f_orders_transactions.users_country={"value":"USA"}

This works on both regular and published (embedded) dashboards. The filter is only applied if a matching filter widget for that dimension already exists on the dashboard.

Allow CSV export

By default, embedded dashboards do not expose a download action on individual widgets. To let viewers download a chart widget's data as a CSV file, add the allowExport=true query parameter to the embed URL:

text
https://your-tenant.cubecloud.dev/embed/dashboard/YOUR_DASHBOARD_PUBLIC_ID?session=YOUR_SESSION_ID&allowExport=true

When enabled, each chart widget's ⋮ menu shows a Download as CSV action. The CSV is generated client-side from the data already loaded into the widget, so no additional query is issued. The parameter is opt-in — omit it (the default) to keep the download action hidden.

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.showDashboardChat when you generate the session. A per-session value takes precedence over the global toggle — false hides the chat for that session even when it is enabled account-wide, and true shows it even when it is disabled:
javascript
body: JSON.stringify({
  deploymentId: DEPLOYMENT_ID,
  externalId: "[email protected]",
  settings: {
    // Hide the AI chat for this viewer only
    showDashboardChat: false,
  },
}),

This applies to embedded published dashboards; it does not affect the standalone Analytics Chat surface, where embedding the chat is itself the opt-in.

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:

text
https://your-tenant.cubecloud.dev/embed/dashboard/YOUR_DASHBOARD_PUBLIC_ID?session=YOUR_SESSION_ID&locale=es-MX

See Localization for the list of supported languages and the other ways to set the language.

Customize appearance

You can style an embedded dashboard — background, padding, widget borders, titles, and fonts — from the Styling panel in the Dashboard Builder. See Dashboards → Styling for the full list of options.