Configure
Configure a semantic model for your data.
Data access
Section titled “Data access”You can control which Inconvo will query within the semantic model. This control is available at table, column and relation levels.
A table can be in one of three states:
Queryable
Can be queried directly or joined into.Joinable
Can only be joined into from another table.Off
Cannot be queried or joined into.
Column
Section titled “Column”A column can be in one of two states:
On
Can be selected in queries.Off
Cannot be selected in queries.
Relation
Section titled “Relation”A relation creates a link between two tables to facilitate a join, it can be in one of two states:
On
The join can be made.Off
The join cannot be made.
Context filters
Section titled “Context filters”Context filters are used to scope data to a configurable context and rely on context passed when creating an Answer.
Context filters are set on a per table basis, where a mapping is made between a field in the table and a key in the context object.
For example if you have a table orders
with a column organisation_id
which is your tenant identifier.
Passing the following context in the body of your Ask
request:
"context": { "organisationId": 1}
And setting the following context filter on the orders
table.
WHERE orders.organisation_id = context.organisationId;
Data returned from the orders
table will be scoped to the organisation with an id of 1
.
Table prompts
Section titled “Table prompts”A Table prompt is a block of plain‑language text containing contextual rules for interpreting the data of a particular table. Adding relevant table prompts ensures Inconvo has the business context required to correctly interpret table data.
For example, given a table users
with the following schema in an ecommerce analytics database:
CREATE TABLE public.users ( organisation_id integer NOT NULL, id integer GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, address varchar(255), email varchar(255), password varchar(255), name varchar(255), city varchar(255), longitude double precision, birth_date date, zip char(5), latitude double precision, created_at timestamp without time zone, last_order_at timestamp without time zone, FOREIGN KEY (organisation_id) REFERENCES public.organisations(id));
We can add the following table prompt:
Users are also referred to as accounts.
A user is considered a customer if the last_order_at is not null.
New customers over a time period are those who have every order after the start of the time period.
Adding this prompt unlocks new answers for the user. For example, Inconvo can now answer questions like:
- “How many new customers have we had in the last month?”
- “What is the average order value for accounts in San Francisco?”
- “What percentage of users added in the last quarter are not yet customers?”
Computed columns
Section titled “Computed columns”Computed columns are columns that are not present in the database but can be derived from existing columns. They are defined using a mathematical expression and can be used in queries just like any other column.
Given an example table orders
with the following schema:
CREATE TABLE public.orders ( organisation_id integer NOT NULL, id integer GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, user_id integer, product_id integer, subtotal double precision, tax double precision, discount double precision, created_at timestamp without time zone, quantity integer, FOREIGN KEY (organisation_id) REFERENCES public.organisations(id), FOREIGN KEY (user_id) REFERENCES public.users(id), FOREIGN KEY (product_id) REFERENCES public.products(id));
There is no column for the total value of an order, but we can easily create a computed column total
using the following expression:
total = subtotal - discount + tax
Now we can ask questions that require the total order value e.g. “What was our revenue in the last month?”
Column units
Section titled “Column units”Column units are used to specify the unit of measurement for numerical columns.
For example, if you have a column total
in a table orders
that represents the price of a product in USD, you can set the unit to USD
.
Now responses to queries that include the total
column will include the unit of measurement in the response.
Q: What was our total revenue in the last month?
A: Your total revenue for last month (April 2025) was $3,059,223.96.
Considerations
Section titled “Considerations”You can use evaluations to run queries and view Inconvo’s trace. This will help you identify changes required on your semantic model to steer Inconvo for your data.