Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.supaboard.ai/llms.txt

Use this file to discover all available pages before exploring further.

Parameterised Filters

What Are Parameterised Filters?

Every filter widget on your dashboard (date pickers, dropdowns, search inputs, etc.) can be individually configured per embed. You decide whether a filter is shown to the viewer, hidden but silently applied, or removed entirely. This lets you do things like:
  • Show a “Region” filter so viewers can explore different markets — but lock the “Date” filter to the current quarter so they can’t change it.
  • Silently scope an embed to a specific customer’s data without exposing that filter in the UI.
  • Remove filters that aren’t relevant to a particular audience.

The Three Filter Modes

ModeWhat the viewer seesWhat data is queried
VisibleThe filter widget, interactiveWhatever the viewer selects (or the preset value if set)
Hidden with presetNothing — the filter is invisibleThe preset value you configured, applied automatically
ExcludedNothing — the filter is invisibleNo filter applied; the full unfiltered dataset is used

Configuring Filters in the Embed Dialog

When you create an embed, open the Filters Visibility and Presets section:
  1. Each filter widget in your dashboard is listed by name.
  2. Check the box next to a filter to keep it visible. Uncheck it to hide or exclude it.
  3. Use the preset value picker on the right of each filter to pre-fill it with a value.
How the checkbox and preset interact:
  • Checked, no preset — filter is shown; the viewer can freely change it.
  • Checked, with preset — filter is shown pre-filled with your value; the viewer can still change it.
  • Unchecked, with preset — filter is hidden; your preset value is applied silently (data is scoped).
  • Unchecked, no preset — filter is excluded; no filtering is applied on that field.

Preset Value Types

The preset input adapts to the type of filter:
Filter typeHow to set the preset
Text / searchType the value directly
NumberType a number
Boolean (on/off)Choose On, Off, or Not set
Dropdown (categorical)Select one or more values from the list
Single datePick a date from the calendar
Date rangePick a start and end date
MonthPick a month
QuarterPick a quarter
YearType a year (e.g. 2024)
Relative dateChoose a named period: This month, Last 7 days, Last 30 days, etc.

Filters Across Multiple Pages

If your dashboard group has multiple pages, the filter panel groups them by page. Select a page to configure its filters, then use the back arrow to switch to another page. Filter settings from all pages are saved together in the embed.

Environments

What Are Environments?

Environments let a single embedded dashboard point at different databases or data sources — for example, showing production data to your customers while using the same dashboard layout to show staging data to your QA team. When you switch environments, every widget query is automatically re-routed to the data source mapped to that environment. No changes to the dashboard itself are needed.

Common Use Cases

  • Multi-tenant data isolation — route each customer’s embed to their own database.
  • Production vs staging — use the same dashboard for testing with non-production data.
  • Regional data sources — point to different regional databases per embed.

Setting the Environment on an Embed

In the New Embed dialog, find the Environment dropdown. It lists all environments configured for your dashboard group. Select the one you want this embed to use by default. If no environment is selected, the dashboard group’s default environment is used.

How Environments Are Set Up

Environments are created inside your dashboard group settings. Each environment has a resource map — a list of data-source substitutions. When that environment is active, any widget that queries source A will automatically query source B instead, as defined in the map. Contact your workspace admin to create or modify environments.

Embed Options at a Glance

When creating an embed, you can configure:
OptionDescription
Expiry dateWhen the embed link stops working
Allowed websitesRestrict which domains can display the embed
FiltersPer-filter visibility and preset values (see above)
EnvironmentWhich data source the embed queries by default
Hide titleRemove the dashboard title from the embedded view
Allow exportLet viewers download data from charts, tables, and KPIs
ThemeForce light mode, dark mode, or follow the viewer’s system setting
Interactive modeEnable the Stella AI assistant inside the embed (Pro)

Setting Filters Programmatically via URL

You can control filter values at runtime — without recreating the embed — by appending a filter query parameter to the iframe src. This is useful when the viewer’s identity or context is known server-side and you want to scope the dashboard automatically (e.g. show each customer only their own data).

How It Works

The filter parameter is a base64-encoded JSON object that maps each filter widget’s ID to its configuration. When present, it completely replaces any filter settings saved at embed-creation time. The JSON shape:
{
  "<widget-id>": {
    "hidden": true,
    "disabled": false,
    "presetValue": "<value>"
  }
}
  • hiddentrue hides the filter widget from the viewer; false shows it.
  • disabledtrue removes the filter entirely (no filtering applied); false applies it.
  • presetValue — the value to pre-fill or silently apply. See Preset Value Types for formatting by field type.

