Uploading Spreadsheets and Large Files
Describing a data model in prose is hard work when you already have it in a spreadsheet. Upload the file instead.
Where to find it
Architect Panel → Data:
- AI Builder — upload a file alongside your description
- Large Uploads — the chunked upload records and their state
- File Stores — where uploaded files are kept
Working from a spreadsheet
Upload the workbook and the builder reads its structure — the columns, the types, the values that actually appear — and proposes datastores and fields to match.
That is usually far closer to what you want than a description, because the spreadsheet already encodes decisions you would otherwise have to remember to mention: which fields are dates, which are numbers, which have a fixed set of values, which are optional in practice.
Tidy the sheet first — this matters most
The structure it infers is the structure you gave it, so preparation pays for itself:
- One header row, at the very top. Not a title, then a blank row, then headers.
- One table per sheet. Two tables side by side become one confused datastore.
- No merged cells. They destroy the column structure.
- No notes rows above the headers or between sections.
- Consistent types down a column. A date column with "TBC" in three rows will be read as text.
- Remove totals rows. A row saying "TOTAL 4,182" is not a record.
A spreadsheet organised for a human reader gives a noticeably worse result than a plain rectangle of data.
Large files
Uploads are chunked, so a file can be roughly a gigabyte rather than the tens of megabytes a single web request allows. The browser splits the file, the pieces are uploaded independently and reassembled on the server, and — because assembling a large file is not something a web request should do — the final step runs as a background job.
The tasks involved
- Background Jobs — dispatches and reaps queued work, including file assembly. Every minute.
- Document Text Extraction — indexes contents so uploaded documents are searchable. Every fifteen minutes.
Both ship disabled under Automation → Tasks. A large upload that reaches 100% and then appears to stall is almost always the Background Jobs task not running — the pieces are all there and nothing is assembling them.
What not to upload
The file contents reach the AI provider. Do not upload live personal data to design a schema.
A sample with realistic structure and invented values gives exactly the same design result without the disclosure — the builder is reading shapes, not people. Twenty made-up rows work as well as twenty thousand real ones.
Worked example
A team has tracked equipment in a spreadsheet for years: asset tag, description, location, purchase date, cost, custodian, and a Notes column. They copy the sheet, replace the names and tags with invented ones, delete the totals row at the bottom, and upload it. The builder proposes an Assets datastore with a date field, a currency field and a link to People for the custodian — which is the model they would have described, arrived at in one step.
Recommendations
- Send a sanitised sample, never live data.
- Fix the sheet before uploading, not the datastore afterwards.
- Enable Background Jobs first if you are uploading anything large.
- Check the inferred types before applying — dates and numbers read as text are the common miss.