Processing → structured
Values read from invoices land as typed rows in a register finance can sort, filter and report on.
One model that the AI reads as instructions, the database enforces as a schema, and people read as plain words.
On Botminds the data model runs the system. Labels tell the extraction agent what to find, typed schemas tell the database what to keep, formulas keep derived values current as people edit, and every passage is searchable by meaning and by keyword — across millions of documents and records.
supplierNorthwind Supply Ltdp.1invoice_date2026-09-14p.1total_due18,420.00p.3line_items7 rowsp.2–3The description is the instruction · the schema is the contract
AI data modeling is designing the structure of your data so that AI can both fill it and use it: which records exist, which fields each holds, what type and meaning each field has, and how records relate. For AI the model does double duty — it is the schema the database enforces and the instruction the extraction model follows. Done well, it turns unstructured data into structured, typed, searchable records at any volume.
Classic data modeling starts from tables that already exist. AI data modeling starts a step earlier — with contracts, emails, statements and scans — and its first job is to say what should be read out of them.
| Classic data modeling | AI data modeling | |
|---|---|---|
| Starts from | Tables that already exist | Documents, messages and pages |
| Read by | The database and the analyst | The database, the analyst and the AI that fills it |
| A field’s definition | A name and a type | A name, a type and a plain-words instruction |
| A value | Whatever was loaded | Its source page, its words and a confidence score |
| Change | A migration, planned by engineers | Additive: new fields appear without breaking what was read |
| Derived values | Computed in a report, later | Recomputed the moment a person corrects an input |
Everything on the platform lives in a collection. Its purpose decides what it holds and how data enters; its operating model decides who does the work.
Values read from invoices land as typed rows in a register finance can sort, filter and report on.
Policies and manuals are indexed so an agent cites them while it checks a document. See agentic RAG.
Golden datasets score an agent’s changes against a pinned baseline. See AI agent evaluation.
A taxonomy is the list of things to read from a document — its labels. A label’s description is the text the extraction agent is given, word for word, so editing a description is how you change what the AI does.
Every label of the collection becomes one typed field the extraction agent must return:
“…we agree to move you to net 60 from October…”
Text, number, date, list and record. Currency and percentage are numbers; a dropdown is a list; a table is a record.
Rows — invoice lines, a payment schedule, a financial statement — with child labels as the columns.
A missing required value is flagged; values outside a new list of choices are reported for review.
Labels nest and group into categories, so a model of hundreds of fields stays readable.
| Field | A weak description | A strong description |
|---|---|---|
| Invoice date | “Invoice date.” | “The date the invoice was issued, printed near the invoice number. Not the due date or the delivery date.” |
| Total due | “Total.” | “The amount payable, tax included, as a number. If a credit note is attached, use the invoice’s own total.” |
Structured collections keep typed rows in real database tables. Design the schema field by field, or upload a spreadsheet and let the platform propose one — reviewed by a person before anything is written.
vendor_id1041 · 1042 · 1187Whole numbercredit_limit25000.00 · 7500.5Decimalactiveyes · no · yesYes / noonboarded14/03/2024 · 2025-01-09Date and timenotesa 340-character comment…Long textvendor_nameHarbor Freight LinesTextChosen by a person, never guessed: large whole number, choice list, link to another record.
Text, long text, whole, large whole and exact decimal numbers, date and time, yes / no, choice, and a link to a record in another collection.
Add fields at any time. Column names are fixed at the first commit, so every report and agent that reads them keeps working.
Rows stream in batch after batch. A row that needs fixing is parked with its reason and original values, ready to fix and resend.
Sync from a SQL database, a spreadsheet in a drive or an API, on the schedule you set.
Old and new value, who made the change, on whose behalf and why — a reason a collection can require.
Real data nests. An invoice has lines; a loan has collateral; a policy has endorsements. A child collection takes its records from a parent, so each line is a record of its own that still knows where it came from.
An invoice is read; its header fields are filled and its line table extracted as a record label.
Each line becomes a record in the child collection, fields mapped from the parent.
Lines are filtered, matched to purchase orders and reviewed on their own.
Records flow parent to child, so the model stays free of loops.
When rows matter alongside their document — a balance sheet — review them in place.
When rows have a life of their own — matching, approval, reporting — query and work each one.
A link field joins a vendor register and a payments table into one model.
Totals, ratios and checks depend on other values. When a reviewer corrects an input, everything that depends on it changes at once — and a recompute that started earlier never overwrites the correction.
Arithmetic runs as a compiled formula. A rule in words — “the covenant is breached if…” — runs as one small, scoped model call. One change event triggers both.
The formula’s answer shows at once while the AI lane checks it. Once they agree, the formula carries the field; on any disagreement the AI lane leads again.
Each recompute carries the time it started. If a person has edited the value since, the older result is set aside.
Some data is meant to be consulted, not extracted: policies, manuals, past decisions. Knowledge collections turn documents into passages an agent can search, and a document is marked ready once the index has been checked.
Text comes out of every file, with optical character recognition for scans.
Text is split into overlapping passages, with page summaries when you want them.
Each passage becomes a vector from the collection’s embedding model.
Passages go into a shared or dedicated index, with the expected count recorded first.
An independent check counts what is really in the index. Then the document is ready.
Vector search finds the passage that answers the question in other words; switch on keyword search per agent for clause numbers, accounts and names.
When a person asks, search draws on the collections that person may read. See AI governance.
Each re-index pass is numbered and older passages are removed, so a retry leaves no duplicates — and a failure says why.
A data model earns its keep at volume. Intake and extraction workers scale out on durable queues, typed records sit in indexed tables, each search index carries its own shard and replica settings, and recompute runs on every runtime replica — on any cloud and in any region.
Typed rows live in real tables with indexed columns, so filters, sorts and totals stay quick as registers grow.
Loads arrive batch after batch and syncs run on schedule; sweeps resume where they stopped, and every bad row is kept.
Indexing workers scale out on the queue. Each search index is created with its own shard and replica settings, and a project can keep its knowledge in an index of its own: knowledge bases of millions of files, with no fixed ceiling.
Change events are kept durably and drained by every runtime replica; rapid edits to one document collapse into one recompute.
A semantic layer gives data business meaning once. On Botminds the labels and fields are that layer: the names reviewers see, the fields agents return, the columns of every view and the parameters of every API call are the same words.
Saved grids — columns, filters, sort and who may see them — plus summary and score views.
Reference tables agents look things up in: SQL and NoSQL databases, spreadsheets, APIs, views and forms.
An intake agent receives the collection’s fields as its output schema. One definition, many uses.
Your systems read the same fields through the API; pages show them on cards. See composable UI.
{
"collection": "Vendor invoices",
"record": "INV-2207",
"supplier": {
"value": "Northwind Supply Ltd",
"page": 1,
"confidence": 0.97
},
"payment_terms": {
"value": "Net 60",
"source": "email"
},
"total_due": {
"value": 18420.00,
"page": 3
}
}Teams turning unstructured data into structured data usually reach for one of three things. They solve different parts of the problem.
| BI and warehouse modeling | Prompt-and-parse scripts | Botminds AI data modeling | |
|---|---|---|---|
| Reads documents | Tables, after loading | Yes, in code | Yes, from a model people can read |
| Where instructions live | Not applicable | Prompts in a code base | Each field’s description, edited on screen |
| Types enforced | Yes | If someone writes the checks | At the label and in the database |
| Source of each value | Not applicable | Usually lost | The page and words it was read from |
| Schema change | Migrations | Edit the code, re-run | Additive — new fields any time, nothing downstream breaks |
| Derived values | In the report | Re-run the script | Recomputed on each edit; people’s edits win |
| Search for agents | Not its concern | A separate vector store to build | Meaning and keyword search, inside read rules |
| Volume | Warehouse-scale tables | One script, one machine | Millions of documents and records, scaling out |
Where it fits. Botminds feeds your warehouse clean, typed, sourced records — and gives agents a model they can act on. Extraction itself is covered on the Botminds IDP page.
More from the platform: the full architecture, and how security works at Botminds.
AI data modeling is designing the structure of data so AI can fill it and use it: the records, their fields, each field’s type and meaning, and how records relate. On Botminds each field’s description is also the instruction the extraction agent follows.
Define the fields you need with plain-words descriptions, point an extraction agent at the documents, and write the values into a typed collection. Each value keeps its page, its words and a confidence score. See Botminds IDP.
Reading named, typed values out of documents — dates, amounts, parties, tables — rather than summarising them. The output is records a database can store and a system can act on, each traceable to its source.
Keeping the list of things to read from documents accurate, well described and well organised as needs change. On Botminds labels have types, descriptions, required flags and choices, and a description change changes extraction directly.
A layer that defines what data means once, so every consumer reads it the same way — agents included. On Botminds the labels and fields serve as that layer across extraction, review screens, views, agent outputs and the API.
Yes. Upload a spreadsheet or CSV and the platform samples each column and proposes a type — whole number, decimal, yes/no, date, long text or text. A person reviews and commits the proposal before anything is written.
They are parked with the reason and their original values, so they can be fixed and resent. Every other row lands, batch after batch.
Collections hold millions of typed records, knowledge bases hold millions of files, and each search index carries its own shard and replica settings. Intake workers scale on queue depth, on Azure, AWS, Google Cloud or on-premises.
An edit raises a change event and every dependent value is recomputed — by a compiled formula, or a small model call for rules in words. A person’s newer edit always wins over an older recompute.
Yes. Knowledge collections are split into passages, embedded and indexed; agents search by meaning, and by keyword once you switch it on. When a person asks, both respect that person’s read rules. See agentic RAG.
Bring a stack of your documents and the record you wish you had. We’ll build the model with you and fill it on your own data.