TotalApp Docs

Custom Collections

Design your own no-code data tables with custom fields and validation rules, then add and browse records — no SQL, no migrations, no code.

Overview

Custom Collections is the end-user screen for the Schema & Data Engine. It lets you design your own table — called a collection — the same way you would sketch out columns in a spreadsheet: give it a name, add fields, choose each field's type, and mark which fields are required. Once saved, a data-entry form is generated automatically from that design, and every record you submit is validated server-side against the exact rules you defined before it is stored.

Visual Field Designer

Add fields one at a time — a name, a type, and a required toggle. No schema file, no migration script, no code.

Auto-Generated Form

The data-entry form is built directly from your field definitions — a choice-list field becomes a dropdown, a yes/no field becomes a checkbox, a number field becomes a numeric input.

Server-Side Validation

Every record is checked against your rules before it's stored — missing required fields, wrong types, and invalid choice values are all rejected with a clear, specific error.

Live Records Grid

Every record you add to a collection is immediately listed in a filterable grid, with a column for every field you designed.

Designing a Collection

Click New Collection in the top-right of the screen to open the collection designer.

Naming the Collection and Adding Fields

  1. Enter a Collection Name — anything freeform, like "Inventory Count", "Event Attendees", or "Freelancer Payments".
  2. For each field, enter a field name (e.g. order_id).
  3. Choose a field type from the dropdown — see the Field Type Reference table below.
  4. If the type is Choice list, enter the allowed values as a comma-separated list (e.g. pending, approved, cancelled).
  5. Check Required if the field must be filled in on every record.
  6. Click + Add Field to add another row, or the × button on a field to remove it.

Click Save once you have named the collection and defined at least one field. The collection appears immediately in the left-hand list and is selected automatically so you can start adding records right away.

You can always add more fields later

A collection's design isn't locked in — designing it once and adding fields later doesn't break any records you've already added. Existing records simply have no value for a newly added field until they're updated.

Field Type Reference

TypeWhat it storesForm control generated
TextAny string valueA single-line text input
NumberAn integer or decimal valueA numeric input
Yes/NoA boolean valueA checkbox
Choice listOne value from a fixed set you define (e.g. pending, approved, cancelled)A dropdown listing only the allowed values

Every field can also be marked Required, regardless of its type — a required field left empty is rejected when the record is submitted.

Adding and Browsing Records

Select a collection from the left-hand list, then click Add Record to open the data-entry form. The form's fields are generated directly from the collection's design — fill them in and click Save.

If a value you entered breaks one of the collection's rules, the form shows the exact error returned by the server instead of saving — for example, a missing required field, a number field that wasn't numeric, or a choice-list field set to a value outside its allowed list. Correct the value and submit again.

Every successfully saved record appears immediately in the records grid on the right, with one column per field plus a Created column showing when it was added.

Not just for manual entry

Records aren't only added through this form — workflow nodes, inbound webhooks, and AI agents can also write into a collection through the same validated path. Whatever wrote the record, the same rules apply: anything that breaks the schema is rejected before it's stored.

Deleting a Collection

Hover a collection in the left-hand list and click the trash icon, then confirm with Yes. Deleting a collection removes its field design; it does not automatically delete records that were already added to it.

Tenant Isolation

Every collection and every record you create is scoped to your own tenant. Collections and records are resolved from your signed session, never from anything the browser sends directly — another tenant can never see, list, or write into a collection that belongs to you, even if they somehow guessed its ID.

FAQ

Do I need to write any SQL to use Custom Collections?
No. Designing a collection is entirely visual — you name fields and pick their types from a list. No migration or SQL statement is ever required.
Why was my record rejected when I clicked Save?
The value you entered broke one of the collection's rules — a required field was left empty, a number field received non-numeric input, or a choice-list field was set to a value outside its allowed list. The exact field and rule that failed is shown in the error message so you can correct it and resubmit.
Can I edit a field's type after records already exist?
The collection designer is for creating new collections and fields. Existing records are not retroactively re-validated against a changed field design — new rules apply to records added from that point forward.
What happens if I delete a collection that still has records?
The collection's field design is removed and it disappears from the left-hand list. Its previously saved records are not automatically deleted, but without the collection definition they are no longer reachable from this screen.
Is Custom Collections data tenant-scoped?
Yes. Every collection and every record is resolved strictly from your authenticated session — collections and data you create are never visible or writable by another tenant.