Databases (Datastores)

Create structured data tables, define their fields, import your CSV files and make them available to your agents and flows.

Datastores are structured databases organized as tables: one row per record, one column per field. Where a knowledge base holds free text in which the agent looks for answers, a Datastore holds precise data that an agent can read and write during a conversation: a customer found by phone number, an order and its status, an appointment to record, a lead to qualify.

This page explains how to create a base, define its fields, enter and import data, and generate the tools that let your agents and flows access it.

Before you begin

  • Bases are managed from Datastores in the main menu.
  • Prepare the list of fields you need and their type (see Field types).

Two kinds of bases

KindUseFields
Standard baseAny business data: customers, orders, stock, appointments, tickets.Free schema: you define your columns after creation.
Contact baseContact records for call campaigns and customer relationship.Pre-typed contact record: you tick the fields you want at creation. International phone format and automatic deduplication.

The kind is shown under each base name in the left column, and as a badge at the top of the table. It is set at creation.

Create a base

  1. Open Datastores.
  2. In the left column, click New.
  3. Enter the base Name (for example customers, orders or leads).
  4. Choose the Base type: Standard base or Contact base.
  5. For a contact base, tick the Record fields to keep (at least one).
  6. Click Create the base.

If the name is already taken or the schema is rejected, the error message appears at the bottom of the window.

Fields offered for a contact base

All fields are ticked by default. Field names are fixed by the app.

FieldType
civilite (title)List
prenom (first name)Text
nom (last name)Text
telephone (phone)Phone (intl)
mobilePhone (intl)
emailEmail
societe (company)Text
fonction (job title)Text
adresse (address)Text
code_postal (postal code)Postal code
ville (city)Text
pays (country)Text
date_naissance (date of birth)Date
fuseau_horaire (time zone)Time zone
notesComment (long)

A deduplication field is set automatically: telephone if ticked, otherwise mobile, otherwise email, otherwise the first field. Two contacts cannot share the same value for this field.

Define the schema

The schema is the list of fields (columns) of the table. A standard base is created with no columns: the table shows "This table has no columns yet." and the Define the schema button.

  1. Click Schema (the number of fields is shown on the button) or Define the schema.
  2. Click New field.
  3. Enter the field name (for example customer_number) and choose its type.
  4. Repeat for each field. The trash icon removes a field.
  5. Click Save.

A field is a column of the table. Its type drives value validation and the generated tools. Two fields cannot have the same name: duplicates are flagged and block saving.

Note

For a contact base, the phone must be of type Phone (intl) (the French format is rejected) and a single deduplication field is required. The server checks these rules on save.

Warning

Removing a field from the schema removes its column from the table. If flow tools were generated for this base, update them afterwards (see Outdated tools).

Field types

TypeExpected contentSample value
TextShort textSmith
Comment (long)Long textLoyal customer, prefers a morning callback.
NumberDecimal number3.14
IntegerWhole number42
AmountMonetary amount19.99
PercentagePercentage15
DateDate (entered with a date picker)2026-09-01
HourTime of day14:30
TimestampDate and time2026-09-01T14:30:00
DurationDuration in seconds3600
Phone (FR)French number0612345678
Phone (intl)International number+33612345678
EmailEmail addressjohn.smith@example.com
URLWeb addresshttps://example.com
Image (URL)Address of an imagehttps://example.com/logo.png
Postal codePostal code75001
Time zoneTime zoneEurope/Paris
SIRETFrench company number73282932000074
Social security no.French social security number184127645108946
ListOne or more values, comma-separated when typingMrs, Mr
Auto-increment (managed)Number assigned automaticallyFilled by the base, not editable

Values are checked on save: a value that doesn't match the field type is rejected.

View and filter data

The table shows the records with, for each column, the icon and label of its type. The table footer shows the total number of records and lets you choose 25, 50 or 100 rows / page.

Datastore table editor

To filter:

  1. Click Filter.
  2. Choose a field, an operator and a value.
  3. Click Apply.
OperatorMeaning
containsThe value contains the text entered (default).
starts withThe value starts with the text entered.
ends withThe value ends with the text entered.
= / ≠Equal / not equal.
> / ≥ / < / ≤Comparisons, for numbers and dates.

Only one filter applies at a time. It shows in the toolbar; click it (or Remove the filter) to clear it. The Reload button refreshes the table.

In the left column, Filter bases… finds a base by name or description, and the ↑ / ↓ keys move from one base to the next.

Add and edit records

  • Insert: click Insert, fill in the fields in the Insert a record panel, then click Insert.
  • Edit: click a row. The Edit the record panel opens; click Update to save.
  • Delete: tick one or more rows (or the header box for the whole page), click Delete, then Confirm deletion.

