LLMs.txt: Complete documentation index for AI agents
AppViewConfig

AppViewConfig

Table of Contents

The view configuration for full app embedding.

IndexπŸ”—

PropertiesπŸ”—

additionalFlagsπŸ”—

additionalFlags: {[key: string ] : string | number | boolean} Optional

Version : SDK: 1.9.0 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw

This is an object (key/val) of override flags which will be applied to the internal embedded object. This can be used to add any URL flag. If the same flags are passed in init, they will be overridden by the values here. Warning: This option is for advanced use only and is used internally to control embed behavior in non-regular ways. We do not publish the list of supported keys and values associated with each.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

Index Signature Parameters

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
  additionalFlags: {
       flag1: 'value1',
       flag2: 'value2'
    },
});

collapseSearchBarπŸ”—

collapseSearchBar: boolean Optional

Version : SDK: 1.34.0 | ThoughtSpot: 10.3.0.cl

To set the initial state of the search bar in case of saved Answers.

Supported embed types: AppEmbed, SearchBarEmbed

default : true

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, or SearchBarEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
  collapseSearchBar: true,
});

collapseSearchBarInitiallyπŸ”—

collapseSearchBarInitially: boolean Optional

To set the initial state of the search bar in case of saved-answers. Use collapseSearchBar instead.

Deprecated : This flag is deprecated.

Version : SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl

default : false

contextMenuTriggerπŸ”—

contextMenuTrigger: ContextMenuTriggerOptions Optional

Version : SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl

flag to set ContextMenu Trigger to either left or right click.

Supported embed types: AppEmbed, SearchEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, or SearchEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   contextMenuTrigger:ContextMenuTriggerOptions.LEFT_CLICK || RIGHT_CLICK,
})

coverAndFilterOptionInPDFπŸ”—

coverAndFilterOptionInPDF: boolean Optional

Version : SDK: 1.40.0 | ThoughtSpot: 10.8.0.cl

This flag is used to show or hide checkboxes for including or excluding the cover and filters pages in the Liveboard PDF.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   coverAndFilterOptionInPDF: false,
})

customActionsπŸ”—

customActions: CustomAction[] Optional

Version : SDK: 1.43.0 | ThoughtSpot: 10.14.0.cl

Custom Actions allows users to define interactive UI actions (like buttons or menu items) that appear in ThoughtSpot’s visualizations, answers, and Liveboards. These actions enable users to trigger custom workflows β€” such as navigating to an external app, calling an API, or opening a modal β€” based on the data context of what they clicked can be used to trigger custom logic when the action is clicked.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterEmbed

import {
  CustomActionPayload,
  CustomActionsPosition,
  CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
// Use supported embed types such as AppEmbed or LiveboardEmbed
const embed = new LiveboardEmbed('#tsEmbed', {
  ... // other embed config options
  customActions: [
    {
      // Unique identifier for the custom action
      id: 'my-custom-action',

      // Display name shown to users in the UI
      name: 'My Custom Action',

      // Where the action appears in the UI
      // PRIMARY: Shows as a primary button (e.g., in the toolbar)
      // MENU: Shows in the "More" menu (three dots menu)
      // CONTEXTMENU: Shows in the right-click context menu
      position: CustomActionsPosition.PRIMARY,

      // What type of content this action applies to
      // ANSWER: Available on answer pages
      target: CustomActionTarget.ANSWER,

      // Optional: Restrict where this action appears based on data models
      // dataModelIds: {
      //     // Restrict to specific data models
      //     modelIds: ['model-id-1', 'model-id-2'],
      //     // Restrict to specific columns within models
      //     modelColumnNames: ['model-id::column-name']
      // },

      // Optional: Restrict where this action appears based on metadata
      // metadataIds: {
      //     // Restrict to specific answers
      //     answerIds: ['answer-id-1', 'answer-id-2'],
      // },
      //     // Restrict to specific groups (for group-based access control)
      //     groupIds: ['group-id-1', 'group-id-2'],
      //     // Restrict to specific organizations (for multi-org deployments)
      //     orgIds: ['org-id-1', 'org-id-2'],
    }
  ],
})

// to trigger a custom flow on custom action click listen to Custom action embed event
embed.on(EmbedEvent.CustomAction, (payload: CustomActionPayload) => {
  console.log('Custom Action event:', payload);
})
import {
  CustomActionsPosition,
  CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
const embed = new LiveboardEmbed('#tsEmbed', {
  ... // other embed config options
  customActions: [
    {
      // Unique identifier for the custom action
      id: 'my-custom-action',

      // Display name shown to users in the UI
      name: 'My Custom Action',

      // Where the action appears in the UI
      // MENU: Shows in the "More" menu (three dots menu)
      // CONTEXTMENU: Shows in the right-click context menu
      position: CustomActionsPosition.MENU,

      // What type of content this action applies to
      // SPOTTER: Available in Spotter (AI-powered search)
      target: CustomActionTarget.SPOTTER,

      // Optional: Restrict where this action appears based on data models
      // dataModelIds: {
      //     // Restrict to specific data models
      //     modelIds: ['model-id-1', 'model-id-2'],
      // },
      //     // Restrict to specific groups (for group-based access control)
      //     groupIds: ['group-id-1'],
      //     // Restrict to specific organizations (for multi-org deployments)
      //     orgIds: ['org-id-1'],
    }
  ],
})
import {
  CustomActionsPosition,
  CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
const embed = new LiveboardEmbed('#tsEmbed', {
  ... // other embed config options
  customActions: [
    {
      // Unique identifier for the custom action
      id: 'my-liveboard-custom-action',

      // Display name shown to users in the UI
      name: 'My Liveboard Custom Action',

      // Where the action appears in the UI
      // PRIMARY: Shows as a primary button (e.g., in the toolbar)
      // MENU: Shows in the "More" menu (three dots menu)
      position: CustomActionsPosition.PRIMARY,

      // What type of content this action applies to
      // LIVEBOARD: Available on liveboard pages
      target: CustomActionTarget.LIVEBOARD,

      // Optional: Restrict where this action appears based on metadata
      // metadataIds: {
      //     // Restrict to specific liveboards
      //     liveboardIds: ['liveboard-id-1', 'liveboard-id-2'],
      // },
      //     // Restrict to specific groups (for group-based access control)
      //     groupIds: ['group-id-1', 'group-id-2'],
      //     // Restrict to specific organizations (for multi-org deployments)
      //     orgIds: ['org-id-1', 'org-id-2'],
    },
    {
      // Unique identifier for the custom action
      id: 'my-viz-custom-action',

      // Display name shown to users in the UI
      name: 'My Viz Custom Action',

      // Where the action appears in the UI
      // PRIMARY: Shows as a primary button (e.g., in the toolbar)
      // MENU: Shows in the "More" menu (three dots menu)
      // CONTEXTMENU: Shows in the right-click context menu
      position: CustomActionsPosition.PRIMARY,

      // What type of content this action applies to
      // VIZ: Available on individual visualizations
      target: CustomActionTarget.VIZ,

      // Optional: Restrict where this action appears based on metadata
      // metadataIds: {
      //     // Restrict to specific answers
      //     answerIds: ['answer-id-1', 'answer-id-2'],
      //     // Restrict to specific liveboard. If liveboardId is
      //     // passed, custom actions will appear on all vizzes of liveboard
      //     liveboardIds: ['liveboard-id-1'],
      //     // Restrict to specific vizIds
      //     vizIds: ['viz-id-1']
      // },
      // dataModelIds: {
      //     // Restrict to specific data models
      //     modelIds: ['model-id-1', 'model-id-2'],
      //     // Restrict to specific columns within models
      //     modelColumnNames: ['model-id::column-name']
      // },
      //     // Restrict to specific groups (for group-based access control)
      //     groupIds: ['group-id-1', 'group-id-2'],
      //     // Restrict to specific organizations (for multi-org deployments)
      //     orgIds: ['org-id-1', 'org-id-2'],
    }
  ],
})

customizationsπŸ”—

customizations: CustomisationsInterface Optional

Version : SDK: 1.17.2 | ThoughtSpot: 8.4.1.sw, 8.4.0.cl

Dynamic CSSUrl and customCSS to be injected in the loaded application. You would also need to set style-src in the CSP settings.

default : ''

dataPanelCustomGroupsAccordionInitialStateπŸ”—

dataPanelCustomGroupsAccordionInitialState: DataPanelCustomColumnGroupsAccordionState Optional

Version : SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl

This controls the initial behaviour of custom column groups accordion. It takes DataPanelCustomColumnGroupsAccordionState enum values as input. List of different enum values:-

  • EXPAND_ALL: Expand all the accordion initially in data panel v2.

  • COLLAPSE_ALL: Collapse all the accordions initially in data panel v2.

  • EXPAND_FIRST: Expand the first accordion and collapse the rest.

Supported embed types: AppEmbed

default : DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL

const embed = new AppEmbed('#embed', {
  ... // other app view config
  dataPanelCustomGroupsAccordionInitialState:
     DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
});

dataPanelV2πŸ”—

dataPanelV2: boolean Optional

Flag to control Data panel experience

Supported embed types: AppEmbed, SearchBarEmbed, LiveboardEmbed, SearchEmbed

Deprecated : from SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl

default : true

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, or SearchBarEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   dataPanelV2: true,
})

defaultHeightπŸ”—

defaultHeight: number Optional

This is the minimum height (in pixels) for a full-height Liveboard. Setting this height helps resolve issues with empty Liveboards and other screens navigable from a Liveboard.

Supported embed types: LiveboardEmbed, AppEmbed

Deprecated : Use minimumHeight instead.

Version : SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1

default : 500

// Replace <EmbedComponent> with the embed component name.
// For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#embed', {
  ... // other view config
  fullHeight: true,
  defaultHeight: 600,
});

