BodylessConversationViewConfig

BodylessConversationViewConfig

Configuration for conversation options. Use SpotterAgentEmbedViewConfig instead

Deprecated : from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl

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, SageEmbed, 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, SageEmbed, 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 : ''

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.

Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, 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,
});

disabledActionReasonπŸ”—

disabledActionReason: string

Optional

The tooltip to display for disabled actions.

Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, 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. These actions will be disabled for the user. Use this to disable actions.

Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, 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

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.

Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, 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);
});

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, SageEmbed, 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,
});

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, SageEmbed, 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 hide from the embedded view. These actions will be hidden from the user. Use this to hide an action.

Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, 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.Export],
});

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, SageEmbed, 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.DATA],
})

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.

For improved link override handling, use SpotterEmbedViewConfig.enableLinkOverridesV2 instead.

Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, 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, SageEmbed, 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',
})

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, SageEmbed, 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,
});

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, SageEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed

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();

refreshAuthTokenOnNearExpiryπŸ”—

refreshAuthTokenOnNearExpiry: boolean

Optional

Refresh the auth token when the token is near expiry.

Version : SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl

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

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,
})

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 to hide all actions except the ones you want to show.

Use either this or hiddenActions.

Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, 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.Export],
});

worksheetIdπŸ”—

worksheetId: string

The ID of the Model to use for the conversation.

Β© 2026 ThoughtSpot Inc. All Rights Reserved.