Finding a Widget ID

Each filter widget has a unique ID visible in the dashboard editor. Open the filter widget’s settings panel — the ID is shown under Widget ID (it looks like wgt_abc123).

Encoding the Filter Config

The JSON must be base64-encoded before being placed in the URL. In the browser (JavaScript):
const filterConfig = {
  "wgt_abc123": {
    hidden: true,
    disabled: false,
    presetValue: "acme-corp"
  }
};

const encoded = btoa(JSON.stringify(filterConfig));
const iframeSrc = `${baseEmbedUrl}?filter=${encoded}`;
In Node.js (server-side rendering):
const filterConfig = {
  "wgt_abc123": {
    hidden: true,
    disabled: false,
    presetValue: "acme-corp"
  }
};

const encoded = Buffer.from(JSON.stringify(filterConfig)).toString("base64");
const iframeSrc = `${baseEmbedUrl}?filter=${encoded}`;

End-to-End Example

Say your dashboard has a “Company” filter (wgt_abc123) and a “Date Range” filter (wgt_def456). You want to:
  • Lock “Company” to the current viewer’s company (hidden, silently applied).
  • Keep “Date Range” visible but default it to the last 30 days.
const filterConfig = {
  "wgt_abc123": {
    hidden: true,
    disabled: false,
    presetValue: "acme-corp"         // viewer's company, set server-side
  },
  "wgt_def456": {
    hidden: false,
    disabled: false,
    presetValue: "last_30_days"      // relative date token
  }
};

const encoded = btoa(JSON.stringify(filterConfig));
document.getElementById("dashboard-frame").src = `${baseEmbedUrl}?filter=${encoded}`;

Other Parameters

default_dashboard_page

Sets which page loads when the embed first opens, overriding the default page configured in the embed token. Value: The uniquelink (ID) of the dashboard page you want to show. Example: https://your-embed-url.com/embed/dashboard/>token<?default_dashboard_page=sales-overview Behavior:
  • If the value matches a valid page in the dashboard group, that page loads first.
  • If the value is invalid or the page doesn’t exist, the embed falls back to the token’s default page silently.
  • Once loaded, users can still navigate between pages normally using the tab bar.

hide_page_selector

Hides the bottom tab bar that lets users switch between dashboard pages. Value: true, 1, or just the parameter name with no value. Any of these work: ?hide_page_selector=true ?hide_page_selector=True ?hide_page_selector=1 ?hide_page_selector To explicitly keep it visible (default), omit the parameter or set it to false / 0. Example: https://your-embed-url.com/embed/dashboard/>token<?hide_page_selector=true Behavior:
  • The tab bar is hidden entirely — the dashboard content takes the full height.
  • Dashboard content is still rendered normally; only the navigation UI is hidden.
  • Combine with default_dashboard_page to pin the embed to a specific page with no navigation UI.

Combined Usage https://your-embed-url.com/embed/dashboard/>token<?default_dashboard_page=q4-report&hide_page_selector=true This opens the q4-report page with no tab bar — useful for embedding a single specific page without exposing navigation to other pages.

Important Notes

  • The filter parameter fully replaces the filter configuration saved at embed creation for that page load. It does not merge with it.
  • Widget IDs that are not present in the config will use default filter behaviour (visible, no preset).
  • Setting disabled: true on a filter removes it from the query entirely — the data is not filtered on that field.
  • The base embed URL itself does not change; only the query parameters vary per viewer.

Frequently Asked Questions

Can I change the environment after the embed is created? Yes. Append ?environment=<environment-id> to the embed URL to override the default. The environment ID can be found in your dashboard group’s environment settings. Can a viewer tell that a preset filter is applied? Not if the filter is hidden. The filter widget will not appear in the embedded view, and the data will already be scoped to your preset value. What happens if I exclude a filter? The filter widget is hidden and the filter is not applied at all. Viewers see the full, unfiltered dataset for that field. Can I set a relative date like “last 30 days” as a preset? Yes. When configuring a date filter’s preset, choose from the relative date options: Today, Yesterday, This week, Last 7 days, This month, Last 30 days, Last 3 months, This year, and more. These always resolve to the current period when the dashboard loads. Can different embeds for the same dashboard use different filters and environments? Yes. Each embed is independent. You can create multiple embeds of the same dashboard, each with a different filter configuration and environment.
Last modified on May 8, 2026