LLMs.txt directory

How Spotter uses context

Every Spotter answer is built from four kinds of context: instructions that set behavior, data model semantics that give the data meaning, memory that establishes how your business answers, and external context from the sources your admin has connected. This page shows what Spotter fetches and how it turns it into an answer.

What Spotter assembles before it answers

Three tiers: the question flows into the Spotter agent which fetches
Kind Written as Answers the question When it reaches the agent

Behavior

Spotter instructions, Analyst instructions

How should the agent act, for everyone? Tone, format defaults, what to decline, what to always add

Always, on every answer

Meaning

Column synonyms, column AI Context, other Model metadata

What is this column, and how are its values written?

Always in scope; used to pick the right columns for the words in the question

Logic

Data model memory, personal memory

How does this business answer this question? Definitions, filters, steps, and what Spotter knows about you

Fetched by relevance, per question

Knowledge

Connected sources such as Slack, Confluence, SharePoint

What does this question need that lives outside ThoughtSpot?

Searched by relevance, like memory, across the sources an admin has connected

Memory learns from Liveboards and conversations. Row-level and column-level security sit underneath all four kinds and are never context.

Walkthrough: One question, step by step

speed
ReadyPress Play to watch Spotter assemble one answerOr step through with Next. Left and right arrow keys work while this panel is focused.
PN
Priya Nair, Head of Customer Success
What was our churn last quarter?
waiting
Spotteragent
Spotter instructionsalways applied
  • Neutral, concise tone. Headline number first. Prefer charts for trends.
  • End every revenue or churn answer with "Figures unaudited."
  • Never answer individual compensation questions. Redirect to HR.
Data model semanticssynonyms · AI Context
  • arr_changeARR movement · delta ARRSigned monthly ARR change per account, USD. Negative means lost revenue.
  • change_typemovement typeOne of new, expansion, downgrade, churn.
  • close_dateeffective dateMonth the ARR change took effect.
  • fiscal_quarterquarter · FQFiscal quarter label, e.g. Q2 FY26. Fiscal year starts February.
  • regiongeo · territorySales region: AMER, EMEA, APAC.
  • pipeline_stagedeal stageOpen-opportunity stage from CRM.
  • account_idcustomer · logoUnique customer account.
  • product_skuproduct lineProduct purchased on the contract.
  • account_namecustomer nameCustomer display name.
  • nps_scoresatisfactionLatest NPS survey score per account.
  • support_tickets_openopen ticketsOpen support tickets at month end.
  • seats_licensedlicenses · seatsContracted seats per account.
  • csm_ownerCSMCustomer success manager assigned to the account.
Spotter memorysearched per question
personal profile
  • Priya Nair, Head of Customer Success, EMEA.
  • Focus this quarter: renewals and churn prevention for enterprise accounts.
personal preferences
  • Show trends as a chart, not a table.
  • When I say "my accounts", filter to EMEA enterprise accounts.
  • For pipeline questions, use the Sales data model, not Finance.
data model memory
  • Churn = churned ARR plus downgrades: arr_change where change_type in (churn, downgrade).
  • Quarterly churn view: filter close_date to the fiscal quarter, group by month, sum arr_change.
  • Expansion excludes price uplifts under 2%.
  • "Logo loss" = count of accounts with change_type = churn.
External contextover MCP · searched per question
  • confluenceQ2 FY26 renewal calendar: enterprise renewals moved to mid-quarter.
  • slack#cs-emea weekly churn digest.
  • sharepointCS playbook 2025.
Prompt
Semantic validationrow and column security · deterministic
  • Columns and filters in the plan checked against the data model
  • Row-level and column-level security applied for Priya
  • Plan is fixed before any SQL exists
Deterministic query plangenerated by the semantic layer, not the LLM
SELECT month(close_date) AS month,
  SUM(CASE WHEN change_type = 'churn'
    THEN -arr_change END) AS churned_arr,
  SUM(CASE WHEN change_type = 'downgrade'
    THEN -arr_change END) AS downgrade_arr,
  COUNT(DISTINCT CASE WHEN change_type
    = 'churn' THEN account_id END)
    AS logos_lost
FROM arr_changes
WHERE region = 'EMEA'
  AND fiscal_quarter = 'Q2 FY26'
  AND change_type IN ('churn','downgrade')
GROUP BY 1 ORDER BY 1;
Warehouseruns the query
Raw datareturned by the warehouse
monthchurned_arrdowngrade_arrlogos_lost
2026-0296000280003
2026-03118000310004
2026-04104000350003
PN
Delivered to Priya, as a chart
Spotter
EMEA churn in Q2 FY26 (Feb to Apr) was $412K, 3.1% of opening ARR.
Churned ARRDowngrades
0 80K 160K Feb · churned $96K · downgrades $28K · total $124K · 3 logos $124K Feb 3 logos Mar · churned $118K · downgrades $31K · total $149K · 4 logos $149K Mar 4 logos Apr · churned $104K · downgrades $35K · total $139K · 3 logos $139K Apr 3 logos

Churn includes downgrades, per your team's definition. March was the heaviest month: four logos and $149K.

Ten logos lost in total, all at the mid-quarter renewals set out in the Q2 renewal calendar. Say "all regions" for the global figure. Figures unaudited.

Next