A field left empty is not saved; clearing a field while editing erases its value. Auto-increment (managed) fields don't appear in the form. If the record is rejected, the reason appears at the bottom of the panel.

Import a CSV

Import adds the rows of a CSV file in one go, for example an export from your CRM or order tool. The Import button is only active if the base has at least one field.

  1. Click Import.
  2. Optional: in CSV template, click Download to get a file with the schema columns and a typed sample row.
  3. Drop your file onto the area, or click to choose it.
  4. Check the Separator (detected automatically) and the Encoding.
  5. Review the columns and the preview of the first 5 rows.
  6. Click Import N rows.

CSV import window with column check

OptionPossible valuesDefault
SeparatorComma (,), Semicolon (;), Tab, Vertical bar (|)Detected on the file's first line
EncodingUTF-8, ISO-8859-1, Windows-1252UTF-8

The file's first line must contain the field names: columns are matched by name. Before import, each header is marked:

  • green: recognized column;
  • orange: column unknown to the schema. Check the separator and header spelling before importing;
  • gray: schema field missing from the file. It will stay empty.

Tip

A file exported from a French-language Excel often uses semicolons and Windows-1252 encoding. If accents look wrong in the preview, change the encoding.

After import, a report shows the number of rows inserted and, if any, the Rows in error with their line number and the reason for rejection (first 20 shown). Click Import another file to continue, or Close.

Export

Export downloads the table page currently shown as CSV (file <base name>-page<N>.csv). To export more rows, increase rows / page or export page by page.

Give an agent or a flow access

An agent or a flow reaches a base through tools generated from the base. The base path is fixed in the tool: the model only handles business parameters, such as a phone number or a name.

  1. Click Flow tools.
  2. The Tools for this base section lists existing tools. Search (free query), Add and Edit are pre-ticked if they don't exist yet.
  3. In Generate, tick the tools you want.
  4. Click Create N tools.
ToolGenerated nameWhat it does
Search (free query)rechercher_<base>The model writes the filter itself (field, operator, value). Flexible, but requires a model comfortable with the syntax.
Targeted search by fieldrechercher_<base>_par_<field>One tool per ticked field, with a fixed "contains" filter: the model only provides the value to look for. This is the most reliable option.
Addajouter_<base>Inserts a record, with one parameter per schema field.
Editmodifier_<base>Replaces a whole record: the tool requires the identifier and every field. The model is guided to search for the record first.

The tools created can be used in a flow's MCP tool block or as a function of an LLM agent block (see Tools). To delete a tool, click its trash icon in Tools for this base, then Delete. A flow can also read and write a base directly with the Datastore block (see Block reference).

Important

Edit replaces the whole record; it is never a partial update: an omitted field is lost. The tool therefore forces the model to send back every field, changed or not.

Example: identify the caller

Your customers base contains phone, name, customer_number and status. You generate Targeted search by field on phone and the Edit tool.

  1. At the start of the call, the agent calls rechercher_customers_par_phone with the caller's number and gets their record.
  2. It greets the customer by name and adapts its approach to their status.
  3. At the end of the call, it updates the record with modifier_customers, sending back every field.

Setting this up in a flow is detailed in Recognize the caller and Save to a database.

Outdated tools

Generated tools reflect the schema at creation time. If you add, remove or rename a field, an orange banner says so at the top of the table: "N tools linked to this base no longer match the current schema".

  • Click show which to display the list.
  • Click Update linked tools. Tools are updated in place: flows that use them don't need any change.
  • A targeted search tool whose field no longer exists cannot be updated. It is flagged separately: check the flows that call it, then delete it from Manage tools.

Delete a base

Click the trash icon at the top right of the table. Flowtative first checks whether the base is in use:

  • if agents or flows use it (through its tools or a Datastore block), deletion is refused and the list of agents and flows involved is shown, with a link to each. Remove the base and its tools from them, then try again;
  • otherwise, click Delete the base to confirm.

Warning

Deleting a base erases all its records. It is irreversible.

Best practices

  • Explicit field names, lowercase with no spaces (customer_number, appointment_date): they appear as-is in the tools read by the model.
  • The right type from the start. A Phone (intl) or Email field avoids malformed values.
  • Prefer targeted search by field over free queries for frequent lookups (by phone, by customer number): the model is less likely to make mistakes.
  • Import a small file first, a few rows, to validate headers and encoding, then the full file.
  • Update the tools after each schema change, before republishing your flows.

Learn more

On this page