defaultQueryModeπŸ”—

defaultQueryMode: SpotterQueryMode Optional

Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl

Sets the default query mode when Spotter loads β€” Fast Search or Research Mode. Applies fresh on every new session for this embed instance only; it does not persist as a user preference and does not affect other embeds or native ThoughtSpot usage. Only applicable when navigating to Spotter within the app.

Supported embed types: AppEmbed

default : SpotterQueryMode.FAST_SEARCH

const embed = new AppEmbed('#tsEmbed', {
   ... //other embed view config
   defaultQueryMode: SpotterQueryMode.RESEARCH,
})

disableProfileAndHelpπŸ”—

disableProfileAndHelp: boolean Optional

Version : SDK: 1.2.0 | ThoughtSpot: 8.4.0.cl

Control the visibility of the help (?) and profile buttons on the top navigation bar. These buttons are visible if the navigation bar is not hidden via showPrimaryNavbar.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   disableProfileAndHelp: true,
})

disableRedirectionLinksInNewTabπŸ”—

disableRedirectionLinksInNewTab: boolean Optional

Version : SDK: 1.32.1 | ThoughtSpot: 10.3.0.cl

This flag can be used to disable links inside the embedded app, and disable redirection of links in a new tab.

Note: When set to true, this flag automatically disables enableLinkOverridesV2 for the embed session. The two features are mutually exclusive β€” link overrides mutate anchors (delete href, attach a JS click handler), which breaks native browser behavior (Cmd/Ctrl+Click, middle-click, right-click "Open in new tab") when combined with the disable flag. The disable flag preserves native anchor semantics instead.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
  ... // other embed view config
  disableRedirectionLinksInNewTab: true,
});

disabledActionReasonπŸ”—

disabledActionReason: string Optional

Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw

The tooltip to display for disabled actions.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   disabledActions: [Action.Download, Action.Save],
   disabledActionReason: "Reason for disabling",
});

disabledActionsπŸ”—

disabledActions: Action[] Optional

Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw

The list of actions to disable from the primary menu, more menu (…​), and the contextual menu. Disabled actions are grayed out and still visible to the user, but cannot be clicked. Use this when you want to disable an action (keep it visible but non-interactive). To completely remove an action from the UI, use hiddenActions instead.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   disabledActions: [Action.Download, Action.Save],
});

discoveryExperienceπŸ”—

discoveryExperience: DiscoveryExperience Optional

Version : SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl

Configures the V3 navigation and home page experience. For more information, see full app embed documentation. Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   // Enable V3 navigation and home page experience
   discoveryExperience : {
     primaryNavbarVersion: PrimaryNavbarVersion.Sliding, // Enable V3 navigation
     homePage: HomePage.ModularWithStylingChanges, // Enable V3 modular home page
     ... // other embed view config
   },
})

doNotTrackPreRenderSizeπŸ”—

doNotTrackPreRenderSize: boolean Optional

Determines if the PreRender component should dynamically track the size of its embedding element and adjust its own size accordingly. Enabling this option allows the PreRender component to automatically adapt its dimensions based on changes to the size of the embedding element.

Deprecated : Use PreRenderConfig.doNotTrackSize via preRenderConfig instead.

Version : SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw

default : false

// Disable tracking PreRender size in the configuration
const config = {
  doNotTrackPreRenderSize: true,
};

// Instantiate an object with the configuration
const myComponent = new MyComponent(config);

enable2ColumnLayoutπŸ”—

enable2ColumnLayout: boolean Optional

Version : SDK: 1.32.0 | ThoughtSpot: 10.1.0.cl

