Knowi's Agentic BI turns natural language into action. Instead of manually building queries, selecting chart types, and configuring dashboards, you describe what you want and the AI handles it - creating dashboards, generating queries, transforming visualizations, exporting data, and managing reports through conversation.
Agentic BI is available in two ways:
In-Product Agents - AI assistants built into Knowi's dashboard and widget interfaces. See AI Tools for in-product documentation.
MCP Server - Connect external AI tools like Claude, GPT, or Copilot to Knowi via the Model Context Protocol. Your AI assistant operates Knowi programmatically.
Ask natural language questions and get answers with visualizations. The AI finds the right dataset, writes the query, and returns results.
"What were our top 10 customers by revenue last quarter?"
"Show me the trend in support tickets over the past 6 months"
"Which product categories have declining sales?"
Describe the dashboard you want. The AI selects relevant datasets, generates queries, picks appropriate chart types based on the data, and builds a complete dashboard.
"Create a sales performance dashboard with revenue trends, top products, and regional breakdown"
"Build an executive dashboard with KPIs for this quarter"
Create new visualizations or modify existing ones through conversation.
"Make a pie chart of revenue by region"
"Change this to a stacked bar chart"
"Add a date filter to this widget"
Ask for insights and the AI analyzes your data to surface trends, anomalies, and actionable recommendations.
"What trends do you see in this data?"
"What's driving the revenue drop this month?"
"What should I focus on to improve conversions?"
Find dashboards, widgets, datasets, reports, and documents using keyword or semantic search.
"Find dashboards related to customer retention"
"Which datasets contain revenue data?"
Create, schedule, pause, and manage reports and alerts through conversation.
"Email this dashboard to the sales team every Monday at 9 AM"
"Create an alert when revenue drops below $10,000"
"Pause all weekly reports"
Export data and generate shareable URLs without navigating menus.
"Export this widget to Excel"
"Create a shareable URL for this dashboard"
"Export the dashboard to PDF"
When you submit a request, the AI orchestrator analyzes your intent and routes it to the appropriate agent. For complex requests, multiple agents are chained together automatically.
For example, "Create a sales dashboard" triggers:
When a request is ambiguous, the AI asks clarifying questions rather than guessing. The conversation maintains context across multiple turns.
You: "Show me the sales data"
AI: "I found 3 sales datasets: Product Sales, Regional Sales, and Online Sales. Which one would you like to explore?"
You: "Product Sales"
AI: [generates visualization from Product Sales dataset]
The system includes specialized agents for different tasks:
| Agent | What It Does |
|---|---|
| NLP | Converts natural language to SQL queries and executes them |
| Data Analyst | Long-form Q&A on datasets and documents |
| Widget Data Analyst | Analyzes and transforms widget data |
| Create Dashboard | Generates complete dashboards from natural language |
| Create Widget | Creates individual widgets with optimal chart types |
| Update Widget Settings | Modifies chart types, colors, labels, and formatting |
| Create Dataset | Builds datasets by searching datasources and generating queries |
| Search Assets | Searches across dashboards, widgets, datasets, reports, and documents |
| Dashboard Filter | Creates and configures dashboard-level filters |
| Dashboard Settings | Modifies dashboard properties (name, theme, layout) |
| Dashboard Summary | Generates narrative summaries across all widgets |
| Add Widget to Dashboard | Adds an existing widget to a dashboard |
| Widget Layout | Repositions and resizes widgets on the dashboard grid |
| Report Delivery | Delivers dashboards via Email or Webhooks |
| Report Management | Creates, lists, edits, pauses, and deletes scheduled reports |
| Alert Management | Creates, lists, edits, pauses, and deletes data alerts |
| Share Dashboard | Generates shareable URLs for dashboards |
| Data Export | Exports widget or dashboard data to CSV or Excel |
| Recommendation | Generates AI-powered insights and recommendations |
Click the AI Assistant icon in the top-right corner of any dashboard. This opens the Dashboard Agent panel where you can interact with the entire dashboard using natural language.
For detailed instructions, see Using the Dashboard Agent.
Click the AI Assistant icon on any widget. This opens the Widget Agent panel where you can ask questions, transform data, change visualizations, and export results for that specific widget.
For detailed instructions, see Using the Widget Agent.
Connect external AI tools (Claude Code, Claude Desktop, or any MCP-compatible client) to Knowi's MCP server. This gives your AI assistant access to 31 Knowi tools.
For setup instructions, see MCP Server and Claude Code Setup.
Contact your Knowi account manager or email support@knowi.com to enable Agentic AI for your account.
Once enabled, navigate to Settings > User Settings > AI Settings and toggle on AI Agents Access.
*Note: This controls AI Agent functionality for your entire account. Disabling it will disable agentic features for all users.
Control which users can access Agentic BI through role permissions. Navigate to Settings > User Settings > Roles tab. Under the AI category, enable:
For more on roles, see User Roles.
The accuracy of Agentic BI depends almost entirely on how your datasets are configured. The agent does not magically understand your business ? it reads fields, samples values, and follows the conventions you give it. This section covers everything an admin should review before exposing a dataset to AI agents.
For each dataset you want to expose to Agentic BI:
Revenue USD beats rev, Customer State beats cs.California ? CA).Indexing is the gate. An unindexed dataset is invisible to Agentic BI ? it will not appear in dataset selection, will not be searched, and will not be queried. Toggle indexing under Settings > User Settings > AI Settings > Dataset Indexing.
Only index datasets that are appropriate for AI/NLP use, and disable the rest. Personally identifiable data, raw event streams, and datasets with thousands of low-quality fields will degrade matching and should be modeled into clean, named datasets first.
The AI sees field names and data types for every field, plus the dataset's overall description if one is set. Treat these as documentation for an analyst who has never seen your data.
cstmr_st, tx_amt_2). If your source schema is cryptic, alias columns to readable names in the query.The dataset description is sent to the AI as part of the schema and helps the orchestrator pick the right dataset for a question. Knowi does not currently support per-field descriptions ? to clarify ambiguous fields, rename the field, add a field synonym, or document the convention in Global AI Instructions.
Synonyms map alternate names for a field to its canonical name. Configure under Settings > User Settings > AI Settings > Field Synonyms. Use these when:
bookings ? gross_revenue).MRR ? monthly_recurring_revenue).Synonyms are field-level and account-wide. They differ from value aliases (which map data values, not field names) ? see Value Aliasing below.
Mark datasets as Agentic BI Default to pre-select them whenever a user opens the chat. Defaults apply customer-wide, but the per-user authorization model still applies ? users only see defaults they've been shared on. Disabling indexing automatically clears the default flag.
Use defaults sparingly. The chat experience is best when the default set is small (1?5 datasets) and represents the assets users query most often.
Account-wide instructions injected into every Agentic BI request. Configure under Settings > User Settings > AI Settings > Global AI Instructions.
Use this for invariants ? rules that should always be applied:
fx_rate_usd field."Keep instructions short and rule-based. Don't paste documentation, examples, or marketing copy ? every token is sent on every request and the LLM's attention is finite. If an instruction grows past a few sentences, it probably belongs in field descriptions or per-dataset metadata instead.
Knowi datasets run in one of two execution modes. The mode you choose changes how Agentic BI generates and runs queries against the dataset, and it changes what setup work is needed for accurate matching.
| Mode | Where the data lives | What the AI generates | Best for |
|---|---|---|---|
| Non-Direct (Cached) | Knowi ElasticStore ? query results are stored and refreshed on a schedule. | Cloud9QL run against the cached results. | Slow source queries, frequently-asked questions, datasets users explore interactively, large historical aggregates. |
| Direct Query | Original datasource ? every query hits the live database/API at runtime. | Native query (SQL/Mongo/etc.) using the dataset's underlying query template, with runtime tokens filled in. | Real-time data, datasets too large to cache, regulated data that must not leave the source, parameter-driven endpoints. |
For the difference at the query-creation layer, see Defining Data Execution Strategy.
For non-direct (cached) datasets, the AI works against the materialized fields in the ElasticStore. Setup is straightforward:
For direct-query datasets, the AI does not generate the SQL from scratch. Instead, the underlying query template authored at dataset creation is preserved, and the AI fills in runtime parameter tokens based on the user's natural-language question. This protects the original query semantics (joins, filters, governance rules) while still letting users ask in plain English.
This means setup for direct datasets requires careful token design in the original query template.
Direct queries use Knowi's runtime parameter token syntax:
```
$c9_
<name> ? the macro name. Used in matching when no label is provided.<default> ? value used if nothing is bound at runtime.<label> ? display label shown in dashboard filter UI. Critical for AI matching ? the binder uses the label first when inferring values from a question.<formatting> ? optional list/date/quotation directives.For full token syntax, see Runtime Query Parameters.
When a user asks Agentic BI a question against a direct-query dataset, Knowi attempts to infer values for unfilled tokens from the question text. Resolution order, per token:
$c9_x$[payment processor]$ matches "stripe" in "show me transactions for payment processor stripe").$c9_processor$ ? "processor").^[A-Za-z0-9 ._-]+$ and be 100 characters or fewer.Treat tokens like field descriptions ? they're documentation the AI reads.
$c9_processor$[Payment Processor]$ matches user phrasing far better than the bare $c9_processor$. Labels are also what users see in filter UIs, so this is double duty.[Region Code] beats [Region] if the field stores codes; [Customer Tier] beats [Tier] when there are multiple kinds of tier in the schema.$c9_value$ across three unrelated tokens ? every token should map to one column or filter.state = $c9_state$[State]$ and your data stores CA but users say California, configure a value alias dataset (see Value Aliasing) so the binder normalizes the inferred value before substitution.last 30 days, all regions).Current binder limitations to be aware of:
$c9_start$, $c9_end$) are supported via natural-language phrases like "last 30 days," "from Jan 1 to Mar 1," "since last quarter." Other free-form date phrases may not bind ? check logs (DirectQueryMacroBinder log prefix) if a question fails to fill date filters.$c9_filter$, $c9_where$) are reserved and never AI-bound. If you've authored a query that depends on a clause-shaped token, the user must either fill it via runtime filter UI or you must redesign the template to use value tokens.New York City), you must configure them as aliases.If a direct-query dataset is producing empty or wrong results from Agentic BI:
Users rarely phrase queries using the exact values stored in your data. They ask "how many customers in California?" when the state field actually stores CA, or "orders in NYC" when the city column holds New York City. Value aliasing bridges that gap so Agentic BI resolves the user's term to the canonical value at query time - the generated query runs as state = 'CA' and returns correct results.
Aliases are sourced from reference datasets in your account rather than inline config. A reference dataset is just a regular Knowi dataset. Two formats are supported:
Two-column form (canonical + aliases). One column holds canonical values (what's actually in the data), the other holds alias values (what users might type). For example, a US States dataset:
| state | alias |
|---|---|
| CA | California |
| CA | Cali |
| NY | New York |
| NY | New York State |
| TX | Texas |
The column whose name matches a field in the target dataset is automatically treated as the canonical column. Any other column supplies aliases. Multiple rows per canonical produce multiple aliases.
Single-column vocabulary form. A one-column dataset whose column name matches a target field. Each row's value is registered as a known canonical value for that field. Use this when you just want to teach the system what the valid values for a field are (e.g., a list of airlines), without authoring alternate spellings:
| airline |
|---|
| American |
| Delta |
| JetBlue |
| Southwest |
| United |
Now a question like "average delay for Southwest flights" binds Southwest to the airline field even if the target dataset is direct-query (so distinct values aren't pre-sampled).
Aliases are configured account-wide on the Settings > User Settings > AI Settings page, under Global Alias Datasets. Admin-only. Pick one or more reference datasets; they apply across every dataset in your account whose fields match a column name in the reference dataset. A dataset with no matching field is simply skipped.
US States, Country Codes, Product Aliases - is cleaner than a giant all-in-one table.state_code, the reference dataset needs a column called state_code, not state.When an agent executes, it sends data to the configured AI model to generate a response. The amount of data depends on the operation:
There are two separate data flows to understand:
1. Knowi's internal AI processing - When an agent needs AI reasoning (e.g., choosing chart types, generating SQL, producing recommendations), Knowi sends data to its configured AI model. This is controlled by your AI provider setting:
| Provider | Where Knowi Sends Data for AI Processing | Configuration |
|---|---|---|
| Knowi (Internal) | Knowi's own infrastructure. Data stays within Knowi. | Default - no configuration needed |
| OpenAI | OpenAI's servers via API. | Settings > AI Settings > AI Model Providers |
| Anthropic (Claude) | Anthropic's servers via API. | Settings > AI Settings > AI Model Providers |
| Google (Gemini) | Google's servers via API. | Settings > AI Settings > AI Model Providers |
AI provider settings are configurable per feature - you can use the internal model for recommendations (which include data rows) and an external model for dashboard creation (which only includes schema).
2. MCP client data flow - When you access Knowi through an external AI tool (Claude Code, Claude Desktop, GPT, Copilot, etc.), tool results - including query results, dashboard metadata, and data rows - are returned to that client. The client's LLM then sees this data. This is true regardless of which AI provider Knowi uses internally. Even if Knowi is configured to use its internal AI model, the MCP tool responses (which may contain actual data) are sent back to the calling client's LLM.
In practice, when using Claude Code with Knowi's MCP server, data flows through both Knowi and Anthropic's servers - Knowi processes the request, and the tool response (containing your data) is returned to Claude, which runs on Anthropic's infrastructure.
For maximum data isolation, use Knowi's in-product agents (Dashboard Agent, Widget Agent) with the internal AI provider. Data stays entirely within Knowi's infrastructure.
For on-premises deployments, the AI model runs within your infrastructure. MCP access from external clients would still send tool responses to the client - evaluate whether this is acceptable for your data classification requirements.
All agents enforce Knowi's existing authorization model:
user.isAllowed(resourceId, assetType, write). A user can only interact with resources they are explicitly authorized to access.AI agents respect user content filters. If a user has row-level security applied (e.g., they can only see data for their region), the agent only sees and operates on the filtered data. This applies to all agent operations including recommendations, data analysis, and NLP queries.
All agent executions are logged with:
Logs are accessible to account administrators.
When agents are accessed via the MCP Server, additional protections apply:
knowi_delete tool with confirmation.See MCP Server Security for full details.