Data request
Data Requests provide an AI-powered workflow for users to describe, in natural language, what data they need from on-boarded databases. The system analyzes the request and recommends a set of columns and tables that best satisfy it, ultimately producing a synthetic view that the user can query.
Overview
The Data Request workflow consists of four stages:
Describe Data Requirements — Submit a natural-language description of the data you need.
Review Data Dictionary — Review and configure the AI-generated recommendation (columns, preferences, filters).
Processing — Once approved, the system automatically creates and builds the synthetic view(s).
Results — Access the generated view(s) via CSV export, PostgreSQL, or Python.
Creating a Data Request
To create a new request, navigate to Data Requests → New Request.
Selecting a database
Choose the target database from the dropdown. Only databases you have read access to will be shown.
Describing your requirements
Enter a natural-language description of the data you are looking for in the text area. The system will use this prompt — along with metadata from the selected database — to generate a recommendation.
Tip: The more specific your request, the better the recommendation. Include details such as table names, column names, date ranges, or any constraints you have in mind. Responses are non-deterministic and may require refinement.
Refining your request
After an initial recommendation is generated, you can refine your requirements by clicking Refine Requirements. This allows you to update your prompt and resubmit for a new recommendation. Click Cancel Refining to discard changes and return to the current recommendation.
Reviewing the Data Dictionary
Once the system processes your request, it produces a data dictionary — a table of recommended columns that best answer your query. Each entry includes:
Table
The source table the column belongs to.
Column Name
The name of the column.
Data Type
The column's data type (e.g. string, integer, float, boolean, datetime).
Description
A brief description of the column's contents.
Preference
Whether the column is Required or Optional.
Column preferences
Each column in the data dictionary can be marked as one of two preferences:
Required — The column is essential to your request and must be included in the final output. A view containing only Required columns is always generated, ensuring you receive a guaranteed result. At least one column must be marked as Required to proceed.
Optional — The column is desired but not critical. When Optional columns are present, the system generates a second view that includes both Required and Optional columns. This second view represents the ideal output; however, it may fail to build if the inclusion of Optional columns introduces privacy risks. In that case, the Required-only view remains available.
To change a column's preference, use the dropdown in the Preference column of the data dictionary table.
Note: You must have at least one column marked as Required before you can submit the request for approval. If no Required columns are set, the Process Data Request button will be disabled.
Adding new columns
If the AI-generated recommendation is missing a column you need, you can add it manually:
Click the Add entry button below the data dictionary table.
A new row will appear with a column selector dropdown. This dropdown lists all available columns from the database that are not already in the data dictionary.
Select the desired column.
Optionally, enter a description for the column.
Set the column preference (defaults to Required).
Click the checkmark button to save the entry, or the trash button to cancel.
Removing columns
To remove a column from the data dictionary, click the trash icon on the corresponding row.
Note: You cannot remove the last remaining column from the base table. The system requires at least one column from the base table to be present.
Translation notes
After the recommendation is generated, the system may display translation notes below the data dictionary. These provide context about how the AI interpreted your request:
FYI — Informational notes about assumptions the system made.
WARNING — Potential issues that may affect the output.
CRITICAL — Significant issues that may affect the output.
Configuring Data Filters
Data filters allow you to narrow the rows included in the final output by applying WHERE-clause conditions. Filters are configured in the Data Filters section below the data dictionary.
Filter structure
Each filter consists of three parts:
Column
The column to filter on (selected from the data dictionary).
Operation
The comparison operator to apply.
Column/Value
Either a literal value or another column to compare against.
Comparing against a value vs. a column
By default, the right-hand side of a filter is a literal value (e.g., 42, "active"). You can toggle to column mode using the toggle button to compare against another column in the data dictionary (e.g., start_date < end_date).
Note: When comparing two columns, both must have the same data type. A warning will be displayed if there is a type mismatch.
Available operations
The operations available depend on the data type of the selected column:
Equals
=
Yes
Yes
Yes
Yes
Yes
Not Equals
!=
Yes
Yes
Yes
Yes
Yes
Less Than
<
Yes
Yes
Yes
Less Than or Equal To
<=
Yes
Yes
Yes
Greater Than
>
Yes
Yes
Yes
Greater Than or Equal To
>=
Yes
Yes
Yes
Like
%
Yes
In
(...)
Yes
Yes
Yes
Yes
Not In
(...)
Yes
Yes
Yes
Yes
In / Not In operations accept multiple values. When selected, the input switches to a multi-value entry where you can type and add individual values.
Like supports SQL-style pattern matching (e.g.,
%smith%).
Filter groups (OR logic)
Filters can be organized into groups. Within a group, all filters are combined with AND logic. Between groups, filters are combined with OR logic.
For example:
Group 1:
age > 30ANDstatus = "active"Group 2:
role = "admin"
This produces: (age > 30 AND status = "active") OR (role = "admin")
To add a new filter group, click Add filter group. To add an additional filter within an existing group, click Add filter to group within that group's section.
Type validation
The system validates that entered values match the expected column type. A warning is displayed if:
The entered value does not match the column's data type (e.g., entering text for an integer column).
The selected operation is not compatible with the column type.
Two columns being compared have different data types.
Submitting for Approval
Once you have configured the data dictionary and filters, click Process Data Request to submit the request for review. A reviewer with the appropriate permissions will be notified.
Reviewers can:
Approve the request — optionally with a comment. Approval triggers automatic view creation.
Deny the request — a comment is required explaining the reason for denial.
Processing
After approval, the system automatically creates the synthetic view(s). This stage involves:
Initialization — The view is registered and configured.
Scanning — The source tables are scanned for metadata.
Synthesis — Synthetic data is generated based on the configured columns and filters.
Progress is displayed in real time. If an error occurs during processing, a Recreate views button allows you to retry.
Retrieving Data
Once the view(s) have been successfully created, you can access the data through several methods:
CSV Export
Click the Download button to export the full dataset as a CSV file.
PostgreSQL
A pre-configured psql command is provided that you can copy and run directly in your terminal to connect and query the view.
Python
A sample Python script using psycopg2 and pandas is provided with pre-filled connection parameters and query, ready to run.
Reconfiguring a Request
If the generated view does not meet your needs, you can click Reconfigure request to return to the review stage. This allows you to adjust columns, preferences, and filters before resubmitting.
Note: Reconfiguring a request will require reapproval by a reviewer before the views are rebuilt.
Last updated