This attribute can be used to enable the two-column layout on an embedded Liveboard

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   enable2ColumnLayout: true,
})

enableAskSageπŸ”—

enableAskSage: boolean Optional

Version : SDK: 1.29.0 | ThoughtSpot: 9.12.0.cl

enable or disable ask sage

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SpotterEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   enableAskSage:true,
})

enableCustomColumnGroupsπŸ”—

enableCustomColumnGroups: boolean Optional

Version : SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl, 10.1.0.sw

To enable custom column groups in data panel v2

Supported embed types: SearchBarEmbed, LiveboardEmbed, SearchEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, SearchBarEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
  ... // other embed view config
  enableCustomColumnGroups: true,
});

enableHomepageAnnouncementπŸ”—

enableHomepageAnnouncement: boolean Optional

Version : SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl

To enable the homepage announcement banner. Controls the visibility of the announcement section on the homepage.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   enableHomepageAnnouncement: true,
})

enableLinkOverridesV2πŸ”—

enableLinkOverridesV2: boolean Optional

Version : SDK: 1.46.0 | ThoughtSpot: 26.2.0.cl

Enables the V2 link override mechanism with improved handling. When enabled, navigation links within the embedded ThoughtSpot app are intercepted and routed through the SDK via the EmbedEvent.DialogOpen event.

The SDK automatically sends linkOverride alongside this flag for backward compatibility with older ThoughtSpot versions.

Note: This flag is ignored when disableRedirectionLinksInNewTab is true.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

const embed = new LiveboardEmbed('#tsEmbed', {
   ... // other embed view config
   enableLinkOverridesV2: true,
});

embed.on(EmbedEvent.DialogOpen, (payload) => {
   console.log('Link clicked:', payload);
});

enableLiveboardDataCacheπŸ”—

enableLiveboardDataCache: boolean Optional

Version : SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl

If set to true, enables visualization data caching on the Liveboard.

const embed = new AppEmbed('#tsEmbed', {
   ... // other options
   enableLiveboardDataCache: true,
})

enablePastConversationsSidebarπŸ”—

enablePastConversationsSidebar: boolean Optional

Controls the visibility of the past conversations sidebar.

Supported embed types: AppEmbed

Deprecated : from SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl Use spotterSidebarConfig.enablePastConversationsSidebar.

Version : SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl

default : false

enablePendoHelpπŸ”—

enablePendoHelp: boolean Optional

Version : SDK: 1.36.3 | ThoughtSpot: 10.1.0.cl

Whether the help menu in the top navigation bar should be served from Pendo or ThoughtSpot’s internal help items.

Supported embed types: AppEmbed

default : true

const embed = new AppEmbed('#tsEmbed', {
  ... // other embed view config
 enablePendoHelp: false,
});

enableScrollableContainerLazyLoadingπŸ”—

enableScrollableContainerLazyLoading: boolean Optional

Computes the visible region of the embed against its scrollable and clipping ancestors, instead of treating the browser window as the only viewport, and tracks scroll and resize on those ancestors.

From SDK 1.52.0 this is enabled automatically whenever fullHeight is true. On SDK 1.51.0 and earlier it defaulted to false and had to be set explicitly. Set it to false when the page scrolls with the window and the embed has no clipping ancestor, to skip the extra ancestor tracking.

Supported embed types: LiveboardEmbed, AppEmbed

default : true when fullHeight is enabled, from SDK 1.52.0

enableSearchAssistπŸ”—

enableSearchAssist: boolean Optional

Version : SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw

If set to true, the Search Assist feature is enabled.

Supported embed types: AppEmbed

default : true

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   enableSearchAssist: true,
})

enableStopAnswerGenerationEmbedπŸ”—

enableStopAnswerGenerationEmbed: boolean Optional

Version : SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl

Enables the stop answer generation button in the Spotter embed UI, allowing users to interrupt an ongoing answer generation.

Supported embed types: AppEmbed

default : false

enableV2Shell_experimentalπŸ”—

enableV2Shell_experimental: boolean Optional

Version : SDK: 1.31.2 | ThoughtSpot: 10.0.0.cl

Enable the V2 shell. This can provide performance benefits due to a lighter-weight shell.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
  enableV2Shell_experimental: true,
});

excludeRuntimeFiltersfromURLπŸ”—

excludeRuntimeFiltersfromURL: boolean Optional

Version : SDK: 1.24.0 | ThoughtSpot: 9.5.0.cl

Boolean to exclude runtimeFilters in the URL By default it is true, this flag removes runtime filters from the URL (default behavior from SDK 1.45.0). when set to false, runtime filters will be included in the URL (default behavior before SDK 1.45.0).

Irrespective of this flag, runtime filters ( if passed ) will be applied to the embedded view.

default : true

excludeRuntimeParametersfromURLπŸ”—

excludeRuntimeParametersfromURL: boolean Optional

Version : SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl

Boolean to exclude runtimeParameters from the URL when set to true, this flag removes runtime parameters from the URL (default behavior from SDK 1.45.0). when set to false, runtime parameters will be included in the URL (default behavior before SDK 1.45.0).

Irrespective of this flag, runtime parameters (if passed) will be applied to the embedded view.

default : true

exposeTranslationIDsπŸ”—

exposeTranslationIDs: boolean Optional

Version : SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl

This flag can be used to expose translation IDs on the embedded app.

default : false

frameParamsπŸ”—

frameParams: FrameParams Optional

Version : SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1

The width and height dimensions to render an embedded object inside your app. Specify the values in pixels or percentage.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   frameParams: {
       width: '500px' | '50%',
       height: '400px' | '60%',
   },
})

fullHeightπŸ”—

fullHeight: boolean Optional

Version : SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1

If set to true, the embedded object container dynamically resizes according to the height of the Liveboard.

Note: Using fullHeight loads all visualizations on the Liveboard simultaneously, which results in multiple warehouse queries and potentially a longer wait for the topmost visualizations to display on the screen. Setting fullHeight to false fetches visualizations incrementally as users scroll the page to view the charts and tables.

From SDK 1.52.0, enabling fullHeight also turns on lazyLoadingForFullHeight and enableScrollableContainerLazyLoading, so visualizations load as they scroll into view. Set either flag to false to opt out.

Supported embed types: LiveboardEmbed, AppEmbed

// Replace <EmbedComponent> with the embed component name.
// For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#embed', {
  ... // other view config
  fullHeight: true,
});

hiddenActionsπŸ”—

hiddenActions: Action[] Optional

Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw

The list of actions to completely remove from the embedded view. Hidden actions are not visible to the user at all (fully removed from the UI). Use this when you want to remove an action entirely. To keep an action visible but non-interactive (grayed out), use disabledActions instead.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   hiddenActions: [Action.Download, Action.ExportTML],
});

