Documentation Index

Fetch the complete documentation index at: https://docs.knovvu.com/llms.txt

Use this file to discover all available pages before exploring further.

Creating a Data Table

Prev Next

This article covers creating a data table and defining its schema, from scratch or from a CSV file, what you can change once the table exists, and how to have a table delete its own old rows.

What a data table is for, where its edges are and the limits that apply everywhere are on the parent page, Data Tables. Adding, editing and exporting the rows themselves happens on the table's detail page and is covered in Managing Data Table Rows. Reading and writing a table from a conversation is covered in Using the Data Table Node in a Flow.


The Data Tables page

The Data Tables list

1. Create Data Table: Opens the create screen. Once the tenant holds the maximum number of tables, creating another is refused until one is deleted.

2. Search Name: Filters the list by table name.

3. Data Tables Storage: How much storage all tables in the tenant use together, against the tenant's limit. It is a tenant total, not a per-table figure.

4. The table list: One row per table, with Name, Description, Total Columns, Total Rows, Retention and Last Modified. Retention shows the automatic row deletion period in days, or Off, and it is the one column the list cannot be sorted on. Each row carries Edit Schema (the pencil), Export CSV and Delete. Clicking the row opens the table's detail page, where its rows are managed.


Choosing how to create the table

Create Data Table opens the create screen, which starts with a choice of source.

Option Use it when
Start from Scratch You are designing the schema yourself, and rows will be added later or written by a flow.
Import from CSV You already have the data in a file and want the table and its rows created in one step.

Both routes produce the same kind of table. The choice affects only how the schema is defined, and whether rows arrive with it.


Creating a table from scratch

The create screen, Start from Scratch

1. Source: Start from Scratch selected.

2. Name (required): The table's identifier, used by flows to reference it. It must start with a letter and contain only letters, numbers and underscores, and it must be unique in the tenant.

3. Description (required): What the table stores and when it should be used. An AI agent uses this text to decide which table to reach for, so describe the contents and the occasion rather than naming the columns.

4. Columns: The schema. The section header counts what you have used, and at least one column is required. Add Column appends an empty row.

5. Column Name: Same pattern as the table name, unique within the table. The three system column names are reserved.

6. Type: What the column holds. See below.

7. Column Description: What this column means.

8. Fast filter: Indexes the column's values as they are stored, so a Data Table node that filters on it retrieves data faster on large datasets. The counter beside Add Column shows how many of the five are in use, and the remaining toggles are disabled once the fifth is set.

9. System columns notice: Lists the three columns every table gets automatically.

Save creates the table.

Column types

Type Holds Fast filter
Text Short text, up to 200 characters Available
Long Text (not indexable) Text up to 8,000 characters Not available
Number Numeric values Available
Boolean True or False Available
DateTime A date and time Available

Choosing Long Text (not indexable) disables that column's Fast filter toggle outright. If you expect to filter on a text column, keep it as Text and stay within 200 characters.

⚠️ Warning: A Fast filter cannot be removed once it has been set. It can be turned on later from Edit Schema, but never turned off again, and the column counts against the table's five for good. Mark only the columns a flow will actually filter on.

System columns

Every table automatically gets Id, DateCreated and DateModified. You do not create them and you cannot edit them: they appear in the table's detail view but not when adding or editing a row, and their names cannot be reused. They are left out of a CSV export by default, so an exported file can be re-imported without duplicating them.


Creating a table from a CSV file

Choosing Import from CSV replaces the Columns section with an upload area, because names and types are set in the preview instead. Name and Description are still filled in on this screen and follow the same rules. The import happens in two steps.

Step 1: Upload the file

Import from CSV, the upload step

1. Source: Import from CSV selected.

2. Upload CSV File: Drag a file onto the dropzone or click to browse. Only .csv is accepted.

3. The limits line: The column, row and file size ceilings for an import. A file that breaks one of them is rejected before the preview, naming the limit it broke and the figure in your file.

Once the file is read, the screen reports how many columns and rows it found.

Step 2: Confirm the preview

The Preview import modal

