SpotterEmbedViewConfig
- Index
- Properties
- additionalFlags
- customActions
- customizations
- dataPanelV2
- dataSources
- defaultQueryMode
- disableRedirectionLinksInNewTab
- disableSourceSelection
- disabledActionReason
- disabledActions
- doNotTrackPreRenderSize
- enableLinkOverridesV2
- enablePastConversationsSidebar
- enableStopAnswerGenerationEmbed
- enableV2Shell_experimental
- excludeRuntimeFiltersfromURL
- excludeRuntimeParametersfromURL
- exposeTranslationIDs
- frameParams
- hiddenActions
- hideSampleQuestions
- hideSourceSelection
- insertAsSibling
- interceptTimeout
- interceptUrls
- isOnBeforeGetVizDataInterceptEnabled
- linkOverride
- locale
- overrideHistoryState
- overrideOrgId
- preRenderConfig
- preRenderContainer
- preRenderId
- refreshAuthTokenOnNearExpiry
- runtimeFilters
- runtimeParameters
- searchOptions
- sharedConversationId
- shouldBypassPayloadValidation
- showAlerts
- showSpotterLimitations
- showSpotterRadiance
- spotterAnalystConfig
- spotterChatConfig
- spotterShareConversationConfig
- spotterSidebarConfig
- updatedSpotterChatPrompt
- updatedSpotterExperience
- useHostEventsV2
- visibleActions
- worksheetId
The configuration for the embedded spotterEmbed options.
Indexπ
Propertiesπ
additionalFlagsπ
additionalFlags: {[key: string ] : string | number | boolean}
Optional
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
Version : SDK: 1.9.0 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
// 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'
},
});
customActionsπ
customActions: CustomAction[]
Optional
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
Version : SDK: 1.43.0 | ThoughtSpot: 10.14.0.cl
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
Dynamic CSSUrl and customCSS to be injected in the loaded application.
You would also need to set style-src in the CSP settings.
Version : SDK: 1.17.2 | ThoughtSpot: 8.4.1.sw, 8.4.0.cl
default : ''
dataPanelV2π
dataPanelV2: boolean
Optional
Flag to control Data panel experience
Supported embed types: SageEmbed, 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,
})
dataSourcesπ
dataSources: string[]
Optional
The array of data source GUIDs to set on load. Spotter uses these GUIDs to query data and generate Answers. dataSources is preferred over worksheetId if both are provided. The feature is currently behind a feature flag.
Supported embed types: SpotterEmbed
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
// ...other embed view config
dataSources: ['id-2345', 'id-2345'],
});
defaultQueryModeπ
defaultQueryMode: SpotterQueryMode
Optional
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.
Supported embed types: SpotterEmbed, AppEmbed
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
default : SpotterQueryMode.FAST_SEARCH
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
defaultQueryMode: SpotterQueryMode.RESEARCH,
})
disableRedirectionLinksInNewTabπ
disableRedirectionLinksInNewTab: boolean
Optional
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
SpotterEmbedViewConfig.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
Version : SDK: 1.32.1 | ThoughtSpot: 10.3.0.cl
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
disableRedirectionLinksInNewTab: true,
});
disableSourceSelectionπ
disableSourceSelection: boolean
Optional
disableSourceSelection : Disables data source selection but still display the selected data source.
Supported embed types: SpotterEmbed
Version : SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
disableSourceSelection : true,
})
disabledActionReasonπ
disabledActionReason: string
Optional
The tooltip to display for disabled actions.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
// 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
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 SpotterEmbedViewConfig.hiddenActions instead.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
// 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],
});
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.
Version : SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
Deprecated : Use {@link PreRenderConfig.doNotTrackSize} via preRenderConfig instead.
default : false
// Disable tracking PreRender size in the configuration
const config = {
doNotTrackPreRenderSize: true,
};
// Instantiate an object with the configuration
const myComponent = new MyComponent(config);
enableLinkOverridesV2π
enableLinkOverridesV2: boolean
Optional
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 SpotterEmbedViewConfig.linkOverride alongside this flag for backward compatibility with older ThoughtSpot versions.
Note: This flag is ignored when
SpotterEmbedViewConfig.disableRedirectionLinksInNewTab is true.
Supported embed types: AppEmbed, LiveboardEmbed,
SearchEmbed, SpotterAgentEmbed,
SpotterEmbed, SearchBarEmbed
Version : SDK: 1.46.0 | ThoughtSpot: 26.2.0.cl
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed view config
enableLinkOverridesV2: true,
});
embed.on(EmbedEvent.DialogOpen, (payload) => {
console.log('Link clicked:', payload);
});
enablePastConversationsSidebarπ
enablePastConversationsSidebar: boolean
Optional
Controls the visibility of the past conversations sidebar.
Supported embed types: SpotterEmbed
Version : SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
Deprecated : from SDK: 1.47.0 | ThoughtSpot: 26.4.0.clUse spotterSidebarConfig.enablePastConversationsSidebar.
default : false
enableStopAnswerGenerationEmbedπ
enableStopAnswerGenerationEmbed: boolean
Optional
Enables the stop answer generation button in the Spotter embed UI, allowing users to interrupt an ongoing answer generation.
Supported embed types: SpotterEmbed
Version : SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
default : false
enableV2Shell_experimentalπ
enableV2Shell_experimental: boolean
Optional
Enable the V2 shell. This can provide performance benefits due to a lighter-weight shell.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.31.2 | ThoughtSpot: 10.0.0.cl
// 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
Flag to control whether runtime filters should be included in the URL. If true, filters will be passed via app initialization payload (default behavior from SDK 1.45.0). If false/undefined, filters are appended to the iframe URL instead. (default behavior before SDK 1.45.0).
Supported embed types: SpotterEmbed
Version : SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
default : true
excludeRuntimeParametersfromURLπ
excludeRuntimeParametersfromURL: boolean
Optional
Flag to control whether runtime parameters should be included in the URL. If true, parameters will be passed via app initialization payload (default behavior from SDK 1.45.0). If false/undefined, parameters are appended to the iframe URL instead (default behavior before SDK 1.45.0).
Supported embed types: SpotterEmbed
Version : SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
default : true
exposeTranslationIDsπ
exposeTranslationIDs: boolean
Optional
This flag can be used to expose translation IDs on the embedded app.
Version : SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
default : false
frameParamsπ
frameParams: FrameParams
Optional
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
Version : SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
// 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%',
},
})
hiddenActionsπ
hiddenActions: Action[]
Optional
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 SpotterEmbedViewConfig.disabledActions instead.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
// 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],
});
hideSampleQuestionsπ
hideSampleQuestions: boolean
Optional
hideSampleQuestions : Hide sample questions on the initial screen of the conversation.
Supported embed types: SpotterEmbed
Version : SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
hideSampleQuestions : true,
})
hideSourceSelectionπ
hideSourceSelection: boolean
Optional
hideSourceSelection : Hide data source selection
Supported embed types: SpotterEmbed
Version : SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
hideSourceSelection : true,
})
insertAsSiblingπ
insertAsSibling: boolean
Optional
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
Version : SDK: 1.2.0 | ThoughtSpot: 9.0.0.cl, 9.0.0.sw
// 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
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.
Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
const embed = new LiveboardEmbed('#embed', {
...viewConfig,
interceptUrls: [InterceptedApiType.ALL],
interceptTimeout: 1000,
})
interceptUrlsπ
interceptUrls: string[]
Optional
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.
Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
const embed = new LiveboardEmbed('#embed', {
...viewConfig,
interceptUrls: [InterceptedApiType.LiveboardData],
})
isOnBeforeGetVizDataInterceptEnabledπ
isOnBeforeGetVizDataInterceptEnabled: boolean
Optional
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
Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
linkOverrideπ
linkOverride: boolean
Optional
Flag to override the Open Link in New Tab context menu option.
Note: Setting this flag implicitly enables SpotterEmbedViewConfig.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
SpotterEmbedViewConfig.disableRedirectionLinksInNewTab is true.
Supported embed types: AppEmbed, LiveboardEmbed,
SearchEmbed, SpotterAgentEmbed,
SpotterEmbed, SearchBarEmbed
Version : SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed view config
linkOverride: true,
})
localeπ
locale: string
Optional
The locale settings to apply to the embedded view.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.9.4 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
locale:'en',
})
overrideHistoryStateπ
overrideHistoryState: boolean
Optional
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
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
// 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
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
Version : SDK: 1.35.0 | ThoughtSpot: 10.5.0.cl
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
overrideOrgId: 142536,
});
preRenderConfigπ
preRenderConfig: PreRenderConfig
Optional
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.
Version : SDK: 1.52.0
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.
Version : SDK: 1.49.2 | ThoughtSpot: *
Deprecated : Use {@link PreRenderConfig.containerSelector} via preRenderConfig instead.
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
Version : SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
Deprecated : Use {@link PreRenderConfig.id} via preRenderConfig instead.
// 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();
refreshAuthTokenOnNearExpiryπ
refreshAuthTokenOnNearExpiry: boolean
Optional
Refresh the auth token when the token is near expiry.
Version : SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
default : true
const embed = new AppEmbed('#tsEmbed', {
... // other embed view config
refreshAuthTokenOnNearExpiry: true,
})
runtimeFiltersπ
runtimeFilters: RuntimeFilter[]
Optional
The list of runtime filters to apply to a search Answer, visualization, or Liveboard.
Supported embed types: SpotterEmbed
Version : SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
// other embed view config
runtimeFilters: [
{
columnName: 'color',
operator: RuntimeFilterOp.EQ,
values: ['red'],
},
],
})
runtimeParametersπ
runtimeParameters: RuntimeParameter[]
Optional
The list of runtime parameters to apply to the conversation.
Supported embed types: SpotterEmbed
Version : SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
// other embed view config
runtimeParameters: [
{
name: 'Integer Param',
value: 10,
},
],
})
searchOptionsπ
searchOptions: SearchOptions
Optional
Ability to pass a starting search query to the conversation.
sharedConversationIdπ
sharedConversationId: string
Optional
The ID of a shared Spotter conversation to open directly in the read-only
reader view. Use this to land a share recipient in the shared conversation
when they open a host-configured CONVERSATION_URL share link: read the
{conversation-id} from your page URL and pass it here.
Requires the Spotter conversation-sharing feature to be enabled
(spotterShareConversationConfig.enableShareConversation). The recipient
must be an authorized sharee β the server returns access-denied otherwise.
Supported embed types: SpotterEmbed
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
const convId = new URLSearchParams(window.location.search).get('conversation-id');
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
sharedConversationId: convId,
})
shouldBypassPayloadValidationπ
shouldBypassPayloadValidation: boolean
Optional
This flag skips payload validation so events can be processed even if the payload is old, incomplete, or from a trusted system.
Version : SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
default : false
const embed = new AppEmbed('#tsEmbed', {
... // other embed view config
shouldBypassPayloadValidation:true,
})
showAlertsπ
showAlerts: boolean
Optional
Show alert messages and toast messages in the embed. Supported in all embed types.
Version : SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
const embed = new AppEmbed('#tsEmbed', {
... // other embed view config
showAlerts:true,
})
showSpotterLimitationsπ
showSpotterLimitations: boolean
Optional
showSpotterLimitations : show limitation text of the spotter underneath the chat input. default is false.
Supported embed types: SpotterEmbed
Version : SDK: 1.36.0 | ThoughtSpot: 10.5.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
showSpotterLimitations : true,
})
showSpotterRadianceπ
showSpotterRadiance: boolean
Optional
showSpotterRadiance : Controls the radiance on the Spotter page.
Supported embed types: SpotterEmbed
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
default : false
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
showSpotterRadiance : true,
})
spotterAnalystConfigπ
spotterAnalystConfig: SpotterAnalystConfig
Optional
Configuration for the Spotter Analyst experience.
Supported embed types: SpotterEmbed
Version : SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
spotterAnalystConfig: {
analystId: 'analyst-id-1234',
},
})
spotterChatConfigπ
spotterChatConfig: SpotterChatViewConfig
Optional
Configuration for customizing Spotter chat UI branding in tool response cards.
Supported embed types: SpotterEmbed
Version : SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
spotterChatConfig: {
hideToolResponseCardBranding: true,
toolResponseCardBrandingLabel: 'MyBrand',
},
})
spotterShareConversationConfigπ
spotterShareConversationConfig: SpotterShareConversationConfig
Optional
Configuration for the Spotter conversation sharing feature.
Supported embed types: SpotterEmbed, AppEmbed
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
spotterShareConversationConfig: {
enableShareConversation: true,
},
})
spotterSidebarConfigπ
spotterSidebarConfig: SpotterSidebarViewConfig
Optional
Configuration for the Spotter sidebar UI customization.
Supported embed types: SpotterEmbed, AppEmbed
Version : SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
const embed = new SpotterEmbed('#tsEmbed', {
worksheetId: 'worksheet-id',
// Deprecated standalone flag (backward compatibility)
enablePastConversationsSidebar: false,
// Recommended config; this value takes precedence
spotterSidebarConfig: {
enablePastConversationsSidebar: true,
spotterSidebarTitle: 'My Conversations',
spotterSidebarDefaultExpanded: true,
},
})
updatedSpotterChatPromptπ
updatedSpotterChatPrompt: boolean
Optional
updatedSpotterChatPrompt : Controls the updated spotter chat prompt.
Supported embed types: SpotterEmbed
Version : SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
default : false
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
updatedSpotterChatPrompt : true,
})
updatedSpotterExperienceπ
updatedSpotterExperience: boolean
Optional
updatedSpotterExperience : Controls the updated Spotter experience.
Supported embed types: SpotterEmbed
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
default : false
const embed = new SpotterEmbed('#tsEmbed', {
... //other embed view config
updatedSpotterExperience : true,
})
useHostEventsV2π
useHostEventsV2: boolean
Optional
Flag to use host events v2. This is used to enable the new host events v2 API.
Version : SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
default : false
const embed = new AppEmbed('#tsEmbed', {
... // other embed view config
useHostEventsV2:true,
})
visibleActionsπ
visibleActions: Action[]
Optional
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 SpotterEmbedViewConfig.hiddenActions, not both.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
// 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],
});
worksheetIdπ
worksheetId: string
Optional
The ID of the data source object. For example, Model, View, or Table. Spotter uses this object to query data and generate Answers. This field is optional. If not provided, Spotter loads using the previously selected user data source.