hiddenHomeLeftNavItemsπŸ”—

hiddenHomeLeftNavItems: HomeLeftNavItem[] Optional

Version : SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw

Controls the visibility of the menu items on the home page left navigation panel. To specify the menu items, import the HomeLeftNavItem enum.

Note: The classic (V1) and Modular (V2) home page experiences are deprecated. This attribute applies to V3 (ModularWithStylingChanges) and V4 (Focused) home page experiences.

Supported embed types: AppEmbed

import { HomeLeftNavItem } from '@thoughtspot/visual-embed-sdk';

const embed = new AppEmbed('#tsEmbed', {
   //... V2/V3 experience attributes
   hiddenHomeLeftNavItems : [HomeLeftNavItem.Home,HomeLeftNavItem.Answers],
   ... //other embed view configuration attributes
})

hiddenHomepageModulesπŸ”—

hiddenHomepageModules: HomepageModule[] Optional

Version : SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw

Control the visibility of home page modules. To specify the modules, import the HomepageModule enum. For example: hiddenHomepageModules = [HomepageModule.MyLibrary]

Note: The classic (V1) and Modular (V2) home page experiences are deprecated. This attribute applies to V3 (ModularWithStylingChanges) and V4 (Focused) home page experiences.

Supported embed types: AppEmbed

import { HomepageModule } from '@thoughtspot/visual-embed-sdk';

const embed = new AppEmbed('#tsEmbed', {
   ... // V3 navigation and home page experience attributes
   hiddenHomepageModules : [HomepageModule.Favorite,HomepageModule.Learning],
   //...other embed view configuration attributes
})

hiddenListColumnsπŸ”—

hiddenListColumns: ListPageColumns[] Optional

Version : SDK: 1.38.0 | ThoughtSpot: 10.9.0.cl

Hide columns on list pages such as Liveboards and Answers. For example: hiddenListColumns = [ListPageColumns.Author]

Note: This option is available only in full app embedding and requires importing the ListPageColumns enum. Starting with version 10.14.0.cl, you can use this attribute to hide the columns on all list pages in the Insights section.

Supported embed types: AppEmbed

import { ListPageColumns } from '@thoughtspot/visual-embed-sdk';

const embed = new AppEmbed('#tsEmbed', {
   ... //other embed view config
   hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
})

hideAnswerEditPanelπŸ”—

hideAnswerEditPanel: boolean Optional

Version : SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl

If set to true, the answer edit panel is hidden.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideAnswerEditPanel: true,
})

hideApplicationSwitcherπŸ”—

hideApplicationSwitcher: boolean Optional

Version : SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl

Control the visibility of the application selection menu. In the V3 experience, it shows or hides application selection icons on the left navigation panel. By default, the application selection menu and icons are shown in the UI.

Note: The classic (V1) and V2 experiences are deprecated. This attribute applies to the V3 experience.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideApplicationSwitcher : true,
})

hideHamburgerπŸ”—

hideHamburger: boolean Optional

Version : SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl

Control the visibility of the hamburger icon on the top navigation bar in the V3 navigation experience.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideHamburger : true,
})

hideHomepageLeftNavπŸ”—

hideHomepageLeftNav: boolean Optional

Version : SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl

Control the visibility of the left navigation panel on the home page in the V3 and V4 navigation and home page experience. If showPrimaryNavbar is true, that is, if the Global and Homepage navigation bars are visible, this flag will only hide the left navigation bar on the home page. The showPrimaryNavbar flag takes precedence over the hideHomepageLeftNav.

Note: The classic (V1) and Modular (V2) home page experiences are deprecated. This attribute applies to V3 and V4 home page experiences.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideHomepageLeftNav : true,
})

hideIrrelevantChipsInLiveboardTabsπŸ”—

hideIrrelevantChipsInLiveboardTabs: boolean Optional

Version : SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl

This flag is used to enable/disable hide irrelevant filters in Liveboard tab

Note: This feature is supported only if compact header is enabled on your Liveboard. To enable compact header, use the isLiveboardCompactHeaderEnabled attribute.

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   hideIrrelevantChipsInLiveboardTabs: true,
   isLiveboardCompactHeaderEnabled: true,
})

hideLiveboardHeaderπŸ”—

hideLiveboardHeader: boolean Optional

Version : SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl

Show or hide Liveboard header

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   hideLiveboardHeader : true,
})

hideNotificationπŸ”—

hideNotification: boolean Optional

Version : SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl

Control the visibility of the notification icon on the top navigation bar in V3 navigation experience.

Note: The classic (V1) and V2 experience modes are deprecated. This attribute applies to the V3 experience.

Supported embed types: AppEmbed

default : true

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideNotification: false,
})

hideObjectSearchπŸ”—

hideObjectSearch: boolean Optional

Version : SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl

Control the visibility of the object search on the top navigation bar in the V3 navigation experience.

Note: The classic (V1) and V2 navigation experiences are deprecated. This attribute applies to the V3 navigation experience.

Supported embed types: AppEmbed

default : true

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideObjectSearch: false,
})

hideObjectsπŸ”—

hideObjects: string[] Optional

Version : SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1-sw

The array of GUIDs to be hidden

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideObjects: [
      '430496d6-6903-4601-937e-2c691821af3c',
      'f547ec54-2a37-4516-a222-2b06719af726'
    ]
})

hideOrgSwitcherπŸ”—

hideOrgSwitcher: boolean Optional

Version : SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl

Control the visibility of the Org switcher button on the nav-bar. By default, the Org switcher button is shown.

Note: The classic (V1) experience is deprecated. This attribute applies to V2 (deprecated), V3 and V4 experiences.

Supported embed types: AppEmbed

default : true

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   hideOrgSwitcher : true,
})

hideTagFilterChipsπŸ”—

hideTagFilterChips: boolean Optional

Version : SDK: 1.44.0 | ThoughtSpot: 10.15.0.cl

Hide tag filter chips that appear when content is filtered by tags. When enabled, this automatically:

  • Hides tag filter indicators/chips from the UI

This provides a clean interface without tag-related UI elements.

Supported embed types: AppEmbed

// Simple usage - automatically hides all tag-related UI
const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   tag: 'Some Tag',
   hideTagFilterChips: true, // This is all you need!
});

homePageSearchBarModeπŸ”—

homePageSearchBarMode: HomePageSearchBarMode Optional

Version : SDK: 1.33.0 | ThoughtSpot: 10.3.0.cl

Flag to use home page search bar mode

Supported embed types: AppEmbed

insertAsSiblingπŸ”—

insertAsSibling: boolean Optional