1. Delimiter: How the file's columns are separated: Comma ( , ), Semicolon ( ; ), Tab or Pipe ( | ). It is detected from the file and carries an Auto-detected badge. Change it only if the preview below is not split correctly, which the modal tells you when everything lands in a single column.

2. My file has a header row: Selected by default, using the first row as the column names. Clear it if your file has no header, and the first row is treated as data.

3. Columns and their types: One entry per detected column, with the name taken from the header row and the type inferred for it. Adjust a type here if the inference is not what you want.

4. Preview rows: The first ten data rows.

5. Import: Names the number of columns it will create.

CSV import always creates a new table. There is no way to import a file into a table that already exists.

💡 Tip: The preview infers each column's type from the first ten data rows only, while the import parses every row. A file can therefore preview cleanly and still fail further down, on a stray N/A in a Number column or a date in another format. The error names the row and the column, so fix that cell and upload again. If a column's values are not uniform all the way down, importing it as Text and cleaning the data afterwards is the shorter path.


Deleting old rows automatically

The Data Retention section lets a table delete its own old rows, so it does not have to be emptied by hand as it approaches its row limit. It is off on a new table and off on every table that already existed. Because the create screen and the schema screen are one screen in two modes, you can set it while creating the table or change it at any time from Edit Schema. The setting belongs to the table, so nothing needs republishing.

The Data Retention section on the schema screen

1. Automatically delete old rows: Turns the daily cleanup on for this table. Default: off. Column definitions and the table itself are never affected, only rows.

2. Keep rows for: How old a row may be before it is removed, in days. Default: 30 the first time the switch is turned on (range 1 to 90). A value outside the range is corrected to the nearest allowed one rather than rejected.

3. Last cleanup: The date of the most recent run for this table and how many rows it deleted, or a line saying no cleanup has run yet.

A row's age is measured from the last time it was modified, and from its creation date only if it was never modified. Editing a row restarts its clock, including an edit a flow makes through a Data Table node, so rows a flow keeps updating are never old enough to be removed.

The cleanup runs once a day, and reads each table's current setting when it runs, so a change made during the day decides what happens that night. Rows the cleanup removes cannot be recovered from any screen. Set the period against the oldest row a flow still needs to read, not against the row limit you are trying to stay under.


What you can change after the table exists

Edit Schema, the pencil on the list row or the button on the table's detail page, reopens the same screen in edit mode. It is deliberately narrower than the create screen: existing columns are partially locked, and a standing alert on the screen says so.

Edit Schema on an existing table

1. Name: Disabled. A table cannot be renamed.

2. Description: Still editable.

3. The locked-columns alert: States what is fixed and what is not.

4. Existing columns: Each carries a lock icon, with Name, Type and the delete icon disabled. The description stays editable and Fast filter stays live, but only in the on direction.

5. Add Column: New columns can still be added and are fully editable until the schema is saved.

Item After the table is created
Table name Locked
Table description Editable
Existing column name Locked
Existing column type Locked
Existing column description Editable
Fast filter on an existing column Can be turned on, cannot be turned off
Deleting an existing column Not possible
Adding a new column Possible, within the column limit
Data Retention Editable, on or off, at any time

Because a column's name and type are fixed for its life, they are worth a minute before saving. If one turns out wrong, the way out is a new column beside it, and the old one stays.

Deleting a table

Delete on the list row removes the table and every row in it, permanently. A table cannot be deleted while a draft or published flow still references it by name, so remove or repoint the Data Table nodes that use it first. If only older project versions reference the table, the delete is allowed but asks you to confirm.


Naming rules and creation limits

These apply while you are defining a table. The tenant-wide ceilings, including tables per tenant, columns per table, rows and storage, are on Data Tables.

Item Value
Table name 3 to 64 characters, must start with a letter, then letters, numbers and underscores, unique per tenant
Column name Up to 63 characters, same pattern, unique within the table
Reserved column names Id, DateCreated, DateModified
Description, table and column Up to 500 characters
CSV upload .csv only, maximum 20 MB
Data Retention period 1 to 90 days, off unless you turn it on, 30 days when you do