How do I embed an AI analyst that chooses the data source on its own?

Embed Spotter, ThoughtSpot's AI analyst, with worksheetId: 'auto_mode' on Spotter 3, and it picks the data source for each question. Or pin a Spotter Analyst that carries its own data sources and instructions. Auto mode is off by default on ThoughtSpot Embedded instances, so ask ThoughtSpot Support to turn it on first.

Checked against Visual Embed SDK 1.53.1 and the ThoughtSpot Cloud 26.10.0.cl documentation, October 2026.

An AI analyst answers plain-language questions about your data with charts and tables. Spotter is ThoughtSpot's AI analyst. In Auto mode on Spotter 3, it picks the data model for each question itself, within each user's permissions, so your embed code doesn't pass a data source ID.

What should you check when you compare tools?

An AI analyst in your product should answer across your data without your code choosing a table per question, and it must follow each user's permissions. With Spotter 3, "All existing security rules, including column-level and row-level security, are strictly enforced", and data a user can't see "is never sent to the Large Language Model (LLM)" (Spotter data handling).

Ask any vendor:

  • Does the AI assistant work inside the embed, for my external users?

  • Does it follow the same row- and column-level security as the dashboards?

  • What goes to the LLM: whole tables, or only what the user is allowed to see?

Why do I have to pass a data source today?

"If you are embedding the Spotter Classic or Spotter 2 experience, the data source ID is required" (embed Spotter). Spotter 3, from ThoughtSpot Cloud 26.2.0.cl, can choose data sources itself.

Three alternatives to one fixed data source

Option

What you set

What it needs

Auto mode

worksheetId: 'auto_mode'

Spotter 3, SDK 1.45.0+, Auto mode enabled on the instance by ThoughtSpot Support

A pinned Spotter Analyst

spotterAnalystConfig: { analystId }

SDK 1.53.0+, ThoughtSpot Cloud 26.10.0.cl+, an Analyst configured with its data sources

Several set sources

dataSources: ['<GUID>', '<GUID>']

Spotter 3, SDK 1.52.0+, ThoughtSpot Cloud 26.9.0.cl+, a feature flag on the instance

Sources: feature availability in embed, SpotterEmbedViewConfig, embed a Spotter Analyst.

How do I fix it?

Auto mode:

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

const spotter = new SpotterEmbed(document.getElementById('spotter'), {
  frameParams: { width: '100%', height: '100%' },
  worksheetId: 'auto_mode',
  updatedSpotterChatPrompt: true, // Spotter 3 chat interface, SDK 1.45.0+
});
spotter.render();

In TypeScript, SpotterEmbed expects an HTMLElement, not a selector string.

A pinned Analyst, one governed agent with its own data sources and instructions:

import { SpotterEmbed, Action } from '@thoughtspot/visual-embed-sdk';

const spotter = new SpotterEmbed(document.getElementById('spotter'), {
  frameParams: { width: '100%', height: '100%' },
  spotterAnalystConfig: { analystId: '<ANALYST_GUID>' },
  hideSourceSelection: true,
  // Stop users switching to another Analyst or to the default Spotter
  hiddenActions: [
    Action.SpotterAnalystSidebar,
    Action.SpotterDefaultAnalyst,
    Action.SpotterAnalystList,
  ],
});
spotter.render();

Building your own chat UI? Make the same choice when you create a conversation through the REST API. From 26.10.0.cl you can pass analyst_identifier instead of metadata_context (REST changelog).

POST /api/rest/2.0/ai/agent/conversation/create
{
  "metadata_context": { "type": "AUTO_MODE" },
  "conversation_settings": { "enable_save_chat": true }
}

Hiding the picker isn't security. "Hiding a control removes it from the interface, but it doesn't restrict what users can do" (embed a Spotter Analyst). Control what each user can query with sharing and row-level security (Blogs 3a and 3b).

How do I check it worked?

Ask two questions whose data lives in different Models. Spotter should answer both without your code passing a GUID.

Still failing?

  • Spotter is blank. Check the allowlists (Blog 2) and that users have Can use Spotter. The product docs add Can download data for Spotter 3 (Spotter versions).

  • You're on Spotter Classic or Spotter 2. Auto mode isn't available. Pass a Model GUID.

  • Spotter picks the wrong source or column. Improve the Model's names and descriptions (Blog 8).

How do I explain this to my team?

Who

What they'll ask

What you can tell them

Product lead

What do our users get?

A chat in our app where they ask questions in plain language and get charts and tables back, instead of filing report requests.

Security

What does the LLM see?

Spotter "never sends entire tables or databases to LLM providers", only "the relevant, filtered query results necessary to answer".

Proof you can forward: "Our experience was using Spotter and then embedding it in our product; we were not talking about months of work. We were talking about weeks." Aria Moshari, Director of Software Engineering, Verisk (How Verisk scaled embedded analytics).

How can I try this before I commit?

Start a free ThoughtSpot Embedded trial.

Related