Version : SDK: 1.2.0 | ThoughtSpot: 9.0.0.cl, 9.0.0.sw

Insert as a sibling of the target container, instead of appending to a child inside it.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   insertAsSibling:true,
})

interceptTimeoutπŸ”—

interceptTimeout: number Optional

Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl

How long, in milliseconds, an intercepted request waits for the EmbedEvent.ApiIntercept responder before it is abandoned. Defaults to 30000. On timeout the request fails and EmbedEvent.Error is emitted.

const embed = new LiveboardEmbed('#embed', {
  ...viewConfig,
  interceptUrls: [InterceptedApiType.ALL],
  interceptTimeout: 1000,
})

interceptUrlsπŸ”—

interceptUrls: string[] Optional

Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl

The requests to intercept, given as InterceptedApiType groups, absolute URLs, or paths beginning with / that are resolved against the ThoughtSpot host. Setting this is what turns interception on.

A URL matches only on exact equality with the request’s fully resolved URL, query string included, so prefer an InterceptedApiType group where one covers the API you need.

Each intercepted request pauses and emits EmbedEvent.ApiIntercept, then proceeds according to the response passed to that event’s responder.

const embed = new LiveboardEmbed('#embed', {
  ...viewConfig,
  interceptUrls: [InterceptedApiType.LiveboardData],
})

isCentralizedLiveboardFilterUXEnabledπŸ”—

isCentralizedLiveboardFilterUXEnabled: boolean Optional

Version : SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl

This flag is used to enable or disable the new centralized Liveboard filter UX (v2). When enabled, a unified modal is used to manage and update multiple filters at once, replacing the older individual filter interactions. To enable this feature on your instance, contact ThoughtSpot Support.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isCentralizedLiveboardFilterUXEnabled: true,
})

isContinuousLiveboardPDFEnabledπŸ”—

isContinuousLiveboardPDFEnabled: boolean Optional

Version : SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl

Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page following the exact UI layout, instead of splitting visualizations across multiple A4 pages. This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.

Supported embed types: AppEmbed, LiveboardEmbed

default : true

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isContinuousLiveboardPDFEnabled: true,
})

isDarkModeπŸ”—

isDarkMode: boolean Optional

Version : SDK: 1.55.0 | ThoughtSpot Cloud: 26.12.0.cl

Render this embed in dark appearance when true, and in its default appearance when false, overriding the isDarkMode value passed to init.

The host application owns the appearance of an embed, so this overrides the appearance preference of the signed-in user and the color scheme of their operating system. If your application has light and dark themes, pass true while it shows the dark theme and false while it shows the light theme. Leave it unset to inherit the init value.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Your application's current theme, 'light' or 'dark'
const appTheme = 'dark';
// Replace AppEmbed with a specific embed component like SearchEmbed or LiveboardEmbed
const embed = new AppEmbed('#tsEmbed', {
  ... // other embed view config
  isDarkMode: appTheme === 'dark',
});

isEnhancedFilterInteractivityEnabledπŸ”—

isEnhancedFilterInteractivityEnabled: boolean Optional

Version : SDK: 1.42.0 | ThoughtSpot: 10.15.0.cl

This flag is used to enable or disable the enhanced filter interactivity in liveboard.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isEnhancedFilterInteractivityEnabled: true,
})

isGranularXLSXCSVSchedulesEnabledπŸ”—

isGranularXLSXCSVSchedulesEnabled: boolean Optional

Version : SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl

This flag is used to enable/disable the granular XLSX/CSV schedules feature This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl

Supported embed types: AppEmbed, LiveboardEmbed

default : true

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isGranularXLSXCSVSchedulesEnabled: true,
})

isLinkParametersEnabledπŸ”—

isLinkParametersEnabled: boolean Optional

Version : SDK: 1.42.0 | ThoughtSpot: 10.14.0.cl

This flag is used to enable or disable the link parameters in liveboard.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isLinkParametersEnabled: true,
})

isLiveboardAlwaysOn12ColLayoutπŸ”—

isLiveboardAlwaysOn12ColLayout: boolean Optional

Version : SDK: 1.51.1 | ThoughtSpot Cloud: 26.8.0.cl

This attribute keeps an embedded Liveboard on the 12-column layout at every width, instead of switching to the two-column or single-column layout as the container narrows.

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isLiveboardAlwaysOn12ColLayout: true,
})

isLiveboardCompactHeaderEnabledπŸ”—

isLiveboardCompactHeaderEnabled: boolean Optional

Version : SDK: 1.35.0 | ThoughtSpot: 10.3.0.cl

This flag can be used to enable the compact header in Liveboard

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isLiveboardCompactHeaderEnabled: true,
})

isLiveboardHeaderStickyπŸ”—

isLiveboardHeaderSticky: boolean Optional

Version : SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl

Boolean to control if Liveboard header is sticky or not.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#embed', {
  ... // other app view config
  isLiveboardHeaderSticky: true,
});

isLiveboardMasterpiecesEnabledπŸ”—

isLiveboardMasterpiecesEnabled: boolean Optional

Version : SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl

Enable or disable Liveboard styling and grouping

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isLiveboardMasterpiecesEnabled: true,
})

isLiveboardStylingAndGroupingEnabledπŸ”—

isLiveboardStylingAndGroupingEnabled: boolean Optional

This flag is used to enable/disable the styling and grouping in a Liveboard. Use isLiveboardMasterpiecesEnabled instead.

Deprecated : This flag is deprecated. Supported embed types: AppEmbed, LiveboardEmbed

Version : SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isLiveboardStylingAndGroupingEnabled: true,
})

isLiveboardXLSXCSVDownloadEnabledπŸ”—

isLiveboardXLSXCSVDownloadEnabled: boolean Optional

Version : SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl

This flag is used to enable/disable the XLSX/CSV download option for Liveboards This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl

Supported embed types: AppEmbed, LiveboardEmbed

default : true

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isLiveboardXLSXCSVDownloadEnabled: true,
})

isOnBeforeGetVizDataInterceptEnabledπŸ”—

isOnBeforeGetVizDataInterceptEnabled: boolean Optional

Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl

Emits EmbedEvent.OnBeforeGetVizDataIntercept before the Answer data APIs are called. This is the earlier, narrower form of interception, kept for backward compatibility and implemented on top of EmbedEvent.ApiIntercept. Prefer interceptUrls with InterceptedApiType.AnswerData in new code.

Setting this also intercepts the Answer data APIs, so both EmbedEvent.OnBeforeGetVizDataIntercept and EmbedEvent.ApiIntercept are emitted for those requests.

Can be used for Search and App Embed from SDK 1.29.0

isPNGInScheduledEmailsEnabledπŸ”—

isPNGInScheduledEmailsEnabled: boolean Optional

