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.doNotTrackPreRenderSize} 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
The timeout for the intercept, default is 30000ms the api will error out if the timeout is reached
Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
const embed = new LiveboardEmbed('#embed', {
...viewConfig,
enableApiIntercept: true,
interceptUrls: [InterceptedApiType.ALL],
interceptTimeout: 1000,
})
interceptUrls🔗
interceptUrls: string[]
Optional
This allows to intercept the urls passed, once intercepted the api will only run based on the response from the responder of ApiIntercept event.
Version : SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
const embed = new LiveboardEmbed('#embed', {
...viewConfig,
enableApiIntercept: true,
interceptUrls: [InterceptedApiType.LiveboardData],
})
isOnBeforeGetVizDataInterceptEnabled🔗
isOnBeforeGetVizDataInterceptEnabled: boolean
Optional
Flag that allows using EmbedEvent.OnBeforeGetVizDataIntercept.
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.
All properties here mirror the top-level preRender properties on
BaseViewConfig and take precedence over them 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: {
preRenderId: '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.preRenderContainer} 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.preRenderId} 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.