Spaces & chat analysis
A Space brings together datasets, business definitions, conversation history, and a default tier — it's where you do analysis.
Create a Space
- Create a new Space;
- Attach one or more datasets (create them first under Datasets);
- Write business notes: table relations, metric definitions, field meanings, common filters, etc.
Business notes drive answer quality
Before generating SQL, the Agent consults your business notes to align "business language" with "data tables". For example, writing "in the orders table, status = paid means paid; GMV is the sum of paid order amounts" makes answers far more accurate.
Asking and following up
Just ask in natural language. A single answer usually includes:
- Reasoning: how the Agent understands the question and picks data and fields;
- SQL: the actual query, so you can verify it;
- Result table: the returned data;
- Chart: auto-generated from the question and result (see Dashboards & sharing).
Conversations keep context, so you can follow up on the previous result:
You: daily GMV over the last 7 days
Agent: (shows a daily GMV line chart)
You: now break it down by channel
Agent: (builds on the previous turn, querying by channel + day)If a result is wrong, just say so (e.g. "exclude refunds from the amount") and the Agent re-queries.
Choosing a tier
You can pick a tier per conversation:
- Lite: simple aggregations and detail queries — fastest and cheapest;
- Standard: the recommended default for everyday analysis, balancing quality and cost;
- Flagship: complex multi-table reasoning, long context, and accuracy-critical cases.
Set a default tier per Space, or switch temporarily in a single conversation. See Tiers & pricing.
Ontology: the space's business model
Data Spaces have an Ontology page (next to Space instructions). One click on Build mines your dataset schemas, sample data and query history:
- Entity graph (the heart of the page): business objects (customer, order, …) with synonyms, connected by relationships, each mapped to the key columns that identify it across tables — click an entity to see its mappings, edit or correct it.
- Auto-discovered instructions: join relationships found by the build are written straight into the Space-instructions Joins tab with an auto-discovered badge — one place to maintain everything; edit or delete them like any manual entry (your manual entries are never touched by rebuilds).
- Enum values: profiled value lists land on the dataset's columns and ride the agent's catalog, so user wording maps to stored codes.
- Review: risky findings (mined verified queries, uncertain joins, metric expressions) wait for your approval; accepted items join the instruction tabs, rejections are remembered permanently (restorable).
- Verified queries: question–SQL pairs marked verified in the SQL-queries tab; matching questions reuse them as templates and a near-exact match runs them as-is.
- Injection preview: see exactly the generated context the agent receives, section by section.
- On/off switch: turning Ontology off stops the entity block and verified-query/value retrieval from being injected; instruction entries are unaffected.
Space instructions: text and the semantic layer
Data Spaces have a Space-instructions page with four tabs. Everything you configure there is injected into the agent's context for every question in that Space:
- Text: free-form guidance (business background, preferences, caveats).
- Joins: declare relationships between tables (left/right table, fields, cardinality). The agent uses them to join correctly. If the two tables live in different data sources (e.g. a log store and a data warehouse), the agent is told to query each side separately and align the results instead of writing a literal cross-source JOIN.
- SQL expressions: named business definitions (filters, measures, dimensions) with synonyms — when a question mentions the name or a synonym, the agent uses your definition instead of guessing.
- SQL queries: reference queries and functions; when a question matches one's intent, the agent adapts it (parameters, time range) rather than writing SQL from scratch.
Saved entries can be edited in place: click the pencil icon on a Join or SQL-expression row, or click a reference-query row to reopen it in the editor.
Stopping an answer and queueing questions
While an answer is streaming, the composer gives you three controls:
- Stop: the send button turns into a stop button — click it to halt the current answer. Whatever has been generated so far stays in the conversation.
- Queue: type your next question and press Enter (or click the queue button) — it joins a queue shown above the composer and is sent automatically, in order, as soon as the current answer finishes. Pressing Stop parks the queue; it resumes when you send something.
- Send next: each queued question has a send-next action that promotes it to the front — it fires the moment the current answer completes, without interrupting it. When nothing is streaming, the same action sends the question immediately. Queued questions can also be removed.
Asking in a group
Once IM is connected, you can @mention the bot in a group to ask, and the answer returns to the group. See IM integrations.
Invoking a skill explicitly in a general space
Type / in a general space's composer to open the list of skills mounted on the space. Picking one adds a violet skill tag to the input, and that turn runs explicitly with the chosen skill (Enter picks the top match; Backspace or the × removes the tag).
Mounting data in a general space
General assistant spaces can mount datasets too: click "Data" above the composer to pick tables, and the assistant gains a query_data capability (SQL runs server-side per dataset engine, up to 50 rows returned). Good for mixed "work + look things up" sessions; for the full analysis experience (charts, reports, trusted answers) use a data space.