Version : SDK: 1.42.0 | ThoughtSpot: 10.14.0.cl

This flag is used to enable/disable the png embedding of liveboard in scheduled mails

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isPNGInScheduledEmailsEnabled: true,
})

isScopedLiveboardFilteringEnabledπŸ”—

isScopedLiveboardFilteringEnabled: boolean Optional

Version : SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl

This flag is used to enable or disable scoped Liveboard filtering. When enabled, filters and parameters can be scoped to a group of visualizations on a Liveboard, in addition to the Liveboard and tab levels.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isScopedLiveboardFilteringEnabled: true,
})

isThisPeriodInDateFiltersEnabledπŸ”—

isThisPeriodInDateFiltersEnabled: boolean Optional

Version : SDK: 1.45.0 | ThoughtSpot: 26.4.0.cl

To enable Include current period checkbox for date filters. Controls the visibility of the option to include the current time period in filter results.

Supported embed types: AppEmbed, SearchBarEmbed, LiveboardEmbed, SearchEmbed

const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   isThisPeriodInDateFiltersEnabled: true,
})

isUnifiedSearchExperienceEnabledπŸ”—

isUnifiedSearchExperienceEnabled: boolean Optional

Version : SDK: 1.34.0 | ThoughtSpot: 10.5.0.cl

This flag is used to enable unified search experience for full app embed.

Supported embed types: AppEmbed

default : true

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   isUnifiedSearchExperienceEnabled: true,
})

lazyLoadingForFullHeightπŸ”—

lazyLoadingForFullHeight: boolean Optional

Version : SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl

Loads visualizations only as they scroll into the viewport, instead of loading the whole full-height Liveboard at once.

From SDK 1.52.0 this is enabled automatically whenever fullHeight is true. On SDK 1.51.0 and earlier it defaulted to false and had to be set explicitly. Set it to false to load every visualization upfront. The flag has no effect unless fullHeight is enabled.

Supported embed types: LiveboardEmbed, AppEmbed

default : true when fullHeight is enabled, from SDK 1.52.0

// Replace <EmbedComponent> with the embed component name.
// For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#embed-container', {
   // ...other options
   fullHeight: true,
   lazyLoadingForFullHeight: true,
})

lazyLoadingMarginπŸ”—

lazyLoadingMargin: string Optional

Version : SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl

How far outside the viewport a visualization starts loading, when lazyLoadingForFullHeight is enabled.

For example, if the margin is set to '10px', the visualization will be loaded 10px before its top edge is visible in the viewport.

The format is similar to CSS margin, so '500px 0px' extends the prefetch 500px above and below the viewport and not sideways. Accepted units are px, em, rem, %, vh and vw, plus bare 0 and auto; an invalid value is logged and ignored.

From SDK 1.52.0 this defaults to '500px 0px' β€” roughly one visualization ahead of the scroll position, so a chart has usually finished loading by the time it scrolls into view. Use a smaller margin to cut warehouse queries further, or '0px' to load a visualization only once it is actually visible.

Supported embed types: LiveboardEmbed, AppEmbed

default : '500px 0px' when fullHeight is enabled, from SDK 1.52.0

// Replace <EmbedComponent> with the embed component name.
// For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#embed-container', {
   // ...other options
   fullHeight: true,
   lazyLoadingForFullHeight: true,
   // With 0px, the visualization only starts loading once it is
   // visible in the viewport.
   lazyLoadingMargin: '0px',
})

linkOverrideπŸ”—

linkOverride: boolean Optional

Version : SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl

Flag to override the Open Link in New Tab context menu option.

Note: Setting this flag implicitly enables enableLinkOverridesV2. V1 is auto-upgraded to V2 to ensure consistent link-override behavior; the legacy V1-only path is no longer used in isolation.

Note: This flag is ignored when disableRedirectionLinksInNewTab is true.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

const embed = new LiveboardEmbed('#tsEmbed', {
   ... // other embed view config
   linkOverride: true,
})

liveboardGutterπŸ”—

liveboardGutter: number Optional

Version : SDK: 1.51.1 | ThoughtSpot Cloud: 26.8.0.cl

Sets the gutter space (in pixels) between the visualization tiles of an embedded Liveboard grid layout and its outer layout padding. Accepts a non-negative integer; 0 renders the tiles without any gap and removes the outer padding. When omitted, the gutter saved in the Liveboard’s styling settings (or the ThoughtSpot default) applies.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   liveboardGutter: 8,
})

localeπŸ”—

locale: string Optional

Version : SDK: 1.9.4 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw

The locale settings to apply to the embedded view.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   locale:'en',
})

minimumHeightπŸ”—

minimumHeight: number Optional

Version : SDK: 1.44.2 | ThoughtSpot: 10.15.0.cl

This is the minimum height (in pixels) for a full-height Liveboard. Setting this height helps resolve issues with empty Liveboards and other screens navigable from a Liveboard.

Supported embed types: LiveboardEmbed, AppEmbed

default : 500

// Replace <EmbedComponent> with the embed component name.
// For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#embed', {
  ... // other view config
  fullHeight: true,
  minimumHeight: 600,
});

modularHomeExperienceπŸ”—

modularHomeExperience: boolean Optional

Enables the V2 navigation and modular home page experience. For more information, see full app embed documentation. Supported embed types: AppEmbed

Deprecated : The V1 and V2 home page experiences are deprecated.

Version : SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl

default : false Use the discoveryExperience.homePage option with HomePage.ModularWithStylingChanges (V3) or HomePage.Focused (V4) instead.

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   modularHomeExperience : true,
})

newChartsLibraryπŸ”—

newChartsLibrary: boolean Optional

Version : SDK: 1.49.0 | ThoughtSpot Cloud: 26.6.0.cl

Enable or disable Muze chart phase 1 GA

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   newChartsLibrary: true,
})

newConnectionsExperienceπŸ”—

newConnectionsExperience: boolean Optional

Version : SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl

This flag is used to enable the new connection experience for AppEmbed.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   newConnectionsExperience: true,
})

overrideHistoryStateπŸ”—

overrideHistoryState: boolean Optional

Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl

Overrides the browser history behavior for embedding application users. This parameter changes standard history navigation (pushState) into a state replacement (replaceState), preventing users from getting trapped in back-button loops inside the embedded iframe environment. The overrideHistoryState setting is honored only if the application is running within an embedded context.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
    // ... other embed view config
    overrideHistoryState: true,
});

overrideOrgIdπŸ”—

overrideOrgId: number Optional

Version : SDK: 1.35.0 | ThoughtSpot: 10.5.0.cl

