Objects
Every kind of record the account keeps: the built-in objects (customers, contacts, calls, documents) and the ones it defined in the object builder — materials, closets, orders, anything.
Scopes: customer_objects for records, filtered queries, shared views, imports
and exports; objects_admin for the schema — creating objects and fields the way
the object builder does.
An object is a table; a record is one row. Record values are keyed
by each field's api_id. A relation field holds an array of record ids
of another object (at most one for a one relation). Lookup, related
count and auto-number fields are computed by the platform: they come back on
records but cannot be written. Writes go through the same engine as the
dashboard — the same validation, the record change log (source api),
lookups and Studio triggers.
Record access follows the credential's role per object; the object schema itself is managed in the dashboard, not through the API.
Create an object
Create a custom object (a table). Scope `objects_admin`.
List objects
Every object this credential may read, with its field definitions.
Get an object
One object and its field definitions.
Update an object
Change an object's labels, icon, description, `hidden` flag or primary field.
Delete an object
Soft-delete a custom object. Scope `objects_admin`. The body must repeat the
List records
Records of one object, newest first by default, in cursor pages.
Create a record
Create a record. Values go in `values`, keyed by field `api_id`, and are
Get a record
Get a record
Update a record
Change some fields of a record. Only the keys present in `values` change;
Delete a record
Delete a record. Refused with `409 record_in_use` while other records link
Query records
Records matching a filter tree, sorted and searched exactly like a console view —
List views
The object's **shared** views (the ones saved for the whole account), with their
Run a view
The records a view shows, in its order, in cursor pages. When the view has
Upload an import file
Upload a CSV or XLSX (`multipart/form-data` with a `file` part) and get an import
Get an import
The import's stage, progress, dry-run counts and row errors.
Dry-run an import
Validate every row with a mapping, without writing anything. Runs in the
Confirm an import
Run the import for real, with the mapping the dry run validated. Refused (409)
Start an export
Export records to an XLSX file in the background. Send either a shared `view_id`
Get an export
The export's status and, once completed, its download link.
Add a field
Add a field to an object. Scope `objects_admin`. Existing records receive it in
Update a field
Change a field's `label`, `description`, `required`, `unique`, `hidden`, `config`
Delete a field
Delete a field and the values it holds on every record. Scope `objects_admin`.