Overrides an Org context for embedding application users. This parameter allows a user authenticated to one Org to view the objects from another Org. The overrideOrgId setting is honoured only if the Per Org URL feature is enabled on your ThoughtSpot instance.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
  ... // other embed view config
  overrideOrgId: 142536,
});

pageIdπŸ”—

pageId: Page Optional

Version : SDK: 1.1.0 | ThoughtSpot: 9.4.0.cl

The application page to set as the start page in the embedded view.

Use this to open to a particular page in the app. To open to a specific path within the app, use the path attribute which is more flexible.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   pageId: Page.Answers, // or Page.Data
})

pathπŸ”—

path: string Optional

Version : SDK: 1.1.0 | ThoughtSpot: 9.4.0.cl

A URL path to the embedded application page If both path and pageId attributes are defined, the path definition takes precedence. This is the path post the #/ in the URL of the standalone ThoughtSpot app. Use this to open the embedded view to a specific path.

For example, if you want the component to open to a specific Liveboard you could set the path to pinboard/<liveboardId>/tab/<tabId>.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   path:"pinboard/1234/tab/7464",
})

preRenderConfigπŸ”—

preRenderConfig: PreRenderConfig Optional

Version : SDK: 1.52.0

Configuration for the pre-render wrapper element. Each property here supersedes its deprecated top-level counterpart on BaseViewConfig β€” id over preRenderId, containerSelector over preRenderContainer and doNotTrackSize over doNotTrackPreRenderSize β€” and takes precedence when both are set, so existing top-level usage continues to work without any changes. See PreRenderConfig for available options.

const embed = new LiveboardEmbed('#tsEmbed', {
  preRenderConfig: {
    id: 'my-liveboard',
    zIndex: -10,
  },
});
embed.preRender();
embed.showPreRender();

preRenderContainerπŸ”—

preRenderContainer: string | HTMLElement Optional

The DOM element or CSS selector string specifying the container into which the pre-rendered wrapper is inserted. Defaults to document.body when not specified.

When to use a target container: set this when the pre-render should live somewhere other than document.body β€” for example when <body> has overflow: hidden and scrolling is handled by an inner element, or when you need the wrapper to sit inside a specific stacking/positioning context. The wrapper is positioned to track the embedding element within this container, so choose the scrollable/positioned ancestor you want it aligned to.

Pass a stable container: the wrapper is mounted into the resolved container once, during preRender(). The container must stay mounted for the lifetime of the pre-render β€” if the host app unmounts and remounts it (for example React replacing the node), the wrapper is orphaned on the detached node. Mount the container above the part of the tree that re-renders so its identity is stable. Prefer a CSS selector string over a raw element: a selector can be re-resolved to the fresh node on the next reposition, whereas an element reference cannot be recovered once detached.

When the embed host lives inside a Shadow DOM, a selector string is resolved against that shadow root as well (since document.querySelector cannot pierce shadow boundaries); pass the element directly if the container lives in a different root.

Deprecated : Use PreRenderConfig.containerSelector via preRenderConfig instead.

Version : SDK: 1.49.2 | ThoughtSpot: *

const embed = new LiveboardEmbed('#tsEmbed', {
  preRenderId: 'my-liveboard',
  // Prefer a selector for a stable, scrollable container.
  preRenderContainer: '#my-scroll-container',
});

preRenderIdπŸ”—

preRenderId: string Optional

PreRender id to be used for PreRendering the embed. Use PreRender to render the embed in the background and then show or hide the rendered embed using showPreRender or hidePreRender respectively.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

Deprecated : Use PreRenderConfig.id via preRenderConfig instead.

Version : SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
  preRenderId: "preRenderId-123",
});
embed.showPreRender();

primaryActionπŸ”—

primaryAction: string Optional

Version : SDK: 1.39.0 | ThoughtSpot: 10.11.0.cl

The primary action to display on top of the viz for Liveboard and App Embed. Use this to set the primary action.

Supported embed types: AppEmbed, LiveboardEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
  primaryAction: Action.Download
});

refreshAuthTokenOnNearExpiryπŸ”—

refreshAuthTokenOnNearExpiry: boolean Optional

Version : SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl

Refresh the auth token when the token is near expiry.

default : true

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   refreshAuthTokenOnNearExpiry: true,
})

reorderedHomepageModulesπŸ”—

reorderedHomepageModules: HomepageModule[] Optional

Version : SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw

Reorder home page modules. To specify the modules, import the HomepageModule enum. For example: reorderedHomepageModules = [HomepageModule.MyLibrary, HomepageModule.Watchlist]

Note: The classic (V1) and Modular (V2) home page experiences are deprecated. This attribute applies to V3 (ModularWithStylingChanges) and V4 (Focused) home page experiences.

Supported embed types: AppEmbed

import { HomepageModule } from '@thoughtspot/visual-embed-sdk';

const embed = new AppEmbed('#tsEmbed', {
   ...//V3 navigation and home page experience attributes
   reorderedHomepageModules:[HomepageModule.Favorite,HomepageModule.MyLibrary],
   //... other embed view configuration attributes
})

runtimeFiltersπŸ”—

runtimeFilters: RuntimeFilter[] Optional

Version : SDK: 1.9.4 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw

The list of runtime filters to apply to a search Answer, visualization, or Liveboard.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   runtimeFilters: [
          {
            columnName: 'value',
             operator: RuntimeFilterOp.EQ,
            values: ['string' | 123 | true],
          },
      ],
})

runtimeParametersπŸ”—

runtimeParameters: RuntimeParameter[] Optional

Version : SDK: 1.25.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw

The list of parameter overrides to apply to a search Answer, visualization, or Liveboard.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   runtimeParameters: [
    {
      name: 'value',
      value: 'string' | 123 | true,
    },
  ]
})

shouldBypassPayloadValidationπŸ”—

shouldBypassPayloadValidation: boolean Optional

Version : SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl

This flag skips payload validation so events can be processed even if the payload is old, incomplete, or from a trusted system.

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   shouldBypassPayloadValidation:true,
})

showAlertsπŸ”—

showAlerts: boolean Optional

Version : SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw

Show alert messages and toast messages in the embed. Supported in all embed types.

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   showAlerts:true,
})

showLiveboardDescriptionπŸ”—

showLiveboardDescription: boolean Optional

Version : SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl

Show or hide Liveboard description

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   showLiveboardDescription:true,
})

showLiveboardReverifyBannerπŸ”—

showLiveboardReverifyBanner: boolean Optional

Version : SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl

This flag can be used to show or hide the re-verify banner on the Liveboard compact header

Supported embed types: AppEmbed, LiveboardEmbed

default : true

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   showLiveboardReverifyBanner: true,
})

showLiveboardTitleπŸ”—

showLiveboardTitle: boolean Optional

Version : SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl

Show or hide Liveboard title

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   showLiveboardTitle:true,
})

showLiveboardVerifiedBadgeπŸ”—

showLiveboardVerifiedBadge: boolean Optional

Version : SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl

This flag can be used to show or hide the Liveboard verified icon in the compact header.

Supported embed types: AppEmbed, LiveboardEmbed

default : true

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   showLiveboardVerifiedBadge: true,
})

showMaskedFilterChipπŸ”—

showMaskedFilterChip: boolean Optional

Version : SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl

Show or hide masked filter chips

Supported embed types: AppEmbed, LiveboardEmbed

default : false

// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   showMaskedFilterChip: true,
})

showPrimaryNavbarπŸ”—

showPrimaryNavbar: boolean Optional

Version : SDK: 1.2.0 | ThoughtSpot: 8.4.0.cl

If true, the top navigation bar within the ThoughtSpot app is displayed. By default, the navigation bar is hidden. This flag also controls the homepage left navigation bar.

Supported embed types: AppEmbed

default : true

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   showPrimaryNavbar:true,
})

showSpotterRadianceπŸ”—

showSpotterRadiance: boolean Optional

Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl

showSpotterRadiance : Controls the radiance on the Spotter page.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... //other embed view config
   showSpotterRadiance : true,
})

spotterChatConfigπŸ”—

spotterChatConfig: SpotterChatViewConfig Optional

Version : SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl

Configuration for customizing Spotter chat UI branding in tool response cards.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... //other embed view config
   spotterChatConfig: {
       hideToolResponseCardBranding: true,
       toolResponseCardBrandingLabel: 'MyBrand',
   },
})

spotterDataSourcesπŸ”—

spotterDataSources: string[] Optional

Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.10.0.cl

Sets the default data sources (Models) for the Spotter experience shown on the home page of the full app embed. Accepts a list of Model GUIDs to preselect the data sources available to Spotter, or the literal 'auto_mode' sentinel to load Spotter with the "Auto" model selected by default. This is consistent with how worksheetId: 'auto_mode' enables Auto mode in SpotterEmbed.

Note: If 'auto_mode' is included alongside one or more Model GUIDs, 'auto_mode' takes precedence and is selected by default.

Note: 'auto_mode' requires the Spotter 3 experience with data source discovery enabled on your instance, and a Spotter-enabled home page (for example, discoveryExperience.homePage: HomePage.Focused).

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   discoveryExperience: { homePage: HomePage.Focused },
   spotterDataSources: ['model-guid-1', 'model-guid-2'], // or ['auto_mode']
})

spotterExperienceVersionπŸ”—

spotterExperienceVersion: SPOTTER_2026_11 Optional

Version : SDK: 1.53.0 | ThoughtSpot Cloud: 26.11.0.cl

The Spotter experience version to load for the Spotter surface shown within this embed.

const embed = new AppEmbed('#tsEmbed', {
   ... // other options
   spotterExperienceVersion: SpotterExperienceVersion.SPOTTER_2026_11,
});

spotterShareConversationConfigπŸ”—

spotterShareConversationConfig: SpotterShareConversationConfig Optional

Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl

Configuration for the Spotter conversation sharing feature.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... //other embed view config
   spotterShareConversationConfig: {
       enableShareConversation: true,
   },
})

spotterSidebarConfigπŸ”—

spotterSidebarConfig: SpotterSidebarViewConfig Optional

Version : SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl

Configuration for the Spotter sidebar UI customization. Only applicable when navigating to Spotter within the app.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   // Deprecated standalone flag (backward compatibility)
   enablePastConversationsSidebar: false,
   // Recommended config; this value takes precedence
   spotterSidebarConfig: {
       enablePastConversationsSidebar: true,
       spotterSidebarTitle: 'My Conversations',
       // Opt in to pin/unpin conversations in embedded Spotter
       spotterChatPinConfig: {
           enabled: true,
       },
   },
})

spotterVizπŸ”—

spotterViz: SpotterVizConfig Optional

Version : SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl

Configuration for the SpotterViz interface shown on the Liveboard. Customize the brand name, description, chat input placeholder, starter prompts, and visibility of starter prompts in the SpotterViz panel.

Supported embed types: AppEmbed, LiveboardEmbed

const embed = new AppEmbed('#embed-container', {
   ... // other options
   spotterViz: {
       brandName: 'MyBrand',
       brandHeadline: 'Hi, there! I\'m',
       description: 'Ask questions about your data',
       inputChatPlaceholder: 'Ask a question...',
       hideStarterPrompts: false,
       customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
       // The options below require SDK: 1.51.0
       loaderHeadline: 'Crunching the numbers...',
       loaderTips: [
           { label: 'Tip', text: 'try asking about revenue by region' },
           { label: 'Tip', text: 'use natural language' },
       ],
       liveboardBrandName: 'Reports',
       spotterBrandName: 'Analyst',
       insightTileBrandName: 'Insight card',
       insightTileViewPlanLabel: 'View plan',
       insightTileLoaderText: 'Generating insight',
   },
})

tagπŸ”—

tag: string Optional

Version : SDK: 1.1.0 | ThoughtSpot: 9.4.0.cl

This puts a filter tag on the application. All metadata lists in the application, such as Liveboards and answers, would be filtered by this tag.

Supported embed types: AppEmbed

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   tag:'value',
})

updatedSpotterChatPromptπŸ”—

updatedSpotterChatPrompt: boolean Optional

Version : SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl

updatedSpotterChatPrompt : Controls the updated spotter chat prompt.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... //other embed view config
   updatedSpotterChatPrompt : true,
})

updatedSpotterExperienceπŸ”—

updatedSpotterExperience: boolean Optional

Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl

updatedSpotterExperience : Controls the updated Spotter experience.

Supported embed types: AppEmbed

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... //other embed view config
   updatedSpotterExperience : true,
})

useHostEventsV2πŸ”—

useHostEventsV2: boolean Optional

Version : SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl

Flag to use host events v2. This is used to enable the new host events v2 API.

default : false

const embed = new AppEmbed('#tsEmbed', {
   ... // other embed view config
   useHostEventsV2:true,
})

visibleActionsπŸ”—

visibleActions: Action[] Optional

Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw

The list of actions to display from the primary menu, more menu (…​), and the contextual menu. These will be only actions that are visible to the user. Use this as an allowlist β€” only the actions listed here will be shown. All other actions will be hidden. Use either this or hiddenActions, not both.

Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
   ... // other embed view config
   visibleActions: [Action.Download, Action.ExportTML],
});

visualOverridesπŸ”—

visualOverrides: VisualizationOverrides Optional

Version : SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl

Visual overrides to customize the chart or table properties.

Β© 2026 ThoughtSpot Inc. All Rights Reserved.